dvdemux: Fix refcount issues with the seek event
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 11 Mar 2011 12:46:05 +0000 (13:46 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 11 Mar 2011 12:48:32 +0000 (13:48 +0100)
Fixes bug #642963.

ext/dv/gstdvdemux.c

index c1ecd92..967c369 100644 (file)
@@ -915,7 +915,7 @@ gst_dvdemux_handle_push_seek (GstDVDemux * dvdemux, GstPad * pad,
 
   /* First try if upstream can handle time based seeks */
   if (format == GST_FORMAT_TIME)
-    res = gst_pad_push_event (dvdemux->sinkpad, event);
+    res = gst_pad_push_event (dvdemux->sinkpad, gst_event_ref (event));
 
   if (!res) {
     /* we convert the start/stop on the srcpad to the byte format
@@ -1153,8 +1153,10 @@ gst_dvdemux_send_event (GstElement * element, GstEvent * event)
       } else {
         GST_OBJECT_UNLOCK (dvdemux);
 
-        if (dvdemux->seek_handler)
+        if (dvdemux->seek_handler) {
           res = dvdemux->seek_handler (dvdemux, dvdemux->videosrcpad, event);
+          gst_event_unref (event);
+        }
       }
       break;
     }