[Live-devel] Matroska parsing issues
Petr Novák
pnovak at koukaam.se
Fri Jun 1 02:07:47 PDT 2012
Hi all,
I've been playing a bit with live555MediaServer, and it appears to me
that it's not able to properly parse tracks of some Matroska files, for
example this one:
http://vvv.mokrakocicka.cz/gang/20120601-live555-example.mkv
I've tried to look into the issue and it looks like the parser does not
support 8-byte floats, which are allowed in Matroska spec. The video
above (made by FFmpeg) has an 8-byte Duration element, which throws off
the parser so it does not find track records that follow.
My attempt to fix this issue can be seen at
https://github.com/che0/live555/commit/6e817737b3267288985d2bec37fb7a9f0e5ffb98
-- I would appreciate if you could incorporate this to live555 in some
way or other.
Additionally, I've encountered media server crash after playing back
Matroska file, which I traced to track list cleanup. Again, patch which
worked for me can be found at GitHub at
https://github.com/che0/live555/commit/fea6dad7c705e8a83ab93745d47d3b1262f97ed0
My suspicion is that the original code in effect supplies unsigned int*
to function that expects char**, which subsequently overwrites other
parts of the stack on platforms where sizeof(char*) > sizeof(unsigned).
I hope you find this helpful, and many thanks for live555!
Petr Novak
More information about the live-devel
mailing list