codecs: vp9decoder: Pass parser as new_sequence() parameter.
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 12 Oct 2020 09:07:47 +0000 (11:07 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 16 Oct 2020 17:50:42 +0000 (17:50 +0000)
commit5e3c7f2092a81a769958b215352384af7ced33d9
tree5ecdd2f052c7551d5a30b41c7bcbcff070a19a48
parentdcb3044478216be0b0d3caad44ed692155016235
codecs: vp9decoder: Pass parser as new_sequence() parameter.

In order to know the chroma format, besides profile, subsampling_x and
subsampling_y are needed (Spec 7.2.2 Color config semantics). These values are
in GstVp9Parser but not in  GstVp9Framehdr.

Also, bit_depth is available in parser but not frame header. Evenmore, those
values are copied to picture structure later.

In case of VA-API, to configure the pipeline, it is require to know the chroma
format and depth.

It is possible to know chroma and depth through caps coming from vp9parser, but
it requires string parsing. It would be less error prone to get these values
through the parser structure at new_sequence() virtual method.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1700>
gst-libs/gst/codecs/gstvp9decoder.c
gst-libs/gst/codecs/gstvp9decoder.h
sys/d3d11/gstd3d11vp9dec.c