mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1700>
This commit is contained in:
parent
5e3c7f2092
commit
113867766e
2 changed files with 6 additions and 0 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue