GNOME Bugzilla – Bug 647919
qtmux: silently corrupts h264 streams with legacy caps
Last modified: 2011-04-18 16:55:04 UTC
qtmux silently (well, GST_WARNING) fails if the caps are "video/x-h264,stream-format=avc". That is, if they are missing the alignment=au field. Aside from the fact that avc implies alignment=au, if qtmux wants to force alignment=au, it should have it in the caps template. If it wants to trick upstream elements into negotiating without alignment=au, in order to discover potential bugs, it should cause an element error.
If I read the core correctly, it only "silently fails" (how does it fail?) if there's no stream-format field in the caps at at all. I was actually pondering on being stricter and refusing caps without a stream-format or codec_data field, see https://bugzilla.gnome.org/show_bug.cgi?id=606662#c56 , but I suspect that will cause some problems. On the other hand, now is probably the best time, after the release we'll have to try and maintain backwards compatibility.
Well, made it strict for now, let's see what breaks (if anything): commit cf953fe923c02ccc7608858ed821af85fb0df0b8 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Sat Apr 16 18:17:01 2011 +0100 qtmux: refuse incomplete legacy h264 caps Refuse h264 caps without stream-format and codec_data fields for now, to avoid creating broken files. This might cause some pipelines that worked previously to fail. However, the move from -bad to -good is our only chance to fix this up, so make it strict for now. We can always change it back to be less strict in future. https://bugzilla.gnome.org/show_bug.cgi?id=647919
"Silent fail" means it creates a file with no tracks, with no indication that it is dropping data.