summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2021-06-16 10:30:18 -0400
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-06-16 17:34:54 +0000
commite5e2b6a6525742d6a3b2ef769cfd3d7408bb7405 (patch)
treec793379e135321e9a546ad418588514cc5a3d930 /gst-libs
parent8d7e6bfb86824f8d71cee192ac18026790b78171 (diff)
downloadgstreamer-plugins-bad-e5e2b6a6525742d6a3b2ef769cfd3d7408bb7405.tar.gz
v4l2slvp8dec: Only ask for output delay once per negotiation
While it's technically possible to change it per frame, asking for that every frame is not very useful. This mimic H264 decoder better. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2333>
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/codecs/gstvp8decoder.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gst-libs/gst/codecs/gstvp8decoder.c b/gst-libs/gst/codecs/gstvp8decoder.c
index 1ae42a629..d3f2aa100 100644
--- a/gst-libs/gst/codecs/gstvp8decoder.c
+++ b/gst-libs/gst/codecs/gstvp8decoder.c
@@ -169,6 +169,12 @@ gst_vp8_decoder_check_codec_change (GstVp8Decoder * self,
priv->had_sequence = TRUE;
+ if (klass->get_preferred_output_delay)
+ priv->preferred_output_delay =
+ klass->get_preferred_output_delay (self, priv->is_live);
+ else
+ priv->preferred_output_delay = 0;
+
if (klass->new_sequence)
ret = klass->new_sequence (self, frame_hdr);
}
@@ -338,10 +344,6 @@ gst_vp8_decoder_handle_frame (GstVideoDecoder * decoder,
GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_PTS (in_buf)),
GST_TIME_ARGS (GST_BUFFER_DTS (in_buf)));
- if (klass->get_preferred_output_delay)
- priv->preferred_output_delay =
- klass->get_preferred_output_delay (self, priv->is_live);
-
if (!gst_buffer_map (in_buf, &map, GST_MAP_READ)) {
GST_ERROR_OBJECT (self, "Cannot map buffer");