[SCM] libav/experimental: Use the same code to set local_port in the IPv4-only case and in the protocol-independet case

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:09:32 UTC 2013


The following commit has been merged in the experimental branch:
commit 882d00f27d7318b7542dd41c360c491281638e2c
Author: Luca Abeni <lucabe72 at email.it>
Date:   Thu Nov 15 13:34:56 2007 +0000

    Use the same code to set local_port in the IPv4-only case and in the
    protocol-independet case
    
    Originally committed as revision 11036 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/udp.c b/libavformat/udp.c
index 7d2529b..71dd5bf 100644
--- a/libavformat/udp.c
+++ b/libavformat/udp.c
@@ -339,6 +339,8 @@ static int udp_open(URLContext *h, const char *uri, int flags)
     if(!ff_network_init())
         return AVERROR(EIO);
 
+    if (s->is_multicast && !(h->flags & URL_WRONLY))
+        s->local_port = port;
 #ifndef CONFIG_IPV6
     udp_fd = socket(AF_INET, SOCK_DGRAM, 0);
     if (udp_fd < 0)
@@ -346,12 +348,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
 
     my_addr.sin_family = AF_INET;
     my_addr.sin_addr.s_addr = htonl (INADDR_ANY);
-    if (s->is_multicast && !(h->flags & URL_WRONLY)) {
-        /* special case: the bind must be done on the multicast address port */
-        my_addr.sin_port = s->dest_addr.sin_port;
-    } else {
-        my_addr.sin_port = htons(s->local_port);
-    }
+    my_addr.sin_port = htons(s->local_port);
 
     if (s->reuse_socket)
         if (setsockopt (udp_fd, SOL_SOCKET, SO_REUSEADDR, &(s->reuse_socket), sizeof(s->reuse_socket)) != 0)
@@ -365,8 +362,6 @@ static int udp_open(URLContext *h, const char *uri, int flags)
     getsockname(udp_fd, (struct sockaddr *)&my_addr1, &len);
     s->local_port = ntohs(my_addr1.sin_port);
 #else
-    if (s->is_multicast && !(h->flags & URL_WRONLY))
-        s->local_port = port;
     udp_fd = udp_ipv6_set_local(h);
     if (udp_fd < 0)
         goto fail;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list