summaryrefslogtreecommitdiff
path: root/libavformat/teeproto.c
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2023-01-13 00:23:09 +0800
committerZhao Zhili <zhilizhao@tencent.com>2023-01-26 23:31:44 +0800
commitb8fca1f1f5ece5f3ca9d6db0cb72c1918ba07deb (patch)
treee4e1e010b93f99dd630ed004254503537e88c0ab /libavformat/teeproto.c
parent1263b0a6ca8f51cebbd21568af31b37235650515 (diff)
avformat/teeproto: setup max_packet_size
It's the minimum of all child protocols max_packet_size. Can be used like this: ffmpeg -re -i cctv.mp4 -c copy -f mpegts \ -protocol_whitelist 'tee,file,udp' \ 'tee:out.ts|udp://127.0.0.1:6666?pkt_size=1316' Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavformat/teeproto.c')
-rw-r--r--libavformat/teeproto.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavformat/teeproto.c b/libavformat/teeproto.c
index e532bc7750..dca97a6741 100644
--- a/libavformat/teeproto.c
+++ b/libavformat/teeproto.c
@@ -131,6 +131,18 @@ loop_fail:
h->is_streamed |= c->child[i].url_context->is_streamed;
}
+ h->max_packet_size = 0;
+ for (i = 0; i < c->child_count; i++) {
+ int max = c->child[i].url_context->max_packet_size;
+ if (!max)
+ continue;
+
+ if (!h->max_packet_size)
+ h->max_packet_size = max;
+ else if (h->max_packet_size > max)
+ h->max_packet_size = max;
+ }
+
return 0;
fail:
tee_close(h);