From e5e2b6a6525742d6a3b2ef769cfd3d7408bb7405 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 16 Jun 2021 10:30:18 -0400 Subject: 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: --- gst-libs/gst/codecs/gstvp8decoder.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gst-libs') 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"); -- cgit v1.2.1