@@ -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;
}
@@ -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 < 58)
+#endif
#ifndef FF_API_R_FRAME_RATE
#define FF_API_R_FRAME_RATE 1
Signed-off-by: Steven Liu <lq@chinaffmpeg.org> --- libavformat/udp.c | 19 ++++++++++++++++++- libavformat/version.h | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-)