GNOME Bugzilla – Bug 737487
h264parse: sets parsed=true on output even in passthrough mode
Last modified: 2018-11-03 13:26:51 UTC
This doesn't seem right. Just because both input and output are in same format, the parser should claim that it has parsed the input and then enable passthrough. In may case matroskademux output AVC H.264 (unparsed), decoder requires AVC with parsed=true and parser just appends parsed=true to the caps without even looking at the stream.
Does this lead to a failure ? If so, could you explain ?
IIRC width, height, framerate are missing from caps if not provided from upstream. The buffers might also not be split properly on AU boundaries. Just because the upstream says alignment=au, I don't think the parser should blindly trust it.
Yes, in passthrough mode h264parse does not extract anything... so should only really enable it if upstream already provides all possible information. Currently it enables it too often.
And keyframes may not be flagged properly.
Right. Completely forgot about this. Actually the keyframes was my biggest issue. I remuxed one file with mkvtoolnix and for some reason no buffers were flagged as keyframes. I have also seen such videos in the wild. I think the default behavior should change. Unless there is parsed=true in input caps the parser should never be in passthrough mode.
Agreed, yes. And parsed=True should be accordingly defined :)
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/176.