[Bug 779655] qtmux: do not require PTS on a header buffer

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Mar 7 01:57:43 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=779655

Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nicolas at ndufresne.ca

--- Comment #5 from Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> ---
My impression on this is that in AVC, there should never be a HEADER flag set
on any of the buffers. All headers should be put in the CODEC data. So this
looks like an H264 parse bug.

If I look at what omxhh264enc produces, with Qualcomm CODEC, it looks like:

  - empty buffer
  - 30 bytes nal
  - empty buffer
  - more nals
  - A NAL with CODECCONFIG flag
  - The IDR NAL

The encoder code will aggregate all buffers the has CODECCONFIG (skipping the
empty one), and prepand (1 buffer 1 push) them to the first frame. Now, first
issue, the CODECCONFIG flag is not set properly by the component. I can work
around that by assuming that if frame == NULL, then it's a CODECCONFIG, a bit
bugus, but works for this one.

But then the second problem, is that all those headers have no timestamp (first
timestamp is set on the IDR). h264parse accumulate the data, but instead of
looking at the IDR NAL timestamp, it seems to pick the first seen timestamp. I
think this need to be improved in the parser. We can also work around this by
updating all headers timestamp before calling gst_video_encoder_set_headers().

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list