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>
This commit is contained in:
Zhao Zhili 2023-01-13 00:23:09 +08:00
parent 1263b0a6ca
commit b8fca1f1f5
1 changed files with 12 additions and 0 deletions

View File

@ -131,6 +131,18 @@ loop_fail:
h->is_streamed |= c->child[i].url_context->is_streamed; 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; return 0;
fail: fail:
tee_close(h); tee_close(h);