mirror of
https://github.com/DigitalDevices/octonet.git
synced 2023-10-10 13:36:52 +02:00
113 lines
2.2 KiB
Lua
Executable File
113 lines
2.2 KiB
Lua
Executable File
#!/usr/bin/lua
|
|
|
|
local socket = require("socket")
|
|
local mime = require("mime")
|
|
local rtsp = require("rtsp")
|
|
local mc = require("mc")
|
|
|
|
local ip = "10.0.4.53"
|
|
local devid = 5
|
|
local DoPlay = true
|
|
local mclist = false
|
|
local configfile = "/config/mcsetup.csv"
|
|
local server = false
|
|
|
|
local a
|
|
for _,a in ipairs(arg) do
|
|
if a == "server" then server = true end
|
|
if a == "noplay" then DoPlay = false end
|
|
end
|
|
|
|
function GetIPAddr()
|
|
local myip = nil
|
|
local ifconfig = io.popen("ifconfig eth0")
|
|
if ifconfig then
|
|
local eth0 = ifconfig:read("*a")
|
|
ifconfig:close()
|
|
myip = string.match(eth0,"inet addr%:(%d+%.%d+%.%d+%.%d+)")
|
|
end
|
|
return myip
|
|
end
|
|
|
|
function GetDevID()
|
|
local devid = nil
|
|
local tmp = io.open("/config/device.id")
|
|
if tmp then
|
|
devid = tonumber(tmp:read())
|
|
tmp:close()
|
|
end
|
|
return devid
|
|
end
|
|
|
|
function WaitSignal()
|
|
print("WaitSignal")
|
|
while true do
|
|
socket.select(nil,nil,1)
|
|
end
|
|
print("Exit WaitSignal")
|
|
end
|
|
|
|
if server then
|
|
socket.select(nil,nil,10)
|
|
end
|
|
|
|
while true do
|
|
|
|
ip = GetIPAddr()
|
|
devid = GetDevID()
|
|
print(ip,devid)
|
|
|
|
if devid and ip then
|
|
mclist = mc:ReadSetupFile(configfile)
|
|
print(mclist,#mclist)
|
|
if #mclist > 0 then
|
|
local SessionList = mc:Setup(mclist,ip,devid)
|
|
if #SessionList > 0 then
|
|
|
|
if DoPlay then
|
|
mc:Play(SessionList,ip)
|
|
end
|
|
|
|
local rc = mc:KeepAlive(SessionList,ip)
|
|
if rc > 0 then
|
|
mc:TearDown(SessionList,ip)
|
|
end
|
|
if rc == 1 then
|
|
break
|
|
end
|
|
if rc == 0 then
|
|
socket.select(nil,nil,10)
|
|
end
|
|
end
|
|
else
|
|
while not mc.CheckSignal() do
|
|
socket.select(nil,nil,1)
|
|
end
|
|
end
|
|
end
|
|
collectgarbage()
|
|
end
|
|
|
|
|
|
|
|
-- local server = socket.tcp()
|
|
-- server:settimeout(2)
|
|
|
|
-- local cseq = 1
|
|
|
|
-- if server:connect(ip,554) then
|
|
-- rtsp:SendRequest(server,ip,"DESCRIBE",nil,cseq)
|
|
-- local rc,attributes,sdp = rtsp:ReadResponse(server)
|
|
-- cseq = cseq + 1
|
|
-- print(rc)
|
|
-- for n,a in pairs(attributes) do
|
|
-- print(n,a)
|
|
-- end
|
|
-- if sdp then
|
|
-- for i,a in ipairs(sdp) do
|
|
-- print(string.format("%2d:%s",i,a))
|
|
-- end
|
|
-- end
|
|
-- server:close()
|
|
-- end
|