vaapidecode: fix srcpad caps for GStreamer 1.2.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Wed, 20 Nov 2013 09:56:28 +0000 (10:56 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 21 Nov 2013 10:08:23 +0000 (11:08 +0100)
commit7e8470e1ecbe0e3a3aa0f4dccb4c9a030b70ff4c
tree286754058ca42bb2ee65f9da0ed5aa89227f9b78
parentd556c0a37afb641c2bab894df75ef646e169f697
vaapidecode: fix srcpad caps for GStreamer 1.2.

The srcpad caps exposed for GStreamer 1.2 were missing any useful info
like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
that it relied on possibly un-initialized data. Fix srcpad caps to be
initialized from a sanitized copy of GstVideoDecoder output state caps.

Note: the correct way to expose the srcpad caps triggers an additional
issue in core GStreamer auto-plugging capabilities as the correct caps
to be exposed should be format=ENCODED with memory:VASurface caps feature
at the minimum. In some situations, we could determine the underlying
VA surface format, but this is not always possible. e.g. cases where it
is not allowed to expose the underlying VA surface data, or when the
VA driver implementation cannot actually provide such information.
gst/vaapi/gstvaapidecode.c