[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