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

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to