commit 6717476a946131c418837ae85de9f2c6ef68e7e9
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Tue Jul 6 18:22:24 2010 +0200

    rtspsrc: don't reuse udp sockets
    
    Don't reuse sockets but make the udpsrc element fail the state change when the
    socket is already in use. If we don't prevent reuse, we might end up using the same
    port for different streams in some cases.
    
    Fixes #622017

diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 9b33bf5..6133718 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -1391,7 +1391,7 @@ again:
   udpsrc0 = gst_element_make_from_uri (GST_URI_SRC, host, NULL);
   if (udpsrc0 == NULL)
     goto no_udp_protocol;
-  g_object_set (G_OBJECT (udpsrc0), "port", tmp_rtp, NULL);
+  g_object_set (G_OBJECT (udpsrc0), "port", tmp_rtp, "reuse", FALSE, NULL);
 
   ret = gst_element_set_state (udpsrc0, GST_STATE_PAUSED);
   if (ret == GST_STATE_CHANGE_FAILURE) {
@@ -1439,7 +1439,7 @@ again:
 
   /* set port */
   tmp_rtcp = tmp_rtp + 1;
-  g_object_set (G_OBJECT (udpsrc1), "port", tmp_rtcp, NULL);
+  g_object_set (G_OBJECT (udpsrc1), "port", tmp_rtcp, "reuse", FALSE, NULL);
 
   GST_DEBUG_OBJECT (src, "starting RTCP on port %d", tmp_rtcp);
   ret = gst_element_set_state (udpsrc1, GST_STATE_PAUSED);
