mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-07-30 02:05:07 +00:00
wavparse: clean up adapter properly
Reflow code so we don't try to clear or re-use an already-freed adapter.
This commit is contained in:
parent
d875e72b02
commit
4cf513da9b
|
@ -2440,22 +2440,19 @@ gst_wavparse_sink_activate (GstPad * sinkpad)
|
||||||
GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad));
|
GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad));
|
||||||
gboolean res;
|
gboolean res;
|
||||||
|
|
||||||
if (wav->adapter)
|
if (wav->adapter) {
|
||||||
|
gst_adapter_clear (wav->adapter);
|
||||||
g_object_unref (wav->adapter);
|
g_object_unref (wav->adapter);
|
||||||
|
wav->adapter = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (gst_pad_check_pull_range (sinkpad)) {
|
if (gst_pad_check_pull_range (sinkpad)) {
|
||||||
GST_DEBUG ("going to pull mode");
|
GST_DEBUG ("going to pull mode");
|
||||||
wav->streaming = FALSE;
|
wav->streaming = FALSE;
|
||||||
if (wav->adapter) {
|
|
||||||
gst_adapter_clear (wav->adapter);
|
|
||||||
g_object_unref (wav->adapter);
|
|
||||||
}
|
|
||||||
wav->adapter = NULL;
|
|
||||||
res = gst_pad_activate_pull (sinkpad, TRUE);
|
res = gst_pad_activate_pull (sinkpad, TRUE);
|
||||||
} else {
|
} else {
|
||||||
GST_DEBUG ("going to push (streaming) mode");
|
GST_DEBUG ("going to push (streaming) mode");
|
||||||
wav->streaming = TRUE;
|
wav->streaming = TRUE;
|
||||||
if (wav->adapter == NULL)
|
|
||||||
wav->adapter = gst_adapter_new ();
|
wav->adapter = gst_adapter_new ();
|
||||||
res = gst_pad_activate_push (sinkpad, TRUE);
|
res = gst_pad_activate_push (sinkpad, TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue