[Bug 770921] vaapidecoder loses input caps info

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Sep 13 18:38:40 UTC 2016


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

--- Comment #8 from Jan Schmidt <thaytan at noraisin.net> ---
I'm not sure what you mean by 'without any issue'.

The problem is here (using git master):

/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstVaapiDecodeBin:vaapidecodebin0/GstVaapiPostproc:vaapipostproc.GstPad:sink:
caps = video/x-raw(memory:VASurface), format=(string)NV12, width=(int)1920,
height=(int)1080, interlace-mode=(string)interleaved,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)0/1

By the time the caps get to vaapipostproc, the framerate is lost from the info
that vaapidecode received (it just didn't get it in the *first* caps it
received):

vaapidecodebin0/GstVaapiDecode:vaapidecode.GstPad:sink: caps = video/x-h264,
stream-format=(string)byte-stream, alignment=(string)nal,
pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080,
framerate=(fraction)25/1, parsed=(boolean)true, profile=(string)high,
level=(string)4

and in this file, the result is that the video sink receives 2 buffers with
timestamps at the start, and then every buffer after that has pts/dts none. The
2 buffers that do have timestamps, have the *same* timestamp, because
vaapipostproc didn't know a framerate / field duration to move the 2nd
timestamp by half a buffer duration.

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: 0:00:00.125000000, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000000 ) 0x7fcb9c0a1a40
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: 0:00:00.125000000, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000040 discont )
0x7fcbac020e60
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: none, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000000 ) 0x7fcb9c0a13e0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: none, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000000 ) 0x7fcba0044d00
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: none, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000000 ) 0x7fcb9c0a1820
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: none, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000000 ) 0x7fcb9c0a10b0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain   *******
(fakesink0:sink) (3133440 bytes, dts: none, pts: none, duration:
0:00:00.000000000, offset: -1, offset_end: -1, flags: 00000000 ) 0x7fcba0044d00

-- 
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