[FFmpeg-devel] [PATCH] avformat/udp: deprecate local_port option

Steven Liu lq at chinaffmpeg.org
Wed Oct 12 09:21:39 EEST 2016


Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
---
 doc/protocols.texi    |    3 +++
 libavformat/udp.c     |   19 ++++++++++++++++++-
 libavformat/version.h |    3 +++
 3 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/doc/protocols.texi b/doc/protocols.texi
index 3abc5f3..85a3f56 100644
--- a/doc/protocols.texi
+++ b/doc/protocols.texi
@@ -1304,6 +1304,9 @@ input has enough packets to sustain it.
 When using @var{bitrate} this specifies the maximum number of bits in
 packet bursts.
 
+ at item local_port=@var{port}
+This is a deprecated option, you can use localport instead it.
+
 @item localport=@var{port}
 Override the local UDP port to bind with.
 
diff --git a/libavformat/udp.c b/libavformat/udp.c
index 3835f98..af06b89 100644
--- a/libavformat/udp.c
+++ b/libavformat/udp.c
@@ -86,6 +86,9 @@ typedef struct UDPContext {
     int pkt_size;
     int is_multicast;
     int is_broadcast;
+#if FF_API_UDP_LOCAL_PORT
+    int local_port_deprecated;
+#endif
     int local_port;
     int reuse_socket;
     int overrun_nonfatal;
@@ -123,7 +126,9 @@ static const AVOption options[] = {
     { "bitrate",        "Bits to send per second",                         OFFSET(bitrate),        AV_OPT_TYPE_INT64,  { .i64 = 0  },     0, INT64_MAX, .flags = E },
     { "burst_bits",     "Max length of bursts in bits (when using bitrate)", OFFSET(burst_bits),   AV_OPT_TYPE_INT64,  { .i64 = 0  },     0, INT64_MAX, .flags = E },
     { "localport",      "Local port",                                      OFFSET(local_port),     AV_OPT_TYPE_INT,    { .i64 = -1 },    -1, INT_MAX, D|E },
-    { "local_port",     "Local port",                                      OFFSET(local_port),     AV_OPT_TYPE_INT,    { .i64 = -1 },    -1, INT_MAX, .flags = D|E },
+#if FF_API_UDP_LOCAL_PORT
+    { "local_port",     "Local port",                                      OFFSET(local_port_deprecated),     AV_OPT_TYPE_INT,    { .i64 = -1 },    -1, INT_MAX, .flags = D|E },
+#endif
     { "localaddr",      "Local address",                                   OFFSET(localaddr),      AV_OPT_TYPE_STRING, { .str = NULL },               .flags = D|E },
     { "udplite_coverage", "choose UDPLite head size which should be validated by checksum", OFFSET(udplite_coverage), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, D|E },
     { "pkt_size",       "Maximum UDP packet size",                         OFFSET(pkt_size),       AV_OPT_TYPE_INT,    { .i64 = 1472 },  -1, INT_MAX, .flags = D|E },
@@ -377,6 +382,12 @@ static int udp_socket_create(URLContext *h, struct sockaddr_storage *addr,
 
     if (((struct sockaddr *) &s->dest_addr)->sa_family)
         family = ((struct sockaddr *) &s->dest_addr)->sa_family;
+#if FF_API_UDP_LOCAL_PORT
+    if (s->local_port_deprecated >= 0) {
+        av_log(s, AV_LOG_WARNING, "the local_port option is deprecated, please use localport option\n");
+        s->local_port = s->local_port_deprecated;
+    }
+#endif
     res0 = udp_resolve_host(h, (localaddr && localaddr[0]) ? localaddr : NULL,
                             s->local_port,
                             SOCK_DGRAM, family, AI_PASSIVE);
@@ -481,6 +492,12 @@ int ff_udp_set_remote_url(URLContext *h, const char *uri)
 int ff_udp_get_local_port(URLContext *h)
 {
     UDPContext *s = h->priv_data;
+#if FF_API_UDP_LOCAL_PORT
+    if (s->local_port_deprecated >= 0) {
+        av_log(s, AV_LOG_WARNING, "the local_port option is deprecated, please use localport option\n");
+        s->local_port = s->local_port_deprecated;
+    }
+#endif
     return s->local_port;
 }
 
diff --git a/libavformat/version.h b/libavformat/version.h
index 92801b4..71c03ef 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -85,6 +85,9 @@
 #ifndef FF_API_HTTP_USER_AGENT
 #define FF_API_HTTP_USER_AGENT          (LIBAVFORMAT_VERSION_MAJOR < 58)
 #endif
+#ifndef FF_API_UDP_LOCAL_PORT
+#define FF_API_UDP_LOCAL_PORT           (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
 
 #ifndef FF_API_R_FRAME_RATE
 #define FF_API_R_FRAME_RATE            1
-- 
1.7.1





More information about the ffmpeg-devel mailing list