From: Vincent Penquerc'h Date: Wed, 22 Dec 2010 19:06:56 +0000 (+0000) Subject: oggdemux: Don't use gst_pad_alloc_buffer() X-Git-Tag: 1.19.3~511^2~6555^2~1285 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e443ae6000ddfd4d469c6614914fd700396558b1;p=platform%2Fupstream%2Fgstreamer.git 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 --- 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);