set state and remove elements of media in for loop
authorSebastian Pölsterl <sebp@k-d-w.org>
Sat, 13 Jun 2009 14:05:02 +0000 (16:05 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 18 Jun 2009 13:54:11 +0000 (15:54 +0200)
gst/rtsp-server/rtsp-media.c

index 3d0ef33..502e478 100644 (file)
@@ -1548,7 +1548,7 @@ gst_rtsp_media_set_state (GstRTSPMedia *media, GstState state, GArray *transport
 void
 gst_rtsp_media_remove_elements (GstRTSPMedia *media)
 {
-  gint i;
+  gint i, j;
 
   unlock_streams (media);
   
@@ -1561,32 +1561,21 @@ gst_rtsp_media_remove_elements (GstRTSPMedia *media)
     
     gst_pad_unlink (stream->srcpad, stream->send_rtp_sink);
     
-    gst_element_set_state (stream->udpsrc[0], GST_STATE_NULL);
-    gst_element_set_state (stream->udpsrc[1], GST_STATE_NULL);
-    gst_element_set_state (stream->udpsink[0], GST_STATE_NULL);
-    gst_element_set_state (stream->udpsink[1], GST_STATE_NULL);
-    gst_element_set_state (stream->appsrc[0], GST_STATE_NULL);
-    gst_element_set_state (stream->appsrc[1], GST_STATE_NULL);
-    gst_element_set_state (stream->appsink[0], GST_STATE_NULL);
-    gst_element_set_state (stream->appsink[1], GST_STATE_NULL);
-    gst_element_set_state (stream->tee[0], GST_STATE_NULL);
-    gst_element_set_state (stream->tee[1], GST_STATE_NULL);
-    gst_element_set_state (stream->selector[0], GST_STATE_NULL);
-    gst_element_set_state (stream->selector[1], GST_STATE_NULL);
+    for (j = 0; j < 2; j++) {
+      gst_element_set_state (stream->udpsrc[j], GST_STATE_NULL);
+      gst_element_set_state (stream->udpsink[j], GST_STATE_NULL);
+      gst_element_set_state (stream->appsrc[j], GST_STATE_NULL);
+      gst_element_set_state (stream->appsink[j], GST_STATE_NULL);
+      gst_element_set_state (stream->tee[j], GST_STATE_NULL);
+      gst_element_set_state (stream->selector[j], GST_STATE_NULL);
     
-    gst_bin_remove (GST_BIN (media->pipeline), stream->udpsrc[0]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->udpsrc[1]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->udpsink[0]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->udpsink[1]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->appsrc[0]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->appsrc[1]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->appsink[0]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->appsink[1]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->tee[0]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->tee[1]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->selector[0]);
-    gst_bin_remove (GST_BIN (media->pipeline), stream->selector[1]);
-
+      gst_bin_remove (GST_BIN (media->pipeline), stream->udpsrc[j]);
+      gst_bin_remove (GST_BIN (media->pipeline), stream->udpsink[j]);
+      gst_bin_remove (GST_BIN (media->pipeline), stream->appsrc[j]);
+      gst_bin_remove (GST_BIN (media->pipeline), stream->appsink[j]);
+      gst_bin_remove (GST_BIN (media->pipeline), stream->tee[j]);
+      gst_bin_remove (GST_BIN (media->pipeline), stream->selector[j]);
+    }
     gst_rtsp_media_stream_free (stream);
   }
   g_array_remove_range (media->streams, 0, media->streams->len);