diff mbox series

[FFmpeg-devel] avformat/teeproto: setup max_packet_size

Message ID tencent_B0E27E7EADC23899C009B7D869EE025D690A@qq.com
State Accepted
Commit b8fca1f1f5ece5f3ca9d6db0cb72c1918ba07deb
Headers show
Series [FFmpeg-devel] avformat/teeproto: setup max_packet_size | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Zhao Zhili Jan. 12, 2023, 4:23 p.m. UTC
From: Zhao Zhili <zhilizhao@tencent.com>

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>
---
 libavformat/teeproto.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff mbox series

Patch

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);