diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c b/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c index 96657d0664..0b60d11441 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c +++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecs/gsth264decoder.c @@ -1408,6 +1408,16 @@ gst_h264_decoder_set_format (GstVideoDecoder * decoder, self->input_state = gst_video_codec_state_ref (state); + /* in case live streaming, we will run on low-latency mode */ + priv->is_live = FALSE; + query = gst_query_new_latency (); + if (gst_pad_peer_query (GST_VIDEO_DECODER_SINK_PAD (self), query)) + gst_query_parse_latency (query, &priv->is_live, NULL, NULL); + gst_query_unref (query); + + if (priv->is_live) + GST_DEBUG_OBJECT (self, "Live source, will run on low-latency mode"); + if (state->caps) { GstH264DecoderFormat format; GstH264DecoderAlign align; @@ -1462,16 +1472,6 @@ gst_h264_decoder_set_format (GstVideoDecoder * decoder, gst_buffer_unmap (state->codec_data, &map); } - /* in case live streaming, we will run on low-latency mode */ - priv->is_live = FALSE; - query = gst_query_new_latency (); - if (gst_pad_peer_query (GST_VIDEO_DECODER_SINK_PAD (self), query)) - gst_query_parse_latency (query, &priv->is_live, NULL, NULL); - gst_query_unref (query); - - if (priv->is_live) - GST_DEBUG_OBJECT (self, "Live source, will run on low-latency mode"); - return TRUE; }