]> git.sesse.net Git - ffmpeg/commitdiff
Merge commit '34af7813f77e2b5b9dcb34f20bcf53bfcc0ba9c9'
authorHendrik Leppkes <h.leppkes@gmail.com>
Sun, 29 Nov 2015 15:11:16 +0000 (16:11 +0100)
committerHendrik Leppkes <h.leppkes@gmail.com>
Sun, 29 Nov 2015 15:11:16 +0000 (16:11 +0100)
* commit '34af7813f77e2b5b9dcb34f20bcf53bfcc0ba9c9':
  udp: Use the logging context

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
1  2 
libavformat/udp.c

index 1bda5af29795caa31ab6b9199da0522c15fc3de2,7fc3843b466d56c7c102b7d03c657641af120343..65e730633926d79e2f6b98fc9949b52da5f8bf1d
@@@ -342,8 -280,8 +346,8 @@@ static int udp_set_url(URLContext *h
      struct addrinfo *res0;
      int addr_len;
  
-     res0 = udp_resolve_host(hostname, port, SOCK_DGRAM, AF_UNSPEC, 0);
+     res0 = udp_resolve_host(h, hostname, port, SOCK_DGRAM, AF_UNSPEC, 0);
 -    if (res0 == 0) return AVERROR(EIO);
 +    if (!res0) return AVERROR(EIO);
      memcpy(addr, res0->ai_addr, res0->ai_addrlen);
      addr_len = res0->ai_addrlen;
      freeaddrinfo(res0);
      return addr_len;
  }
  
- static int udp_socket_create(UDPContext *s, struct sockaddr_storage *addr,
+ static int udp_socket_create(URLContext *h, struct sockaddr_storage *addr,
                               socklen_t *addr_len, const char *localaddr)
  {
+     UDPContext *s = h->priv_data;
      int udp_fd = -1;
 -    struct addrinfo *res0 = NULL, *res = NULL;
 +    struct addrinfo *res0, *res;
      int family = AF_UNSPEC;
  
      if (((struct sockaddr *) &s->dest_addr)->sa_family)
          family = ((struct sockaddr *) &s->dest_addr)->sa_family;
-     res0 = udp_resolve_host((localaddr && localaddr[0]) ? localaddr : NULL, s->local_port,
+     res0 = udp_resolve_host(h, (localaddr && localaddr[0]) ? localaddr : NULL,
+                             s->local_port,
                              SOCK_DGRAM, family, AI_PASSIVE);
 -    if (res0 == 0)
 +    if (!res0)
          goto fail;
      for (res = res0; res; res=res->ai_next) {
 -        udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0);
 +        if (s->udplite_coverage)
 +            udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, IPPROTO_UDPLITE);
 +        else
 +            udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0);
          if (udp_fd != -1) break;
          log_net_error(NULL, AV_LOG_ERROR, "socket");
      }
@@@ -760,10 -576,14 +766,14 @@@ static int udp_open(URLContext *h, cons
                  goto fail;
              }
              if (num_include_sources) {
-                 if (udp_set_multicast_sources(udp_fd, (struct sockaddr *)&s->dest_addr, s->dest_addr_len, include_sources, num_include_sources, 1) < 0)
+                 if (udp_set_multicast_sources(h, udp_fd,
+                                               (struct sockaddr *)&s->dest_addr,
+                                               s->dest_addr_len,
+                                               include_sources,
+                                               num_include_sources, 1) < 0)
                      goto fail;
              } else {
 -                if (udp_join_multicast_group(udp_fd, (struct sockaddr *)&s->dest_addr) < 0)
 +                if (udp_join_multicast_group(udp_fd, (struct sockaddr *)&s->dest_addr,(struct sockaddr *)&s->local_addr_storage) < 0)
                      goto fail;
              }
              if (num_exclude_sources) {