mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 09:10:36 +00:00
assrender: Mark pad as needing reconfiguration again if reconfiguration failed
Also return FLUSHING instead of NOT_NEGOTIATED on flushing pads. https://bugzilla.gnome.org/show_bug.cgi?id=774623
This commit is contained in:
parent
c3933c2082
commit
b2dd97a3d0
1 changed files with 20 additions and 2 deletions
|
@ -930,12 +930,16 @@ gst_ass_render_negotiate (GstAssRender * render, GstCaps * caps)
|
||||||
gst_caps_unref (overlay_caps);
|
gst_caps_unref (overlay_caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
||||||
|
if (!ret)
|
||||||
|
gst_pad_mark_reconfigure (render->srcpad);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
no_format:
|
no_format:
|
||||||
{
|
{
|
||||||
if (caps)
|
if (caps)
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
gst_pad_mark_reconfigure (render->srcpad);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1160,8 +1164,15 @@ gst_ass_render_chain_video (GstPad * pad, GstObject * parent,
|
||||||
guint64 start, stop, clip_start = 0, clip_stop = 0;
|
guint64 start, stop, clip_start = 0, clip_stop = 0;
|
||||||
ASS_Image *ass_image;
|
ASS_Image *ass_image;
|
||||||
|
|
||||||
if (gst_pad_check_reconfigure (render->srcpad))
|
if (gst_pad_check_reconfigure (render->srcpad)) {
|
||||||
gst_ass_render_negotiate (render, NULL);
|
if (!gst_ass_render_negotiate (render, NULL)) {
|
||||||
|
gst_pad_mark_reconfigure (render->srcpad);
|
||||||
|
if (GST_PAD_IS_FLUSHING (render->srcpad))
|
||||||
|
goto flushing;
|
||||||
|
else
|
||||||
|
goto not_negotiated;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!GST_BUFFER_TIMESTAMP_IS_VALID (buffer))
|
if (!GST_BUFFER_TIMESTAMP_IS_VALID (buffer))
|
||||||
goto missing_timestamp;
|
goto missing_timestamp;
|
||||||
|
@ -1379,6 +1390,13 @@ missing_timestamp:
|
||||||
gst_buffer_unref (buffer);
|
gst_buffer_unref (buffer);
|
||||||
return GST_FLOW_OK;
|
return GST_FLOW_OK;
|
||||||
}
|
}
|
||||||
|
not_negotiated:
|
||||||
|
{
|
||||||
|
GST_ASS_RENDER_UNLOCK (render);
|
||||||
|
GST_DEBUG_OBJECT (render, "not negotiated");
|
||||||
|
gst_buffer_unref (buffer);
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
flushing:
|
flushing:
|
||||||
{
|
{
|
||||||
GST_ASS_RENDER_UNLOCK (render);
|
GST_ASS_RENDER_UNLOCK (render);
|
||||||
|
|
Loading…
Reference in a new issue