After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 758405 - h264/h265parse: Should resend pps/sps after seeks in byte-stream mode
h264/h265parse: Should resend pps/sps after seeks in byte-stream mode
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.7.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-11-20 15:02 UTC by Nicolas Dufresne (ndufresne)
Modified: 2016-05-23 08:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
h26xparse: Resend PPS/SPS after seek (1.55 KB, patch)
2015-12-02 23:30 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review

Description Nicolas Dufresne (ndufresne) 2015-11-20 15:02:27 UTC
In byte-stream mode, the headers (PPS/SPS/etc) are not directly available from caps. After a flush, some decoders will forget the header completly, and wait until a new header is sent. With qtdemux (which produce AVC), this header will never come, and the decoder will never restart. This is the case for certain V4L2 M2M decoder, but also for avdec_h264 in byte-stream mode. To test this, one can use the playback test (from gst-plugins-base) this way:

./playback-test 1 "filesrc location=my.mov ! qtdemux ! h264parse ! video/x-h264,stream-format=byte-stream ! avdec_h264 ! glimagesink"

Seek lead to high CPU, as the stream is being thrown away quickly while the decoder is searching for a header. (patch is coming).

Another case where this could be a problem, is when the decoder is dynamically plugged. The reconfigure event could maybe have the same effect. I have no simple test for this one though.
Comment 1 Nicolas Dufresne (ndufresne) 2015-12-02 23:30:54 UTC
Created attachment 316680 [details] [review]
h26xparse: Resend PPS/SPS after seek

This is to support byte-stream decoder that does not remember the
PPS/SPS after a flush. This is not needed by all decoders, but is
harmless for those that do remember.
Comment 2 Nicolas Dufresne (ndufresne) 2015-12-06 00:06:40 UTC
Attachment 316680 [details] pushed as fe11609 - h26xparse: Resend PPS/SPS after seek
Comment 3 Aleksander Wabik 2016-03-17 08:05:59 UTC
Will this fix be merged to 1.6.4?
Comment 4 Tim-Philipp Müller 2016-05-23 08:25:07 UTC
> Will this fix be merged to 1.6.4?

Only saw this now, so too late, sorry :)