[Bug 702004] qtdemux: add support for the avc3 sample entry format of the AVC file format

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Aug 22 07:53:09 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=702004
  GStreamer | gst-plugins-good | git

--- Comment #29 from A Ashley <bugzilla at ashley-family.net> 2013-08-22 14:53:02 UTC ---
My understanding of h264parse is that in case of avc->bytestream h264parse will
push the SPS and PPS from codec_data downstream at the start of the stream, at
intervals controlled by "config-interval" and when there is a codec_data
change. 

In the case of avc3->bytstream h264parse detects that there is already SPS/PPS
in the stream and sets h264parse->push_codec to FALSE. Therefore
avc3->bytstream is already supported, except for the stream type (hence the
patch).

In the case of bystream->avc h264parse will generate codec_data caps from the
parsed SPS/PPS in the stream. However it does not remove these SPS/PPS from the
stream. This means that the current h264parse is actually doing
bytestream->avc3 but with a copy of the SPS/PPS in codec_data. Therefore
bytestream->avc3 is the same as bytestream->avc except that the codec_data
shouldn't have any SPS/PPS in it. My current set of patches don't provide this
filtering of the codec_data when outputting in avc3 mode.

Given the current behaviour of h264parse, conversion between avc<->avc3 is
complicated. A full conversion from avc3->avc would remove all SPS/PPS from the
stream and only provide them via codec_data. Changing h264parse so that avc
never has SPS/PPS in-band might break existing software that makes use of this
in-band data.

Perhaps we need a new stream type (let's say "avc1") for which we can make
rules about SPS/PPS location?

|------------+-------------+-------------------|
|stream_type | SPS in-band | SPS in codec_data |
|------------+-------------+-------------------|
| avc        | maybe       | always            |
|------------+-------------+-------------------|
| avc1       | never       | always            |
|------------+-------------+-------------------|
| avc3       | always      | never             |
|------------+-------------+-------------------|

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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