mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-05 02:02:26 +00:00
gst-libs/gst/audio/gstbaseaudiosink.c: Don't crash when ringbuffer is not yet created.
Original commit message from CVS: * gst-libs/gst/audio/gstbaseaudiosink.c: (gst_base_audio_sink_setcaps): Don't crash when ringbuffer is not yet created. Patch by: Ville Syrjala <ville dot syrjala at movial dot fi> Fixes #361634. * gst/playback/gstplaybasebin.c: (new_decoded_pad_full): * gst/playback/gststreamselector.c: (gst_stream_selector_request_new_pad): Activate pads befre adding them to running elements.
This commit is contained in:
parent
9e9538c658
commit
9b139e41fb
4 changed files with 18 additions and 2 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
2006-10-13 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* gst-libs/gst/audio/gstbaseaudiosink.c:
|
||||||
|
(gst_base_audio_sink_setcaps):
|
||||||
|
Don't crash when ringbuffer is not yet created.
|
||||||
|
Patch by: Ville Syrjala <ville dot syrjala at movial dot fi>
|
||||||
|
Fixes #361634.
|
||||||
|
|
||||||
|
* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
|
||||||
|
* gst/playback/gststreamselector.c:
|
||||||
|
(gst_stream_selector_request_new_pad):
|
||||||
|
Activate pads befre adding them to running elements.
|
||||||
|
|
||||||
2006-10-13 Julien MOUTTE <julien@moutte.net>
|
2006-10-13 Julien MOUTTE <julien@moutte.net>
|
||||||
|
|
||||||
* tests/examples/seek/seek.c: (do_seek), (start_seek),
|
* tests/examples/seek/seek.c: (do_seek), (start_seek),
|
||||||
|
|
|
@ -316,6 +316,9 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
|
||||||
GstBaseAudioSink *sink = GST_BASE_AUDIO_SINK (bsink);
|
GstBaseAudioSink *sink = GST_BASE_AUDIO_SINK (bsink);
|
||||||
GstRingBufferSpec *spec;
|
GstRingBufferSpec *spec;
|
||||||
|
|
||||||
|
if (!sink->ringbuffer)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
spec = &sink->ringbuffer->spec;
|
spec = &sink->ringbuffer->spec;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (sink, "release old ringbuffer");
|
GST_DEBUG_OBJECT (sink, "release old ringbuffer");
|
||||||
|
|
|
@ -1205,7 +1205,6 @@ new_decoded_pad_full (GstElement * element, GstPad * pad, gboolean last,
|
||||||
/* Store a pointer to the stream selector pad for this stream */
|
/* Store a pointer to the stream selector pad for this stream */
|
||||||
g_object_set_data (G_OBJECT (pad), "pb_sel_pad", sinkpad);
|
g_object_set_data (G_OBJECT (pad), "pb_sel_pad", sinkpad);
|
||||||
|
|
||||||
gst_pad_set_active (sinkpad, TRUE);
|
|
||||||
gst_pad_link (pad, sinkpad);
|
gst_pad_link (pad, sinkpad);
|
||||||
gst_object_unref (sinkpad);
|
gst_object_unref (sinkpad);
|
||||||
|
|
||||||
|
|
|
@ -354,11 +354,11 @@ gst_stream_selector_request_new_pad (GstElement * element,
|
||||||
|
|
||||||
GST_LOG_OBJECT (sel, "Creating new pad %d", sel->nb_sinkpads);
|
GST_LOG_OBJECT (sel, "Creating new pad %d", sel->nb_sinkpads);
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (sel);
|
||||||
name = g_strdup_printf ("sink%d", sel->nb_sinkpads++);
|
name = g_strdup_printf ("sink%d", sel->nb_sinkpads++);
|
||||||
sinkpad = gst_pad_new_from_template (templ, name);
|
sinkpad = gst_pad_new_from_template (templ, name);
|
||||||
g_free (name);
|
g_free (name);
|
||||||
|
|
||||||
GST_OBJECT_LOCK (sel);
|
|
||||||
if (sel->active_sinkpad == NULL)
|
if (sel->active_sinkpad == NULL)
|
||||||
sel->active_sinkpad = gst_object_ref (sinkpad);
|
sel->active_sinkpad = gst_object_ref (sinkpad);
|
||||||
GST_OBJECT_UNLOCK (sel);
|
GST_OBJECT_UNLOCK (sel);
|
||||||
|
@ -372,6 +372,7 @@ gst_stream_selector_request_new_pad (GstElement * element,
|
||||||
gst_pad_set_bufferalloc_function (sinkpad,
|
gst_pad_set_bufferalloc_function (sinkpad,
|
||||||
GST_DEBUG_FUNCPTR (gst_stream_selector_bufferalloc));
|
GST_DEBUG_FUNCPTR (gst_stream_selector_bufferalloc));
|
||||||
|
|
||||||
|
gst_pad_set_active (sinkpad, TRUE);
|
||||||
gst_element_add_pad (GST_ELEMENT (sel), sinkpad);
|
gst_element_add_pad (GST_ELEMENT (sel), sinkpad);
|
||||||
|
|
||||||
return sinkpad;
|
return sinkpad;
|
||||||
|
|
Loading…
Reference in a new issue