mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-01 23:35:28 +00:00
now parse stream as rtp first and added more fields
This commit is contained in:
parent
3fcd96d3bc
commit
cbac2f2510
@ -3,9 +3,11 @@
|
||||
-- Diego Waxemberg
|
||||
|
||||
-- video header
|
||||
local nvHeader_unknown = ProtoField.bytes("nv.unknown", "Unknown") -- 12 bytes
|
||||
local nvHeader_frame = ProtoField.uint16("nv.frame", "Frame", base.HEX) -- 2 bytes
|
||||
local nvHeader_garbage = ProtoField.bytes("nv.garbage", "Garbage") --14 bytes
|
||||
local nvHeader_frame = ProtoField.uint32("nv.frame", "Frame", base.HEX) -- 4 bytes
|
||||
local nvHeader_pindex = ProtoField.uint16("nv.pindex", "Packet Index", base.HEX) -- 2 bytes
|
||||
local nvHeader_empty = ProtoField.uint16("nv.empty", "Empty?", base.HEX) -- 2 bytes
|
||||
local nvHeader_pframe = ProtoField.uint16("nv.pframe", "Packets in Frame", base.HEX) -- 2 bytes
|
||||
local nvHeader_garbage = ProtoField.bytes("nv.garbage", "Garbage") -- 6 bytes
|
||||
local nvHeader_length = ProtoField.uint16("nv.length", "Length", base.HEX) -- 2 bytes
|
||||
local nvHeader_moregarbage = ProtoField.bytes("nv.moregarbage", "More Garbage") --23 bytes
|
||||
local nvHeader_start = ProtoField.uint32("nv.start", "Start", base.HEX) -- 4 bytes
|
||||
@ -15,8 +17,10 @@ local nvVideo_data = ProtoField.bytes("nv.data", "Data") -- rest
|
||||
|
||||
p_nv = Proto("nv", "Nvidia Video Stream Protocol")
|
||||
p_nv.fields = {
|
||||
nvHeader_unknown,
|
||||
nvHeader_frame,
|
||||
nvHeader_pindex,
|
||||
nvHeader_empty,
|
||||
nvHeader_pframe,
|
||||
nvHeader_garbage,
|
||||
nvHeader_length,
|
||||
nvHeader_moregarbage,
|
||||
@ -29,20 +33,30 @@ function p_nv.dissector(buf, pkt, root)
|
||||
subtree = root:add(p_nv, buf(0))
|
||||
|
||||
i = 0
|
||||
-- unknown
|
||||
unknown = buf(i, 12):bytes()
|
||||
subtree:add(nvHeader_unknown, buf(i, 12))
|
||||
i = i + 12
|
||||
|
||||
-- frame
|
||||
frame = buf(i, 2):le_uint()
|
||||
subtree:add(nvHeader_frame, buf(i, 2), frame)
|
||||
frame = buf(i, 4):le_uint()
|
||||
subtree:add(nvHeader_frame, buf(i, 4), frame)
|
||||
i = i + 4
|
||||
|
||||
--pindex
|
||||
pindex = buf(i, 2):le_uint()
|
||||
subtree:add(nvHeader_pindex, buf(i, 2), pindex)
|
||||
i = i + 2
|
||||
|
||||
--empty
|
||||
empty = buf(i, 2):le_uint()
|
||||
subtree:add(nvHeader_empty, buf(i, 2), empty)
|
||||
i = i + 2
|
||||
|
||||
--pframe
|
||||
pframe = buf(i, 2):le_uint()
|
||||
subtree:add(nvHeader_pframe, buf(i, 2), pframe)
|
||||
i = i + 2
|
||||
|
||||
-- garbage
|
||||
garbage = buf(i, 14):bytes()
|
||||
subtree:add(nvHeader_garbage, buf(i, 14))
|
||||
i = i + 14
|
||||
garbage = buf(i, 6):bytes()
|
||||
subtree:add(nvHeader_garbage, buf(i, 6))
|
||||
i = i + 6
|
||||
|
||||
-- length
|
||||
length = buf(i, 2):le_uint()
|
||||
@ -67,5 +81,9 @@ end
|
||||
function p_nv.init()
|
||||
end
|
||||
|
||||
local udp_dissector_table = DissectorTable.get("udp.port")
|
||||
udp_dissector_table:add(47998, p_nv)
|
||||
|
||||
local udp_dissector_table = DissectorTable.get("rtp.pt")
|
||||
udp_dissector_table:add(96, p_nv)
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user