Commit 11386776 authored by Víctor Manuel Jáquez Leal's avatar Víctor Manuel Jáquez Leal Committed by GStreamer Merge Bot

codecs: vp9decoder: Add segmentation to picture.

VA-API needs AC and DC quant scales for both luma and chroma, and the loop
filter level for current frame, but these values are not available outside
the private GstVp9Parser structure. And these values may change from frame
to frame, so they are picture specific.

This patch add GstVp9Segmentation structure array to GstVp9Picture to expose
it to derived classes. This approach is safer than passing the parser at
picture handling flow.

Also, this patch, in order to solve Documentation CI, mark as private the
GstVp9Picture structure.

Part-of: <!1700>
parent 5e3c7f20
Pipeline #214844 waiting for manual action with stages
in 42 seconds
......@@ -348,6 +348,9 @@ gst_vp9_decoder_handle_frame (GstVideoDecoder * decoder,
picture->subsampling_y = priv->parser->subsampling_y;
picture->bit_depth = priv->parser->bit_depth;
memcpy (picture->segmentation, priv->parser->segmentation,
sizeof (priv->parser->segmentation));
if (klass->new_picture) {
if (!klass->new_picture (self, frame, picture)) {
GST_ERROR_OBJECT (self, "new picture error");
......
......@@ -34,6 +34,7 @@ typedef struct _GstVp9Picture GstVp9Picture;
struct _GstVp9Picture
{
/*< private >*/
GstMiniObject parent;
/* From GstVideoCodecFrame */
......@@ -52,6 +53,8 @@ struct _GstVp9Picture
gpointer user_data;
GDestroyNotify notify;
GstVp9Segmentation segmentation[GST_VP9_MAX_SEGMENTS];
};
GST_CODECS_API
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment