mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 18:50:48 +00:00
h264decoder: Fix for unhandled low-delay decoding case
Baseclass calls get_preferred_output_delay() in a chain of sequence header parsing and then new_sequence() is called with required DPB size (includes render-delay) information. Thus latency query should happen before the sequence header parsing for subclass to report required render-delay accordingly via get_preferred_output_delay() method. (e.g., zero delay in case of live pipeline) This commit is to fix wrong liveness signalling in case of upstream packetized format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2363>
This commit is contained in:
parent
ad136cb2c5
commit
8ec4452d67
1 changed files with 10 additions and 10 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue