From patchwork Thu Jan 12 16:23:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39986 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp5655635pzb; Thu, 12 Jan 2023 08:23:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXvW4X7NwYGE3nOySdD8xvpcTIleJV37+kamN/UJxrkr0g7umifLadEZKI2wh8bNunG2Orxc X-Received: by 2002:a17:907:2113:b0:84d:4b39:1448 with SMTP id qn19-20020a170907211300b0084d4b391448mr14616756ejb.67.1673540630953; Thu, 12 Jan 2023 08:23:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673540630; cv=none; d=google.com; s=arc-20160816; b=s4+AmuFR/NMVbb5fXKbYxqLWt/1zLKRaDSKxbOA6gPn23/XgP+kqeNHcc6RFT2KSJ+ rKapL8cUKw6uHUgOuX8GpL5qIL5S+A/NojohDX7CCtGgsxHn1JfyI1NHD/SQRgJ/lhs/ 8GFrc0l2WtdW2sZEXGNHJ9v25YOukE+bmKLqxfaqQSPOvWWZGW4qL3/dNOEWmo+KnbpL P8l1W8CNbUDEE87Lvp9BCU/AIMLcyv9XBRpZzmyxsKECOn3pGAtXZ0C+3+pBIpUnB5kK KoRD+E0pIQQw5vSFAPu1KXFXcU7TVpunHFN/kqpEa8QIHW4ao6XLqV+zcxtaPARp5aVj J2VQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=bF6yJdk8uVoAMXzE40Xh4rS+osP6SXZ2GG3BbtTYtUM=; b=D2DQs6njDI48RGwmGF2aKNBu6sVyOxuECz49/yieAl2Cw9IqbxCvqX0uDsltSMktjQ ULuFPS67aSG7AmgsSiTcFi+iAiFK+5/t/uUu4zqtJjy9xcNjnWaRH+k64PJHWRfAFLG3 dSoz4dSWWgBedmtikNsdSBqxab8R2CI2rPP1ynjLUp02cIXUuTPuh7nMO2H+8FL0Ppx1 2JxFkhNk5qwqRJV15i7fqGdRVgOZJNNklH4Ksz3Xq5Ci8EvCbEGc2luk36ZrBTk59Yjh 7tgxTCta9/17fyDdHik1EQq9AE/P/cP/C7GVHnOvF8hwSzeDepsnq5C1c4UQzkNPtJnR zGdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=kMk3l9Xp; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id wu7-20020a170906eec700b007adf38290f1si18965167ejb.642.2023.01.12.08.23.50; Thu, 12 Jan 2023 08:23:50 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=kMk3l9Xp; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9D701680446; Thu, 12 Jan 2023 18:23:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-233.mail.qq.com (out203-205-221-233.mail.qq.com [203.205.221.233]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A45A5680446 for ; Thu, 12 Jan 2023 18:23:39 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1673540614; bh=XojV1Lu4+WFaZZVB4vaTfy1qqN1zfQUbn5BPv3tgX8E=; h=From:To:Cc:Subject:Date; b=kMk3l9XpkHMcf2Vl46V4eH4hNtMzez1AZv+gJbO4XMi1z+rUKVCrxfFoDjW6DOkHv 2d7Vb8zMacCWIv4HgQFwlOlfpVzkRzHeI4GV/bR08MMPi8s4TJsgJY5qfD0/+TmcOt axlFLwuyMq5ptqgI95k3ez7zg1XnLSZMwbFDzQaw= Received: from localhost.localdomain ([14.153.77.217]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 5E12C25B; Fri, 13 Jan 2023 00:23:33 +0800 X-QQ-mid: xmsmtpt1673540613tkqjmnfc8 Message-ID: X-QQ-XMAILINFO: MyirvGjpKb1jWWv3SvzBOMEv6z4q/UcFbwx5UxTQ+pOP6+lyQZ9sd19ok2Sp0r vGqBxrjWfbhb5xu5utwfwGRGWEN/uE791J03FeskTS8/hFZAUokydv8Z65JnNsK6ZnjUb91fy2Xs zS0k8o5G86Ty/c7rC0s6UVbTQKuXd9x8tD9V2UQ2cY2WlUPhxc6N58NWIVFSGp75JplNeBBuJ93T nuM6Tdaair03jNmfQPu7z4WKCVO6IkNP0MeCBTfjbzWr4zw11T1X+pilaXdZR82rg+bO93E1Z63d J2vKvgxQCH8sWDnPCOjWNIkKICNja9UqIzOw1mYmDCykCO9Z2BuxtgjqPEt2IYv1qMdIMhRG2ykf htUyV88OOM84Iz4YPHgj19F9xubQ2Px2FHGpKXjtRNgbTaqoPeaEdQfKCPuAdfWrBZJklwJ8HZDm CMhU2wU5Y/elUaySshBUOwVh9HceuUEbCexOhAmuAym/RrDg1FcHIN+nrB16D7XzqjcxXpNVQjAq fsk8vvjfQdiTvyobPWLOtxPLQYqwA74PDcCcfvBC1kxQalCduQdv+YigpAoH/j1SEzeCbhaJbtGC Y7+n4HcaLBq1mcATSZwauGOaBdHBqdi0QmVkJvqr8QDK9RDcQm0bWrw6eGNYF0NjQ+rznDvwj0me 8Yf0zwRkduL7CKP6iQq08MTkp+FvCJPodXbQrlm4IZUOCx7/qxjOo4/ey57Z7I+7qt7sfaEIRfCF /AAINv6rQFsKWXh8sdcFz0RpkVWHUmassRCzYeBEenW1GD9SrcHNQvWGlnMCobEDaEYUuC0RZEeT n9z7qazM822u/ic9/JOdoAC/VSIL+HWWnl/m06IhATI/RqnxvfYpVCrbW7ZQxVpiATrtNBoX1nws 14UdA2sP89asU0IYS7ppCfGlwSN45FDrfOb4/W9j6S/aNF8G8vepDxTGrFvd6T0TJS47q+9JlLdK 3yOnO80p8= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 13 Jan 2023 00:23:09 +0800 X-OQ-MSGID: <20230112162309.222132-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/teeproto: setup max_packet_size X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: PpOwkfvO98GM From: Zhao Zhili 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 --- libavformat/teeproto.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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);