summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/udp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavformat/udp.c b/libavformat/udp.c
index 3d159ef4f8..f28bdcaa4c 100644
--- a/libavformat/udp.c
+++ b/libavformat/udp.c
@@ -48,6 +48,7 @@ typedef struct {
* option: 'multicast=1' : enable multicast
* 'ttl=n' : set the ttl value (for multicast only)
* 'localport=n' : set the local port
+ * 'pkt_size=n' : set max packet size
*
* @param s1 media file context
* @param uri of the remote server
@@ -104,6 +105,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
char buf[256];
h->is_streamed = 1;
+ h->max_packet_size = 1472;
is_output = (flags & URL_WRONLY);
@@ -123,6 +125,9 @@ static int udp_open(URLContext *h, const char *uri, int flags)
if (find_info_tag(buf, sizeof(buf), "localport", p)) {
s->local_port = strtol(buf, NULL, 10);
}
+ if (find_info_tag(buf, sizeof(buf), "pkt_size", p)) {
+ h->max_packet_size = strtol(buf, NULL, 10);
+ }
}
/* fill the dest addr */
@@ -191,7 +196,6 @@ static int udp_open(URLContext *h, const char *uri, int flags)
}
s->udp_fd = udp_fd;
- h->max_packet_size = 1472; /* XXX: probe it ? */
return 0;
fail:
if (udp_fd >= 0)