summaryrefslogtreecommitdiffstats
path: root/gst/wavparse/gstwavparse.c
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim.muller@collabora.co.uk>2009-08-31 13:38:08 +0100
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2009-08-31 13:40:14 +0100
commit4cf513da9b5e64fed7daf8acbd9d1ef3b8453602 (patch)
tree53c7bdc566d7f2c055ea71d438f5ff6b25d82b42 /gst/wavparse/gstwavparse.c
parentd875e72b02b21c82b6d210ce3c054eb8ed3fcc1a (diff)
wavparse: clean up adapter properly
Reflow code so we don't try to clear or re-use an already-freed adapter.
Diffstat (limited to 'gst/wavparse/gstwavparse.c')
-rw-r--r--gst/wavparse/gstwavparse.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 1a6b62d7..abcbee12 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -2440,23 +2440,20 @@ gst_wavparse_sink_activate (GstPad * sinkpad)
GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad));
gboolean res;
- if (wav->adapter)
+ if (wav->adapter) {
+ gst_adapter_clear (wav->adapter);
g_object_unref (wav->adapter);
+ wav->adapter = NULL;
+ }
if (gst_pad_check_pull_range (sinkpad)) {
GST_DEBUG ("going to pull mode");
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);
} else {
GST_DEBUG ("going to push (streaming) mode");
wav->streaming = TRUE;
- if (wav->adapter == NULL)
- wav->adapter = gst_adapter_new ();
+ wav->adapter = gst_adapter_new ();
res = gst_pad_activate_push (sinkpad, TRUE);
}
gst_object_unref (wav);