mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-02 15:56:24 +00:00
added lua script for parsing video in wireshark
This commit is contained in:
parent
53f2c3f37a
commit
3fcd96d3bc
71
LuaScripts/NVStreamVideoPacket.lua
Normal file
71
LuaScripts/NVStreamVideoPacket.lua
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
-- Nvidia Streaming Video Packet Dissector
|
||||||
|
-- Version: 1.0
|
||||||
|
-- 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_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
|
||||||
|
|
||||||
|
-- video data
|
||||||
|
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_garbage,
|
||||||
|
nvHeader_length,
|
||||||
|
nvHeader_moregarbage,
|
||||||
|
nvHeader_start,
|
||||||
|
nvVideo_data
|
||||||
|
}
|
||||||
|
|
||||||
|
function p_nv.dissector(buf, pkt, root)
|
||||||
|
pkt.cols.protocol = p_nv.name
|
||||||
|
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)
|
||||||
|
i = i + 2
|
||||||
|
|
||||||
|
-- garbage
|
||||||
|
garbage = buf(i, 14):bytes()
|
||||||
|
subtree:add(nvHeader_garbage, buf(i, 14))
|
||||||
|
i = i + 14
|
||||||
|
|
||||||
|
-- length
|
||||||
|
length = buf(i, 2):le_uint()
|
||||||
|
subtree:add(nvHeader_length, buf(i, 2), length)
|
||||||
|
i = i + 2
|
||||||
|
|
||||||
|
-- moregarbage
|
||||||
|
moregarbage = buf(i, 23):bytes()
|
||||||
|
subtree:add(nvHeader_moregarbage, buf(i, 23))
|
||||||
|
i = i + 23
|
||||||
|
|
||||||
|
-- start
|
||||||
|
start = buf(i, 4):uint()
|
||||||
|
subtree:add(nvHeader_start, buf(i, 4), start)
|
||||||
|
i = i + 4
|
||||||
|
|
||||||
|
-- data
|
||||||
|
data = buf(i, buf:len()-i):bytes()
|
||||||
|
subtree:add(nvVideo_data, buf(i, buf:len()-i))
|
||||||
|
end
|
||||||
|
|
||||||
|
function p_nv.init()
|
||||||
|
end
|
||||||
|
|
||||||
|
local udp_dissector_table = DissectorTable.get("udp.port")
|
||||||
|
udp_dissector_table:add(47998, p_nv)
|
Loading…
x
Reference in New Issue
Block a user