summaryrefslogtreecommitdiffstats
path: root/gst/nuvdemux
diff options
context:
space:
mode:
Diffstat (limited to 'gst/nuvdemux')
-rw-r--r--gst/nuvdemux/gstnuvdemux.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gst/nuvdemux/gstnuvdemux.c b/gst/nuvdemux/gstnuvdemux.c
index 219a580a..20ba7538 100644
--- a/gst/nuvdemux/gstnuvdemux.c
+++ b/gst/nuvdemux/gstnuvdemux.c
@@ -802,11 +802,16 @@ gst_nuv_demux_sink_activate (GstPad * sinkpad)
if (gst_pad_check_pull_range (sinkpad)) {
nuv->mode = 0;
- nuv->adapter = NULL;
+ if (nuv->adapter != NULL) {
+ gst_object_unref (nuv->adapter);
+ nuv->adapter = NULL;
+ }
res = gst_pad_activate_pull (sinkpad, TRUE);
} else {
nuv->mode = 1;
- nuv->adapter = gst_adapter_new ();
+ if (!nuv->adapter) {
+ nuv->adapter = gst_adapter_new ();
+ }
res = gst_pad_activate_push (sinkpad, TRUE);
}