2006-04-10 Wim Taymans <wim@fluendo.com>
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ (gst_base_audio_sink_event):
+ Starting the ringbuffer when we did not acquire it can cause
+ a deadlock, is pointless and causes nasty things for
+ subclasses.
+ Fixes gst-launch audiotestsrc num-buffers=0 ! alsasink.
+
+2006-04-10 Wim Taymans <wim@fluendo.com>
+
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
(gst_ogg_demux_receive_event), (gst_ogg_pad_event),
(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
gst_ring_buffer_set_flushing (sink->ringbuffer, FALSE);
break;
case GST_EVENT_EOS:
- /* need to start playback when we reach EOS */
- gst_ring_buffer_start (sink->ringbuffer);
+ /* need to start playback when we reach EOS, but only when
+ * we have successfully negotiated a format. */
+ if (gst_ring_buffer_is_acquired (sink->ringbuffer))
+ gst_ring_buffer_start (sink->ringbuffer);
/* now wait till we played everything */
gst_base_audio_sink_drain (sink);
break;