From e443ae6000ddfd4d469c6614914fd700396558b1 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Wed, 22 Dec 2010 19:06:56 +0000 Subject: [PATCH] oggdemux: Don't use gst_pad_alloc_buffer() allocate buffers using gst_buffer_new_and_alloc() instead of gst_pad_alloc_buffer_and_set_caps(), as the first one will cause the pad to block, and we don't want that since that will prevent subsequent pads from being fed if a block occurs at start, when all pads must be fed for playback to start. This fixes autoplugging of the tiger element and other things. https://bugzilla.gnome.org/show_bug.cgi?id=637822 --- ext/ogg/gstoggdemux.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index 8da7288..8970783 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -567,10 +567,9 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet, goto empty_packet; } - ret = - gst_pad_alloc_buffer_and_set_caps (GST_PAD_CAST (pad), - GST_BUFFER_OFFSET_NONE, packet->bytes - offset - trim, - GST_PAD_CAPS (pad), &buf); + buf = gst_buffer_new_and_alloc (packet->bytes - offset - trim); + gst_buffer_set_caps (buf, GST_PAD_CAPS (pad)); + ret = GST_FLOW_OK; /* combine flows */ cret = gst_ogg_demux_combine_flows (ogg, pad, ret); -- 2.7.4