playsink: fix ts_offset refcounting
authorWim Taymans <wim.taymans@collabora.co.uk>
Mon, 29 Aug 2011 11:33:49 +0000 (13:33 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 29 Aug 2011 11:33:49 +0000 (13:33 +0200)
gst/playback/gstplaysink.c

index f95e3e9..23c92e7 100644 (file)
@@ -2304,8 +2304,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
 
       add_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
       activate_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
-      g_object_unref (playsink->videochain->ts_offset);
-      playsink->videochain->ts_offset = NULL;
+      gst_object_replace ((GstObject **) & playsink->videochain->ts_offset,
+          NULL);
     }
 
     if (playsink->videodeinterlacechain) {
@@ -2358,8 +2358,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
         disconnect_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
-        g_object_unref (playsink->audiochain->ts_offset);
-        playsink->audiochain->ts_offset = NULL;
+        gst_object_replace ((GstObject **) & playsink->audiochain->ts_offset,
+            NULL);
         free_chain ((GstPlayChain *) playsink->audiochain);
         playsink->audiochain = NULL;
         playsink->volume_changed = playsink->mute_changed = FALSE;
@@ -2429,8 +2429,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
         disconnect_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
-        g_object_unref (playsink->audiochain->ts_offset);
-        playsink->audiochain->ts_offset = NULL;
+        gst_object_replace ((GstObject **) & playsink->audiochain->ts_offset,
+            NULL);
       }
       add_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
       activate_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
@@ -3422,8 +3422,8 @@ gst_play_sink_change_state (GstElement * element, GstStateChange transition)
         disconnect_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
-        g_object_unref (playsink->audiochain->ts_offset);
-        playsink->audiochain->ts_offset = NULL;
+        gst_object_replace ((GstObject **) & playsink->audiochain->ts_offset,
+            NULL);
       }
       ret = GST_STATE_CHANGE_SUCCESS;
       break;