[Bug 770921] New: vaapidecoder loses input caps info
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Sep 6 03:23:32 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=770921
Bug ID: 770921
Summary: vaapidecoder loses input caps info
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer-vaapi
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: thaytan at noraisin.net
QA Contact: gstreamer-bugs at lists.freedesktop.org
CC: bsreerenj at gmail.com, vjaquez at igalia.com
GNOME version: ---
When first created, the vaapidecoder takes the input state caps and generates
codec_state, which is then managed / updated only by the decoder and changes
are notified to vaapidecode via the gst_vaapi_decoder_state_changed() callback.
Any changes the base decoder makes to the state will completely override the
input_state - even if it's been subsequently updated by new sink caps.
This is a problem when the initial caps are incomplete and updated later. For
example:
video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal,
parsed=(boolean)true
then later
video/x-h264, width=(int)1280, height=(int)1080, framerate=(fraction)25/1,
pixel-aspect-ratio=(fraction)3/2, profile=(string)high,
stream-format=(string)byte-stream, alignment=(string)nal, parsed=(boolean)true,
level=(string)4
Later again, when the H.264 decoder realises the stream is interlaced, it will
update the internal codec_state and then destroy the new info that arrived in
the later caps, and the result will be output caps with:
video/x-raw(memory:VASurface), format=(string)NV12, width=(int)1280,
height=(int)1080, interlace-mode=(string)interleaved,
pixel-aspect-ratio=(fraction)3/2, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)0/1
(the framerate has been lost)
That then means that vaapipostproc outputs both fields with identical
timestamps after deinterlacing, because it's lost the frame duration.
--
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