mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-30 19:18:31 +00:00
oggdemux: don't push on NOT_LINKED pads
If our previous flow return was NOT_LINKED, don't try to push on the pads some more. If we get a RECONFIGURE event on the pad, try to push on it again.
This commit is contained in:
parent
92b77c5aa4
commit
461d58795a
1 changed files with 11 additions and 1 deletions
|
@ -416,6 +416,10 @@ gst_ogg_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||||
res = gst_ogg_demux_perform_seek (ogg, event);
|
res = gst_ogg_demux_perform_seek (ogg, event);
|
||||||
gst_event_unref (event);
|
gst_event_unref (event);
|
||||||
break;
|
break;
|
||||||
|
case GST_EVENT_RECONFIGURE:
|
||||||
|
GST_OGG_PAD (pad)->last_ret = GST_FLOW_OK;
|
||||||
|
res = gst_pad_event_default (pad, parent, event);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
res = gst_pad_event_default (pad, parent, event);
|
res = gst_pad_event_default (pad, parent, event);
|
||||||
break;
|
break;
|
||||||
|
@ -667,7 +671,13 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
|
||||||
|
|
||||||
/* don't push the header packets when we are asked to skip them */
|
/* don't push the header packets when we are asked to skip them */
|
||||||
if (!packet->b_o_s || push_headers) {
|
if (!packet->b_o_s || push_headers) {
|
||||||
|
if (pad->last_ret == GST_FLOW_OK) {
|
||||||
ret = gst_pad_push (GST_PAD_CAST (pad), buf);
|
ret = gst_pad_push (GST_PAD_CAST (pad), buf);
|
||||||
|
} else {
|
||||||
|
GST_DEBUG_OBJECT (ogg, "not pushing buffer on error pad");
|
||||||
|
ret = pad->last_ret;
|
||||||
|
gst_buffer_unref (buf);
|
||||||
|
}
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
|
|
||||||
/* combine flows */
|
/* combine flows */
|
||||||
|
|
Loading…
Reference in a new issue