summaryrefslogtreecommitdiff
path: root/gst-libs/gst/codecs
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2021-03-29 02:11:22 +0900
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-04-07 19:32:29 +0000
commit6eb9856f5965a11b15f547ff8cd1da89196c950c (patch)
tree302719b5d9f28b9243e8acd95b43ab2a6be0ffd7 /gst-libs/gst/codecs
parent1f769839c09b38745f0b7c9aac127ea5432804f6 (diff)
downloadgstreamer-plugins-bad-6eb9856f5965a11b15f547ff8cd1da89196c950c.tar.gz
codecs: vp9decoder: Pass GstVideoCodecFrame to duplicate_picture()
... and fix picture duplication logic for vavp9dec Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
Diffstat (limited to 'gst-libs/gst/codecs')
-rw-r--r--gst-libs/gst/codecs/gstvp9decoder.c6
-rw-r--r--gst-libs/gst/codecs/gstvp9decoder.h1
2 files changed, 4 insertions, 3 deletions
diff --git a/gst-libs/gst/codecs/gstvp9decoder.c b/gst-libs/gst/codecs/gstvp9decoder.c
index 3e02672c9..e5e3959f9 100644
--- a/gst-libs/gst/codecs/gstvp9decoder.c
+++ b/gst-libs/gst/codecs/gstvp9decoder.c
@@ -95,7 +95,7 @@ static GstFlowReturn gst_vp9_decoder_handle_frame (GstVideoDecoder * decoder,
GstVideoCodecFrame * frame);
static GstVp9Picture *gst_vp9_decoder_duplicate_picture_default (GstVp9Decoder *
- decoder, GstVp9Picture * picture);
+ decoder, GstVideoCodecFrame * frame, GstVp9Picture * picture);
static void
gst_vp9_decoder_class_init (GstVp9DecoderClass * klass)
@@ -247,7 +247,7 @@ gst_vp9_decoder_drain (GstVideoDecoder * decoder)
static GstVp9Picture *
gst_vp9_decoder_duplicate_picture_default (GstVp9Decoder * decoder,
- GstVp9Picture * picture)
+ GstVideoCodecFrame * frame, GstVp9Picture * picture)
{
GstVp9Picture *new_picture;
@@ -322,7 +322,7 @@ gst_vp9_decoder_handle_frame (GstVideoDecoder * decoder,
g_assert (klass->duplicate_picture);
pic_to_dup = priv->dpb->pic_list[frame_hdr.frame_to_show_map_idx];
- picture = klass->duplicate_picture (self, pic_to_dup);
+ picture = klass->duplicate_picture (self, frame, pic_to_dup);
if (!picture) {
GST_ERROR_OBJECT (self, "subclass didn't provide duplicated picture");
diff --git a/gst-libs/gst/codecs/gstvp9decoder.h b/gst-libs/gst/codecs/gstvp9decoder.h
index f75085bf8..677ffbd11 100644
--- a/gst-libs/gst/codecs/gstvp9decoder.h
+++ b/gst-libs/gst/codecs/gstvp9decoder.h
@@ -100,6 +100,7 @@ struct _GstVp9DecoderClass
GstVp9Picture * picture);
GstVp9Picture * (*duplicate_picture) (GstVp9Decoder * decoder,
+ GstVideoCodecFrame * frame,
GstVp9Picture * picture);
gboolean (*start_picture) (GstVp9Decoder * decoder,