mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-04 09:42:19 +00:00
videodecoder: Send all pending events with type < CAPS before sending caps
This commit is contained in:
parent
798ee17675
commit
a00f4f239a
1 changed files with 8 additions and 14 deletions
|
@ -3026,7 +3026,6 @@ gst_video_decoder_negotiate_default (GstVideoDecoder * decoder)
|
||||||
frame = decoder->priv->frames ? decoder->priv->frames->data : NULL;
|
frame = decoder->priv->frames ? decoder->priv->frames->data : NULL;
|
||||||
if (frame || decoder->priv->current_frame_events) {
|
if (frame || decoder->priv->current_frame_events) {
|
||||||
GList **events, *l;
|
GList **events, *l;
|
||||||
gboolean set_caps = FALSE;
|
|
||||||
|
|
||||||
if (frame) {
|
if (frame) {
|
||||||
events = &frame->events;
|
events = &frame->events;
|
||||||
|
@ -3039,22 +3038,17 @@ gst_video_decoder_negotiate_default (GstVideoDecoder * decoder)
|
||||||
GstEvent *event = GST_EVENT (l->data);
|
GstEvent *event = GST_EVENT (l->data);
|
||||||
GList *tmp;
|
GList *tmp;
|
||||||
|
|
||||||
if (GST_EVENT_TYPE (event) > GST_EVENT_CAPS && !set_caps) {
|
if (GST_EVENT_TYPE (event) < GST_EVENT_CAPS) {
|
||||||
ret = gst_pad_set_caps (decoder->srcpad, state->caps);
|
gst_video_decoder_push_event (decoder, event);
|
||||||
set_caps = TRUE;
|
tmp = l;
|
||||||
break;
|
l = l->prev;
|
||||||
|
*events = g_list_delete_link (*events, tmp);
|
||||||
|
} else {
|
||||||
|
l = l->prev;
|
||||||
}
|
}
|
||||||
gst_video_decoder_push_event (decoder, event);
|
|
||||||
tmp = l;
|
|
||||||
l = l->prev;
|
|
||||||
*events = g_list_delete_link (*events, tmp);
|
|
||||||
}
|
}
|
||||||
if (!set_caps) {
|
|
||||||
ret = gst_pad_set_caps (decoder->srcpad, state->caps);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ret = gst_pad_set_caps (decoder->srcpad, state->caps);
|
|
||||||
}
|
}
|
||||||
|
ret = gst_pad_set_caps (decoder->srcpad, state->caps);
|
||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
Loading…
Reference in a new issue