From patchwork Wed Dec 14 17:10:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39704 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp496431pzb; Wed, 14 Dec 2022 09:11:12 -0800 (PST) X-Google-Smtp-Source: AA0mqf6AHkESwfIg3nVqhl95/P6N1SCIcn8p5ZwxwlW184KXiLAV9COp9Oo3bWAaPoD+Ihb6KnAF X-Received: by 2002:a17:907:cbc8:b0:7c1:6e08:4c20 with SMTP id vk8-20020a170907cbc800b007c16e084c20mr13535194ejc.7.1671037872256; Wed, 14 Dec 2022 09:11:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037872; cv=none; d=google.com; s=arc-20160816; b=YdyHR1HuwpWRv3Z157xKnZpv0Fbqz1FtoHlk/fi7hQA9yDJHvmlCkhxbkPp5eumS5L 6S8tM01KefUIl73afnH6SOWHtmswf5y38TTPeFSQQfcF8lDXa63kYoiVNxatkPmYyG5L 3O4Gm2AHqFfa62RdwxPSz/nGrRXo98YqLpe15YGWFTnw91jd4KOGauTKo1Vpwq4HZItb l4GxF2tEmdsHbCe/RcmZP3qHyWo2cqpRpiVziN41KfIm7iMxhJP2CsksymJDwA6hZ/cs 8t7OdWqsTCMIDvbNJptOJYuAmtsxnZFq0RCEBLBHRTJn3GH/WOzU0+uIWeuS5Z4nDBMV 53uQ== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=Q18+n5ME1zZNB2m+Tgp5wieBbtf+un94eJl1erwrdEI=; b=EiHZgWgyMcnTxEwaQYh4/VA3rhLhqn4wY6xrC8BNb4osjg1Btr529N7jkdi7ZXfRSS eVdtaniqJ0TKX7rnZwepxzz8ZHoZ7OD0hljVs+qKKYObWtSLNWL6bonh7r13vlSjZgk4 3xNAk0NOp+bnIYAQxk1VjaBqgb0yulck5eqnxdC0snhSekcTI+tf3MzLdKtb1bKL0Mnv 0u4LSadIL2If+H3wHuzq+JWQG8sm2CowRjnrPsyN8mVgJwPNng4t+7j1Pnhn3qzKWIOV ouu1EkVPNUn+I0o+kByEvTjL2aINXoHbRQpIaiJDcm5e8PQUg+MMmjcbcbNTQlzQCgMW rp1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=u4oihdLa; 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 m9-20020a170906848900b007bf9de4fe93si8750673ejx.154.2022.12.14.09.11.11; Wed, 14 Dec 2022 09:11:12 -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=u4oihdLa; 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 D795B68BC88; Wed, 14 Dec 2022 19:10:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 508CB68B635 for ; Wed, 14 Dec 2022 19:10:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037839; bh=rex6kISFF9T83kTNO5+lnUrc0elkOB4KUMr2VJpYk3M=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=u4oihdLaklcKT1RlpfVeUK9zPnQRvPqgCzw9CEcsjs9IvF8KT5pB9FOVGMWU/vVCG PY9rVrfOP3PbC9DuZpUBpdoVJH4JVCqwdfQPIabvhFLqROemGdSgjakAp6kJTvu3D7 r7sC/6+W8p+vDa/4c7TJzguIPUa+BAxD05H9aLwA= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037838tvaxg0dkx Message-ID: X-QQ-XMAILINFO: Mg/0DM1Zd+nH8P/0guWe+XSm5hwmwpMrBiuPheFIhhoLp+33b2/+Zr0FC7yVw1 wE9wY/0F2imu4WMMGBcWNLNmJaNpG4YQ346U52FloQ885oLqBSqD8Bgv/QU+ovrUIRDnQu8aTS2Y Oa+urxxMuHYpJrzxHFnOtCMYz7UZjswOduoHQt6g/S1ia2zQeeXdQGjtV1dBXfksx8SWH135cypD U99M3Zmz88VuEvUHDVA5WqBcDLenG5VAT3xcU3klZWbLmDzdSOASIon16Rl8fwkUxYabbPoZl+ox HRqzbsD9utrcUu4ck2lWIKrimr221C3rZppMWe2aPWH5ZHZodTE6b3+VCGKcBzm5oZio/ksdwUTG K6v3mfOjrlKk8egVvDAQ2ZjW4k5eE610pgYuwcz5X8hl/WtkPJdqIL/u/vQpUZo5kxajHgHimCME +XHzqslC0lulx1R5mbRYma2pEkjlvFwO3pToWWOb4uTcpyippnzaVIdMzIbuKuGomgzGqoajXwa7 KjnLJajCeksG/02vFWn60EhF9CimT4HKJ5tJ5M2N0sTu0QmU022FH25LUVkkHKkQg8IYQ1xuxlxj VUs2nN1w2V6H5fax1Z0bu/NXzsZt6vQUknAKr5dr3dLzk96IQz77gzijs3sfn3jU1RKM48z9NiIe 0SNLVSjW0LN4ZKP6BwA426cWQXxRCCuOvaZJG/3gJ/SAvMj1zZqaKgVbyBR60pA2gEVFIvRljs0j mr3gId3vZtI8/7iRaEjMH60Ct1bgAdkQX9NxJv4tKIRVLxI7hC/Yi8AypGuJVHGtwC0yu7E3xZO8 +hrTPJkOKGNPm5kURPNAuHQ50vRFuSLVxGipKa9nh3RyPy3OiAAkX9hmw9cU5IGQ4sbGszoMpTrO rYkmgJx/p/Sv4NJSpFqZmeLt2UlX6gcvl4YnfFeSXSHXzWCWbx6/alJ5Pg8kVXobJlV9YKc9LA8V WUrzj6i8M1TRtUdhtmStev01+sIRW9 From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:07 +0800 X-OQ-MSGID: <20221214171014.1058709-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/8] avformat/file: add fd option for pipe 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: CnElaH5537mN From: Zhao Zhili --- doc/protocols.texi | 4 +++- libavformat/file.c | 9 +++++++-- libavformat/version.h | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/protocols.texi b/doc/protocols.texi index d1c6fced7b..a686a7f0ac 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -687,7 +687,7 @@ The accepted syntax is: pipe:[@var{number}] @end example -@var{number} is the number corresponding to the file descriptor of the +If @option{fd} isn't specified, @var{number} is the number corresponding to the file descriptor of the pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If @var{number} is not specified, by default the stdout file descriptor will be used for writing, stdin for reading. @@ -714,6 +714,8 @@ Set I/O operation maximum block size, in bytes. Default value is @code{INT_MAX}, which results in not limiting the requested block size. Setting this value reasonably low improves user termination request reaction time, which is valuable if data transmission is slow. +@item fd +Set file descriptor. @end table Note that some formats (typically MOV), require the output protocol to diff --git a/libavformat/file.c b/libavformat/file.c index 6103c37b34..db619fcaac 100644 --- a/libavformat/file.c +++ b/libavformat/file.c @@ -92,6 +92,7 @@ static const AVOption file_options[] = { static const AVOption pipe_options[] = { { "blocksize", "set I/O operation maximum block size", offsetof(FileContext, blocksize), AV_OPT_TYPE_INT, { .i64 = INT_MAX }, 1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM }, + { "fd", "set file descriptor", offsetof(FileContext, fd), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM }, { NULL } }; @@ -381,6 +382,8 @@ static int pipe_open(URLContext *h, const char *filename, int flags) FileContext *c = h->priv_data; int fd; char *final; + + if (c->fd < 0) { av_strstart(filename, "pipe:", &filename); fd = strtol(filename, &final, 10); @@ -391,10 +394,12 @@ static int pipe_open(URLContext *h, const char *filename, int flags) fd = 0; } } + c->fd = fd; + } + #if HAVE_SETMODE - setmode(fd, O_BINARY); + setmode(c->fd, O_BINARY); #endif - c->fd = fd; h->is_streamed = 1; return 0; } diff --git a/libavformat/version.h b/libavformat/version.h index a7e5a9ac66..63e753a3aa 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -32,7 +32,7 @@ #include "version_major.h" #define LIBAVFORMAT_VERSION_MINOR 34 -#define LIBAVFORMAT_VERSION_MICRO 102 +#define LIBAVFORMAT_VERSION_MICRO 103 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ From patchwork Wed Dec 14 17:10:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39702 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp496100pzb; Wed, 14 Dec 2022 09:10:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf7hvOzIrS6OYcGNEs+Iqk4a+WYRkcyOoCga8A2LMwAtp3yAN5WFryVBm2baTjSo6hlY6Mwz X-Received: by 2002:a17:906:b88c:b0:7c1:6f86:eee with SMTP id hb12-20020a170906b88c00b007c16f860eeemr12804301ejb.33.1671037852937; Wed, 14 Dec 2022 09:10:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037852; cv=none; d=google.com; s=arc-20160816; b=aI7lYPFwBBcyk4PKX4lu8b7+MHxBY7hLgv4cM+9hIYRX8qaN0XypCG7wLacpM2SxmK viwaR1jou3nBQMgg+P8nRtimF/t7aT0qwohTR/nDz4+yJDIv2hmNV3/8hKqeaEDbtuIM Mh2KO09RTRSSFNL7OcxWTQNOw2knsaQ2pWam8fi6o0EzMdme9XoNmkTj93dBfjYEZRzi SaSy+rfsUDor3jah7FaBTmWF8soTw4lq8Yma6dP4VmsOdFSXI9P+VgqANUK9TAi+2mfz Pi00rFYIopb/C8GgBhQd1k331iB/kbaxi+u5ZdvRRgaf0k/nn9lpHr86TeTQlBWhl7Tv GZ4A== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=PUJu+P6FteD7mb7jtnz59WPnIfpDFApfX7lI44RalTU=; b=gRhT43ON5rrGTO47X/7w8Ttabbb4F0OtIeUoOhepy7QK+KAUgJID0LxczxORj+3fbn ozJPM9zHBQKNqsIyfOndBiNNMTxgbCNSr/mIIb0FoiwX4IP4I8bBlaop6EDrzCP3tLsw AEhRCfwETTWgw/HITCbiJx++O70djYqMrsElvoqfb8UHlXqZc+ywl+jB+MbVLaRcnTpp 1Kwfw9YAPNIie6NoEhp2xHwYOHQT2Luo6zk2lso3k7pLO/MxjHgo9U2BGmnF+8NGghQu s73P5jT6G+kDhNyrbr7tWtH0o0vaDElo90alvTmSX5DtZVdam5Eu9qiilgkLVY6Dur30 yEuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=tk54qNze; 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 di4-20020a170906730400b007c0d6b34c2bsi12313383ejc.647.2022.12.14.09.10.52; Wed, 14 Dec 2022 09:10:52 -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=tk54qNze; 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 2567868BC16; Wed, 14 Dec 2022 19:10:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-64.mail.qq.com (out162-62-57-64.mail.qq.com [162.62.57.64]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 87CD468A2E8 for ; Wed, 14 Dec 2022 19:10:42 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037839; bh=IaCO7QidwmvT6OXQVWfd1Y0NQ3x65zL4PUkquKuKZo4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=tk54qNzer1E50qvdmum6COw4J3P+Z2I8NqhLW3OSE2mXWyX6kWbj/2p1oA2eHYghx 5D3mRTHkh0bthVeDi+MgtbuW9hnIaWiOZkq986gsXhKrzEb4ssKBQuXi2XCKhfzTZn ax9liZFXsFEmYCqZKjYAF9JzUri06DcfF6jK/h9A= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037838tkzazol1b Message-ID: X-QQ-XMAILINFO: N2/jAoEINgTTwjuyLIt97KtZlGscUR6OfqpC+Hb8o13hrgMshqquqN/I5oXqYR 0XV01iC2ddNiRfoOu98BYWsCK6yzO5lcBg9tKV1THXzBmeRliejHQQHEdRPObcZUsG2Kji8KWSQm +14uR+bhrEgvw9C7pNwlGbc3lbOtlYVnIk2ln86tquuzgANFRIiIgQQRxQ46y8fpG+o7BFtmUzgs 0XnhmTHnLaZqd6u/n3dmNsS/NLxcAQbISl7WCQMefzLWluhTt5knJ/0OqOkF3Zux5xMRpp5KpNIS 8ieGsdVcoM6k6jtkY/VMQJhXZviRvrm5DyR2UfrvAeQ3lXBLQAx05Y/j2vhBf0+2DisrYVTzeHaY +ZRkOer9WGAHixP/NVG+HjAYhnjaWAVij3JGAM6vl2aK2FOKl6cXB2R7Fv+XbFaK9ckHXLM0BJES fOrCSbRrxQg4UwO/eEk8Xsv8WXfJ0hwZkd25gPp8FEWV1I4qFyCHLAsxLrbQQ/QyPUmY6G8vLSO/ FFt2HNuDpqPaN3KKhfj7Ci253zll30ceP8d0yfvoofrQ4MoQNm1zaXbnrZ4CQi5tBrApm3ckxV5j pn0qLxqaFiJ2Ba8fKxfbHAfizFFtpogC+mNgtk9cyXMtFVzEXkI//R3FvMMKFK/tHDegwcTbUjRj vblPcXUCjpJTA0Ib4aRJON5IjaWwJ20KfswFPB1LFOqq7ZJ5HIr2D2dLUvR2pJ0KjTUjf3GBQ+mC ixTlhgfcoqicIOye1uXx4iI7+JFyVNLsDUfCRoFx0h9qzGUNWRasheaRdNG68Wqa+Xn+C2LfLY2Y 1zGmQOSH0yZasYkR2JJ5v2RvD4vhKT3jA1UXEQQBFUA/elZiPumsiTECymD4TGgp49HiiTaBG7JO KxXoLQ6pPCmAag6a2H35rqbvRVi7D2ATneXtACaQLj0eLw14s/36XsqUOo5erpsYs5iw0L9xKkdZ lU3dUdjNer1QgUD4l0Qcl8wAtbl8ksNBy0H18UtHw/RWw1QDvUrQ== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:08 +0800 X-OQ-MSGID: <20221214171014.1058709-3-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/8] avformat/file: reindent after the previous commit 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: ItF7Ujfyb+wk From: Zhao Zhili --- libavformat/file.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libavformat/file.c b/libavformat/file.c index db619fcaac..a56be64342 100644 --- a/libavformat/file.c +++ b/libavformat/file.c @@ -384,17 +384,17 @@ static int pipe_open(URLContext *h, const char *filename, int flags) char *final; if (c->fd < 0) { - av_strstart(filename, "pipe:", &filename); - - fd = strtol(filename, &final, 10); - if((filename == final) || *final ) {/* No digits found, or something like 10ab */ - if (flags & AVIO_FLAG_WRITE) { - fd = 1; - } else { - fd = 0; + av_strstart(filename, "pipe:", &filename); + + fd = strtol(filename, &final, 10); + if((filename == final) || *final ) {/* No digits found, or something like 10ab */ + if (flags & AVIO_FLAG_WRITE) { + fd = 1; + } else { + fd = 0; + } } - } - c->fd = fd; + c->fd = fd; } #if HAVE_SETMODE From patchwork Wed Dec 14 17:10:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39703 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp496289pzb; Wed, 14 Dec 2022 09:11:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf5H2TFfKsomb4/y6MeAehDqIUKYZb8z3BFP5F3M5Tj6cfA7cMPHN82n/8yp3+8q+gZFG3sz X-Received: by 2002:a17:907:2ace:b0:7c1:eb:b2a7 with SMTP id fm14-20020a1709072ace00b007c100ebb2a7mr16532446ejc.13.1671037863134; Wed, 14 Dec 2022 09:11:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037863; cv=none; d=google.com; s=arc-20160816; b=X7rj7rmnTCUXxfL6p96utjTuAOZCOFUzETnjPnRcSLGcSPwoKnibmcQZsFUUk30lcq gMXp/YdiPg+laTqzw45DX3931y8PHxYJjULCQTS4kP/x4fAKOR20yjPm9FYKuErBiwwW a6zezdomBkl4QrsjHQ8Sk7obAStpVA1T5lXVFJW8w8+4X+YI3rugn+VOVbgIOdk/4TC5 6SUuJNSuZXcKpErb/ajks2sGSx6C79wuvtZd7GjYdgcDfFriKIa8bbyg4VL+/+fJ4MVy X3w1RvTswCUA8FC8ZS90ttgKjNyipTSjOy0DudttulKSDvGWlQj6BqdM9gQmcXUaUqxO 43wA== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=dhcOIDXSjkeRHxhkTrE0cqSvvkaDlP/Ij7rN4Fom2Sg=; b=Qm4IwwDZPVJ9sHW78aBUYORlwqWrJx+hgV90IAzFTYilY84vob9SbSTfYnBhRnhw79 0SKew7YslYSDQpXR26z6yYcnUqGoLowngHZVcc8OaT8jOrIDD3tlEjPGN0od5ClQ4SzP hAhoW/QQdyKLi3g5B4mVRQWu1NTh+xS7wke77wArjrU6yU/sxAn2w3nk4A0BWArr2m2+ aiZGAc6MvNwIKQXNNB3LEv6PqiG64PTIiyqCHq+qK9O8qeqRQr8sEVLpVJaqVOrJAPRU eNUExlyF41Ubd7A8Z/pkFxk+hTYh9OYJ93TvBqQ3xgwmFTLyHOQw23t3mzfoZvOzXqAj EJXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=vvYTkD6X; 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 e21-20020a17090658d500b007c0edce0846si12947471ejs.670.2022.12.14.09.11.02; Wed, 14 Dec 2022 09:11:03 -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=vvYTkD6X; 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 CFC6F68BC5D; Wed, 14 Dec 2022 19:10:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-210.mail.qq.com (out162-62-57-210.mail.qq.com [162.62.57.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9266D68AEB3 for ; Wed, 14 Dec 2022 19:10:42 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037840; bh=G1oIvDzRw7dd7ySna8tOvkLc3sxBEcVTAIG6B5GrZ2s=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=vvYTkD6XIeBW4MjxzxBEkBEkuX5tLqCjyF7gF+ExYO0Fk8s6IH8NlBcKSErf8mZUs bMVGnLBMTvwHUDtwUBSbIKUzNZbrp3i5nRuf4L9tBufOXbh5vmhHz6lr1RGaSG56Or g2kzn3jyEJq88Gycw/YehvTE/z3OHFguMDiQqj9g= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037839tvwvvv8mb Message-ID: X-QQ-XMAILINFO: MVKy59SpMLfU0uDBMWnOCueDarJ8VfKZb1LF6LaaXxihJcLldorioanH9YsWnn Fhdfj26WXS1eHMLllvG+/BdL9NFKLpUQ/RmnWRMPv5sq6JcSpX9pwz8xxiqr6gvSETskp8GKWA2a gFjx8IJI7vG1pOJg3nyhQWYv+3vyNKg7cJVLT6vIz3hltKa181HX/Ze1cZeKyY+Iw0sWUclI8x8c yy2n8tzZRe3ElCu2iYoN7O2GISuvLu/i4hYwXO7wJ3FuFqUHPKV1wNNzcN0MnmRdE1fjim4Op2p1 gSGinJ/K+ujOgOcpNMZEPbTi+++qA5JYKseCoycPf8GELv/t00OWmChgZAwuO35Ntadu9nBudA// se7y62grU0nR+om50VhdwoDMWAlsbCLfEqr9xEvIFk+i7H3myvoS9N58PyQ6De2nB80kPp9iVAlD ZHLDNjcE47/xR6NcrxNdSmRjx/y41ut5wUYgqU13EBvMBomZNfSZbOtTf05QJGdCAkgdDuQ5ECvs H+3e0JOVnwRaDRmV98ad5ZO8p3C4LPD9u6Edk1FB8kQkNLHz1Rd4XIoDwuJZNW2tiMiJ83IVx0oo TxUVI9juImIgXOgFyjnCZkV4TeT+CG1iP5Q0dKWEUeN9wJs0sqMYjifP5xufPpH6+kNBe4rSL2FP jAgo7IFWDGN7VHF2ydyenoA1NqCYYLG+zaT3Xd8xduEXgBTSnVoRI6vbWiVZqHAvrFulsdRQ7zei WXnvmrwrNdwuW+IZU+YQ+U5brfSvt1CM/4EZ8zIOdSa946/x9IPpv1wP+m64SwAP7jjiMq+rAmBl 4H+83uWZJ5xdGLJ08/4Fdi3OJJ0KqR0krlPiNO54QyrWa9V3sp9DF5zY+GV8Cv2dqg5b8BOnv+eB 6nwiz+YD+8+6Wy2YC9r7G34yCmqyqIy5NGVihnj2t7OxndOZoYGeavPNabVCGNOO5Uc8xJV1qbzI bfO2ympUr1BzR4lBpwNE5TBTiuLTT8bgXTr076fk5voEsP9zbsmjiX6DIk6vo+ From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:09 +0800 X-OQ-MSGID: <20221214171014.1058709-4-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 3/8] avformat/file: dup file descriptor for pipe 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: wccLMp4kdZqy From: Zhao Zhili --- libavformat/file.c | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/libavformat/file.c b/libavformat/file.c index a56be64342..878983a336 100644 --- a/libavformat/file.c +++ b/libavformat/file.c @@ -167,6 +167,36 @@ static int file_check(URLContext *h, int mask) return ret; } +static int fd_dup(URLContext *h, int oldfd) +{ + int newfd; + +#ifdef F_DUPFD_CLOEXEC + newfd = fcntl(oldfd, F_DUPFD_CLOEXEC, 0); +#else + newfd = dup(oldfd); +#endif + if (newfd == -1) + return newfd; + +#if HAVE_FCNTL + if (fcntl(newfd, F_SETFD, FD_CLOEXEC) == -1) + av_log(h, AV_LOG_DEBUG, "Failed to set close on exec\n"); +#endif + +#if HAVE_SETMODE + setmode(newfd, O_BINARY); +#endif + return newfd; +} + +static int file_close(URLContext *h) +{ + FileContext *c = h->priv_data; + int ret = close(c->fd); + return (ret == -1) ? AVERROR(errno) : 0; +} + #if CONFIG_FILE_PROTOCOL static int file_delete(URLContext *h) @@ -263,13 +293,6 @@ static int64_t file_seek(URLContext *h, int64_t pos, int whence) return ret < 0 ? AVERROR(errno) : ret; } -static int file_close(URLContext *h) -{ - FileContext *c = h->priv_data; - int ret = close(c->fd); - return (ret == -1) ? AVERROR(errno) : 0; -} - static int file_open_dir(URLContext *h) { #if HAVE_LSTAT @@ -397,9 +420,9 @@ static int pipe_open(URLContext *h, const char *filename, int flags) c->fd = fd; } -#if HAVE_SETMODE - setmode(c->fd, O_BINARY); -#endif + c->fd = fd_dup(h, c->fd); + if (c->fd == -1) + return AVERROR(errno); h->is_streamed = 1; return 0; } @@ -409,6 +432,7 @@ const URLProtocol ff_pipe_protocol = { .url_open = pipe_open, .url_read = file_read, .url_write = file_write, + .url_close = file_close, .url_get_file_handle = file_get_handle, .url_check = file_check, .priv_data_size = sizeof(FileContext), From patchwork Wed Dec 14 17:10:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39705 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp496725pzb; Wed, 14 Dec 2022 09:11:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf777GLuYtJBhJoPrcGKMLgK5TMpbS7m9zvKmXJZy4O/yedselrlgTCxjTVzl+gO1NcYnzDS X-Received: by 2002:a17:906:a845:b0:7c0:faca:52c with SMTP id dx5-20020a170906a84500b007c0faca052cmr20644026ejb.37.1671037891525; Wed, 14 Dec 2022 09:11:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037891; cv=none; d=google.com; s=arc-20160816; b=cjyDXzi9RYAXgYP8qZXtduLWN+Hz0Al+9euy4nPpxLFUxy5F047HbcamhXRQgLUyIq 3qo6J6n5e7SIx8m6TEZzIq3YvRerGUpyUMznzqtixx7o7FsH5TfM4xnMoJs4V3sI6f60 r5LQWI2u4YCjbFi/PHx3vOoQvPMC0sY2yt/y4hwJyq6noigN9ATINdKtP/f+FuV1ujQ6 A39QiJz4NtQoQqskM6P7kuN95rpu12H8VtLN/9eMwB+D0IRsWfJVhr/xNP5KcOdaI2RQ yg9O0M19QthR15oh8zzBLCtjaX30uWvPe6hcB3h8TsMx4yQg0j/JZVmEetlhzUx/ekSn MB6A== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=4AMsgCGyw2iZBUIK+xi/wkZhgnuuGqvdDeK9ZA86ZHk=; b=RVDyTtRHPrKWfOzXOo/Mzz6MfJavz05da87tP6q3NeKIoiMrw9gyEhzsOBzDAFLAcv UjMs46PtJw+yOoyJ03oPGgs70BwTvijR0vGZTrjodgV1X+ENe185TH78H1XUbewZrdNj YIeDN49clzauQtDjIotCsi0MtSdywDR8p/P1uHV6Yqcq7cVt7cTvrts9A4attNRBNai+ gMrRPUP/hYDlgOvJaJCCWxOVLA8jnbIdevA3tyeKhSAttGu+jy86Us7OEbk5508JCzCF VO6sbo8EVBO1emoTotVer24XA9YnriDX4FcRzFkRtPY7c/dSykDgg5MDzSsJfupX+rXv ViNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Ezm1iT9Z; 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 nb6-20020a1709071c8600b0073306ff26besi13956403ejc.969.2022.12.14.09.11.31; Wed, 14 Dec 2022 09:11:31 -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=Ezm1iT9Z; 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 A8FA868BCA6; Wed, 14 Dec 2022 19:10:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-216.mail.qq.com (out162-62-58-216.mail.qq.com [162.62.58.216]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5AB8268BA97 for ; Wed, 14 Dec 2022 19:10:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037840; bh=qZJJZuDHcyyEtJotoUc/lag/+FCBwIZ0L8bEl0EPIR8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Ezm1iT9ZOzSc1KSnWUjX9SFFLM4EhRE/u1MfEC+Hzy9xO3CXvumigpIkmPdubUKOp VoPUbis37xmdFKwW0SgpXFvUpMc8BVS1cSpplAPqdSrLuma4wPfr75EQRXK7PWPdVF lf6a+TeqNGp1LUqk7mjbPGwe/AmUjOm0TdIvHPUg= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037840tp55hdprh Message-ID: X-QQ-XMAILINFO: NsLYjltVP0el9JlY0ukGG8HYbKVgYeTrQMZIkVvgTsDrYHqQywWbcksrJUOXll uz5vJXy+aA8NGOkVOOJQCr1b4taEtYC4BXPitDyjFqcbyOHme7CG0RB9PmKgMGiozOOZZp5aUei9 GMgGPWBC10SDk9KOQ2zETDjXaqAhzXPdI/mODPu4V5n6oyDKZF0AfADEYCslOvkwkp996HdHlpJm ZgL/kVNgia6ItjLp4R82uQnWlSA4miNPlY5whxRZjK2rWWoOHi+dZVE1c/9ZvDx1fwDQxGa82bHE 9zWw+EcFjtd5ab8mF7XRGnZIG0qIlVm8RSbc6YlKPCuevN4duaHdRWU1zIa5GitBrNHbrZdHerOH InGbljbEaN7XE4g4nMZnlKKwXyRtWHqS6hoiHK+b2kbyOtfQsc8H08l8KA+DXHUhg2mrRyDeAz9L fmD6tM/KaPTKmUhli5fP7riHIhWGTiLwBbmtnIdaCblK+x9lS8X/6/ZUAkO9EqCgR/KUneauntoG l7E8L9v0VrMVu+5IaUwHx9matcQNH0othZAfvf9bNgOqkFuDxZOKIAGxsWlCfrRiI9Dk1mnAydOr wdeVWvctIsZV46gbzcBlThJQaJRvNB3eE+9AFJxSj1+w0+2u22TXSFPJClhopgpNNhYAKToVqX+q Nbv1P9xeAHqmCSEbEsONA6ZFXJE2Hkn1whTH1+fj0s4f1ZXLUgB7kddkP7urYbf55kxvwLD3KsRF xn3s23P04Id3ST7lpav4qPoTRbbIkV7INbRDLirXchtGVE1dzrsP+L7oRop8/hM+4SvY6VfZGHIx RrM+gc3EK2Xyd2Yu5EKTbEaGGn9XrGq1GAT6Z4xSehJBMFpFcCu2mQ8Sxf5ug2dEAnSrsZ4lcPF0 G8Eduit1xTAKwbXujYDGkkwGehTxML3OOCfRR3enISrVu4i40tz0ciot6fJu/ivrdzUXqrnb0+dC c0li72/DQTi+hAbYs9osKkhMfSFLJbqtvM6QJixq9Wc2MOJ+WaGQolXmv2o7++ From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:10 +0800 X-OQ-MSGID: <20221214171014.1058709-5-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 4/8] avformat/file: add fd protocol 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: KTUEuSN/IUPK From: Zhao Zhili Unlike the pipe protocol, fd protocol has seek support if it corresponding to a regular file. --- doc/protocols.texi | 27 +++++++++++++ libavformat/Makefile | 1 + libavformat/file.c | 87 +++++++++++++++++++++++++++++++++-------- libavformat/protocols.c | 1 + libavformat/version.h | 4 +- 5 files changed, 101 insertions(+), 19 deletions(-) diff --git a/doc/protocols.texi b/doc/protocols.texi index a686a7f0ac..21ae6181a0 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -275,6 +275,33 @@ For example, to convert a GIF file given inline with @command{ffmpeg}: ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png @end example +@section fd + +File descriptor access protocol. + +The accepted syntax is: +@example +fd: -fd @var{file_descriptor} +@end example + +If @option{fd} is not specified, by default the stdout file descriptor will be +used for writing, stdin for reading. Unlike the pipe protocol, fd protocol has +seek support if it corresponding to a regular file. fd protocol doesn't support +pass file descriptor via URL for security. + +This protocol accepts the following options: + +@table @option +@item blocksize +Set I/O operation maximum block size, in bytes. Default value is +@code{INT_MAX}, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable if data transmission is slow. + +@item fd +Set file descriptor. +@end table + @section file File access protocol. diff --git a/libavformat/Makefile b/libavformat/Makefile index d7f198bf39..1452216e29 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -647,6 +647,7 @@ OBJS-$(CONFIG_DATA_PROTOCOL) += data_uri.o OBJS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpcrypt.o rtmpdigest.o rtmpdh.o OBJS-$(CONFIG_FFRTMPHTTP_PROTOCOL) += rtmphttp.o OBJS-$(CONFIG_FILE_PROTOCOL) += file.o +OBJS-$(CONFIG_FD_PROTOCOL) += file.o OBJS-$(CONFIG_FTP_PROTOCOL) += ftp.o urldecode.o OBJS-$(CONFIG_GOPHER_PROTOCOL) += gopher.o OBJS-$(CONFIG_GOPHERS_PROTOCOL) += gopher.o diff --git a/libavformat/file.c b/libavformat/file.c index 878983a336..d20208e31f 100644 --- a/libavformat/file.c +++ b/libavformat/file.c @@ -110,6 +110,13 @@ static const AVClass pipe_class = { .version = LIBAVUTIL_VERSION_INT, }; +static const AVClass fd_class = { + .class_name = "fd", + .item_name = av_default_item_name, + .option = pipe_options, + .version = LIBAVUTIL_VERSION_INT, +}; + static int file_read(URLContext *h, unsigned char *buf, int size) { FileContext *c = h->priv_data; @@ -197,6 +204,23 @@ static int file_close(URLContext *h) return (ret == -1) ? AVERROR(errno) : 0; } +/* XXX: use llseek */ +static int64_t file_seek(URLContext *h, int64_t pos, int whence) +{ + FileContext *c = h->priv_data; + int64_t ret; + + if (whence == AVSEEK_SIZE) { + struct stat st; + ret = fstat(c->fd, &st); + return ret < 0 ? AVERROR(errno) : (S_ISFIFO(st.st_mode) ? 0 : st.st_size); + } + + ret = lseek(c->fd, pos, whence); + + return ret < 0 ? AVERROR(errno) : ret; +} + #if CONFIG_FILE_PROTOCOL static int file_delete(URLContext *h) @@ -276,23 +300,6 @@ static int file_open(URLContext *h, const char *filename, int flags) return 0; } -/* XXX: use llseek */ -static int64_t file_seek(URLContext *h, int64_t pos, int whence) -{ - FileContext *c = h->priv_data; - int64_t ret; - - if (whence == AVSEEK_SIZE) { - struct stat st; - ret = fstat(c->fd, &st); - return ret < 0 ? AVERROR(errno) : (S_ISFIFO(st.st_mode) ? 0 : st.st_size); - } - - ret = lseek(c->fd, pos, whence); - - return ret < 0 ? AVERROR(errno) : ret; -} - static int file_open_dir(URLContext *h) { #if HAVE_LSTAT @@ -441,3 +448,49 @@ const URLProtocol ff_pipe_protocol = { }; #endif /* CONFIG_PIPE_PROTOCOL */ + +#if CONFIG_FD_PROTOCOL + +static int fd_open(URLContext *h, const char *filename, int flags) +{ + FileContext *c = h->priv_data; + struct stat st; + + if (strcmp(filename, "fd:") != 0) { + av_log(h, AV_LOG_ERROR, "Doesn't support pass file descriptor via URL," + " please set it via -fd {num}\n"); + return AVERROR(EINVAL); + } + + if (c->fd < 0) { + if (flags & AVIO_FLAG_WRITE) { + c->fd = 1; + } else { + c->fd = 0; + } + } + if (fstat(c->fd, &st) < 0) + return AVERROR(errno); + h->is_streamed = !(S_ISREG(st.st_mode) || S_ISBLK(st.st_mode)); + c->fd = fd_dup(h, c->fd); + if (c->fd == -1) + return AVERROR(errno); + + return 0; +} + +const URLProtocol ff_fd_protocol = { + .name = "fd", + .url_open = fd_open, + .url_read = file_read, + .url_write = file_write, + .url_seek = file_seek, + .url_close = file_close, + .url_get_file_handle = file_get_handle, + .url_check = file_check, + .priv_data_size = sizeof(FileContext), + .priv_data_class = &fd_class, + .default_whitelist = "crypto,data" +}; + +#endif /* CONFIG_FD_PROTOCOL */ diff --git a/libavformat/protocols.c b/libavformat/protocols.c index 8b7d1b940f..82cb1033e4 100644 --- a/libavformat/protocols.c +++ b/libavformat/protocols.c @@ -29,6 +29,7 @@ extern const URLProtocol ff_concat_protocol; extern const URLProtocol ff_concatf_protocol; extern const URLProtocol ff_crypto_protocol; extern const URLProtocol ff_data_protocol; +extern const URLProtocol ff_fd_protocol; extern const URLProtocol ff_ffrtmpcrypt_protocol; extern const URLProtocol ff_ffrtmphttp_protocol; extern const URLProtocol ff_file_protocol; diff --git a/libavformat/version.h b/libavformat/version.h index 63e753a3aa..f5a7f579b3 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,8 +31,8 @@ #include "version_major.h" -#define LIBAVFORMAT_VERSION_MINOR 34 -#define LIBAVFORMAT_VERSION_MICRO 103 +#define LIBAVFORMAT_VERSION_MINOR 35 +#define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ From patchwork Wed Dec 14 17:10:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39706 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp496865pzb; Wed, 14 Dec 2022 09:11:41 -0800 (PST) X-Google-Smtp-Source: AA0mqf47ofyp9RsnFBRrdld3R3yZHlj7bgSvAv2NPGRm+YWklLw/p3pYIKC5zHNISf74McM8Heth X-Received: by 2002:a17:906:9f1e:b0:7c0:7d35:e9db with SMTP id fy30-20020a1709069f1e00b007c07d35e9dbmr27328046ejc.15.1671037901322; Wed, 14 Dec 2022 09:11:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037901; cv=none; d=google.com; s=arc-20160816; b=RS0BR4Qjtuy2Wyxan2Nkiv6NDL3Du3xCI6OokyUBOUTfsTIavc50gJLU34T6BfwPlz yZCAr1jKH62G1JFKDVT3h6tC+JHCJEXUGHp605yoJIrAlkF5GeCwOfsjdISYUABIFmSg e/vfsbu56WAI2m7pDLAeF0ixNqKa8K7YkkKpum81lc9fyQ6q+85d2+f6Zk4hFGp11fV6 RSatRR6J3FjKdYO9fwUbwCZW/k6mObMpNk0kurLHmZIcvK2C8Yp4VcLT+7fE/tx6L55z 9IH0hOzsdJ3FVo1lTIgvEycOK2YFt019RcxFwEBlHwiTjxR6gPm+jXuGtonrinssOyse aXkA== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=L00UpkMZx3qIhtbJS+RSDWKcpyACDDko2tNZyvObaeA=; b=kKbWlLGr2XQEHD01Y7LIyJQJ+yFcje6mxuLNFNerTyWkHoWS1rUtxArPr/eEBFSzwi Dpj5825+koJj4+JQZP1+lZjue/HU8qVaQ0Regd9112JM+QRcp7DtfTn6NjJCNsUCLp/H 2/SBKwMvEoW51Ag8v5sN2qZMSSr0QyOyO7BgvJo/1cZVwwqaiNRGonokz+4+gTIMOC1t R+qEA0Fvgw6GY98M4L+YgOgPTw5PT1vGsIR3Iswasnwj/SxlZq6dFrmo5hvIVZuUhEE/ kFnba3YNn0eaxtKJxlkwG0v5oHVoikbS4KsJ+R8ABhWKtOj7PlpEYGHIKdQxP/5u+ur/ aM+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=aguO+WeQ; 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 gj12-20020a170906e10c00b007269ef1872esi9745350ejb.897.2022.12.14.09.11.41; Wed, 14 Dec 2022 09:11:41 -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=aguO+WeQ; 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 9231368BA97; Wed, 14 Dec 2022 19:10:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1586068BA97 for ; Wed, 14 Dec 2022 19:10:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037841; bh=Wj5KcEbXj3l+HjbftUIoDZSaX1yuqUS0GcZV0Qyp1EM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=aguO+WeQmfCMgswai3c00xJD77rIXB99jHhjR3GriV6TADCPVGEWFm5yzQa+w57cS aQA5937+aHLuHZMLDiFjMU4NxCblRsj9EAUqaRV+fjRPHeLLUEWwNIIA6bmzNMYNcc RDOGYwuGVNqutEDRddQ25MaqfVj8dXVnpUUNv7Us= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037840t7yspgun5 Message-ID: X-QQ-XMAILINFO: OZZSS56D9fAj4wdikOVoipOEAy9EkIBhgBzK3WtoT5y5LwVY6bvGSUpRqYo9dn 1hrEilhwlH4GRBmO+X1FTXOTenKDsw+ydtuAHGidTZkOHPF15Yq0Hv4E6UairJlmnZN+vO+/YQ5V 8oYhNe83P6M3kBxe5uId61ssjxP1ivuT2/+UTNo6uTACcjRgU93O35PHyjvKCruV0qQ4eVdUG19S 1X9dNkBvpJ7nZxwXo7PDI9n2hNV+BRODOahItt3/GH0rOEeY0EX2XLexSbKvDFivN/9plaxKqkZZ f3Li3wlJspuanxceVX/mERXOzNe47R6YTIt1CyMd5xF9Ot0z3FzdGrfo1Jo8Zv45pVcXNTl+/xJ0 CV8V+Sybq5C9pTrDniqYeqW6kV+ilFCryhuwG0J1/98WenEFJemUk5b0WSIhGtWsKgaFPJPcUUib gqnvfv5ExCP3H4jg5DNldkkzlsFAfhvi5Bn5tzjzfSoi5VEROoJps6hfuIrXyf/vZhOZPaxRHwAz qs1QxB2OdpPDJssFOBTnL6ygGTJMKPKCyR5IshiZTz/FVdHhMW2M7d4qhVk5VvLuaF69xfutDRuH H6jCoVyeZhwAkGfmqfgHQ7oQEwwRJYkuBue33KmyLQ+y9hPhKg5ZSAZDd+mcXHJih529Jy3U4IS1 7rvkW1Oq0xzTM8M37RQtkdDY8garxpFzKVelZIXPyKnXmgfqExaTuGs9AWHqaC6zpgZMr83JIych aR5ABeajRYgKLmd4LTCe2ic4/F3xd46nrH7xpg4UXoiizEw3zZVKBbyr2Aug3f1OMOBrPOKZwOKt t+3F6pWuDe4oKfVZir+lHz4k6PMH/AEZx/lGNfEXUFdC6uDrOiw0ssH/fBP7pCled26PdqWVQipr 7tb/tKZDDJtWyhfA6UBrphyQ2y2YFbKE4KNIAMHoMKi97t5u5FAZMTjmrGHWwRxNOmm7c8URVw04 3Hr75fvSCq2v9LebOL84zuGOq6bmgmre9J5DMPjEvbVu8L8sMRxh9vr152CLM5 From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:11 +0800 X-OQ-MSGID: <20221214171014.1058709-6-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 5/8] fftools/ffmpeg_demux: disable stdin interaction for fd protocol 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: krhPR6bFMuex From: Zhao Zhili --- fftools/ffmpeg_demux.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index e845e6784d..be0e8970ba 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -886,6 +886,7 @@ int ifile_open(const OptionsContext *o, const char *filename) filename = "pipe:"; stdin_interaction &= strncmp(filename, "pipe:", 5) && + strcmp(filename, "fd:") && strcmp(filename, "/dev/stdin"); /* get default parameters from command line */ From patchwork Wed Dec 14 17:10:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39707 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp497009pzb; Wed, 14 Dec 2022 09:11:51 -0800 (PST) X-Google-Smtp-Source: AA0mqf5mn90+stWwvau5irqul6Yf93V5jviJc7lSKx8Z19r2lvhq1whjklCg8Zxufrt/VSAkk/I6 X-Received: by 2002:aa7:cad7:0:b0:461:b693:3d61 with SMTP id l23-20020aa7cad7000000b00461b6933d61mr22056223edt.6.1671037911440; Wed, 14 Dec 2022 09:11:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037911; cv=none; d=google.com; s=arc-20160816; b=jaj9b9mUGlibRoDZGsDS91UedqrvwLWnIFgcWub1PO9hVFmffHVl3eyIXjnDta6I41 hpBawyLpg19Zi1tQsLEFGJiJKEr3/3REop6ifqyBL9Sl+Vb9+8kibM0x7xAwRvQBAIJx dcsaIblaFMORy/WTayKdU3Ty6H3/rE21tcL5kfgjU3fqWNXqAVEzLg/PPA8SBvtEtTjr 5Mev4buaQbiykSnNI2v3wddhlYlJtU9y5+e6eY+yq4q+b2pIPzGFulcPAozzy3M4TBS8 GIdY3URHlwz2FkexSAN2yZrSj8HCaFGiyo1IAMuOeT31kEM8Q1E/RinwhtrHtKqDYdaS YNYg== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=9sdBQR8cYWlc08FHY8S1jbyUxIWYCapZozPjXF0lmWE=; b=PE3skf34qooWjM3n1l7/jluWOguR6xDczCjSAZqTbviasngHXBx+/+jg0sGKLK1Ics EfAAe2iAN92pA43qgYDsM5/WwHHsJYYHi/LDLVBHKHSayT3QKvGceyBL9gbi87aDzkNp Lfh1ZpzBiuVwwW02zCErrUTnhDrhxPByllVom94XBdeC3fLGUK4Iyg6Bh/8vQK91QQ2B zpM8lXXGka3iNfqUdb13MtMcItDaD1SJ4meNrytq6LdzoT44k2tflXYWVxFopWOOukdm df2p2wbAdbfVcKpfF2Tj9N3e0Kj0xfJLTdQsPGWtNoVSJyHfvDizvS0DuaulSKo4Orf/ 5Y0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=fuuLLRCQ; 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 f22-20020a0564021e9600b0046c6e69565dsi14340266edf.259.2022.12.14.09.11.50; Wed, 14 Dec 2022 09:11:51 -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=fuuLLRCQ; 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 9579368BC71; Wed, 14 Dec 2022 19:10:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-82.mail.qq.com (out203-205-251-82.mail.qq.com [203.205.251.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1839068BC0F for ; Wed, 14 Dec 2022 19:10:44 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037842; bh=WTWDa1MqZ5CCDW32NWxU0vIqzzmwIaJEYVRHBlagsgU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=fuuLLRCQxrT2Rh20i0R0R/pXsqFVRxs9lDjD2J+IHLDaWaE2+riZJqHvmhXjJAYQR CJxAKVCsgFkdX8dtjgUkmLAi20/iqYI36/1Fwu3+9X54WmVRRfaDAemGff541eeswE py9ztaVDSm/B2fGVL619UZwcHqG1526mNCxOYMt8= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037841t5jjh16iw Message-ID: X-QQ-XMAILINFO: My/elTziho8NiS58Ra8jA9+K9Cpd2Vbs/V5q/DugxEIVpKnTpjP1xoxkBkDtLv qVxYJySk1HkFFni5lnfIdklXclEXJGrnKteKJViLw2iBFiKo6IeEEt/i1uH3Me1UmNAcZ0AKi58j Ff20gxtzeOWvfC8DeiBvbFOXBs7iiKAmR++5mSefUNWdk7eQb34m1wpK3cajy76a2DeTiBbx5Vwo 3YNIPMRdIYdQuiVt871hUxJxs7BKIEcUm2Vk8WDF2mRDpnny0DyAHSNFBzk4vyEpwo6XkYEFHWyv DjL5CoYAWt+zRbmbNOyWGKbGVLRbc/tKomCxtCdcKndYiR0cAwoCHoaUJ4o9OpNr6dgKT9vGzI8V KvLcWUhFIgWSgq5EPR3qS1xPjpl8YnOmqbQhjabUxuyRw81xwOReahs9ShUE4x1zYhXUNF0AdIqU 2VRwlEAk3fbS882CtyZPMwAuLMnBmNKqItgmu9IdMznGwoWmkENmpasnGyreDshpjdyPfG/llS4K SRA1MSGvS6JNSf0TYhXBb5N4cXuVjukHdxvQFLxq9KHf3t54c8ve92cf35EFr/YUl/NMLJ6DnR7g PKj8tGx5nUfLXH4hHW/aYcDu5dGb5/ug7smJtTA6ryvmb2BdKRfVJ59uFFMDXk1aB58rdOSLJB6r Z5gdPP3JrgtReTK7bGV9WVMZ08UoRk2hX4bjBEtTVe+GA+Frv1BUgs+bNv8aW5VP6knCPkbSqquu GdDf5t/ejmcDtUkOquROxKQp0JJHi1/vgpQSUSS2VDUQd/ipWwyVE4jtvkt0H9JmC2rea0/OR5+2 SAq9GYNOK3vYToC9Tdsn7vg/EbBLu0jV25g9nMUH/FRQLWboYYrP4NzlFo2vsuw8NADBQGv4859H w/bDrpRiCBI9yoF7eI1AhFSu8XknMpe2JzTAqe0Im26WLab2RUUZ2ipw3A4+i3r53UYSQS0pHUtV Ee5c1ZRDILhvZ1ocYJGzKIPfdPnUniQWJdL/PSRIfhI319x0N9D/Tj1nZxtb8R From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:12 +0800 X-OQ-MSGID: <20221214171014.1058709-7-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 6/8] fftools/ffplay: prefer fd over pipe for seek support 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: HnWT5XkQc4dm From: Zhao Zhili --- fftools/ffplay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fftools/ffplay.c b/fftools/ffplay.c index fc7e1c2fb1..d6479aef5f 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -3537,7 +3537,7 @@ static void opt_input_file(void *optctx, const char *filename) exit(1); } if (!strcmp(filename, "-")) - filename = "pipe:"; + filename = "fd:"; input_filename = filename; } From patchwork Wed Dec 14 17:10:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39709 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp497317pzb; Wed, 14 Dec 2022 09:12:09 -0800 (PST) X-Google-Smtp-Source: AA0mqf6vfsONmwQWtUSUNPoZIAXiBU7UtGg7atl7XZ9KP5fLgPXamQpR6dAtqRop6LMpSIao4Enh X-Received: by 2002:a17:906:2a8c:b0:78d:f454:3771 with SMTP id l12-20020a1709062a8c00b0078df4543771mr19816119eje.20.1671037929805; Wed, 14 Dec 2022 09:12:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037929; cv=none; d=google.com; s=arc-20160816; b=DXl55gRzmLsIiDupRscAec1QpN4vxWxfXgIJ0et/Em3th4aS2s67+NcltrhWDJaFKT Z6lelQ1ZpJ0f9oHCdAttSv/mJtPJmQF8tjfqly/7zgRrTb8pSQhW6yrn94A/v7KMi6ss DmHVVokw7BtYWhl4OubfERe5uCdNcQvADxmrk0jk/l367pqjN+3QXIxSvhGseNei0nIG /WyM/u7Lw3KYh1Wvxil+eMIT9UkdlqjuemONgh5EAK8l1YYGz6hZ+JH6bC2zGt95SqxI 8KYhTG9Hp5PhKi5vvE/P8orbcf2BiasU1ITdWvzbuEP4yTSouSZ+FwhvY2b5IUP6MMeD k4WA== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=gpJ8AQx4LlBWfYHHtKZgJZ+UtmxatKa+PxJc5Cc71Lw=; b=MR3q2uKIHxcVdhJ7iHyZ4gQzdduHIg3cw5ciHPvPk1JDhb+hAazj9y8cnDKulMDNPw q8lXocA/60ZoovJqqVpMGNavkWVvSFfKG+DB6eDwekMSGNHymQ/5mryDGFoUwQgxgdJ9 vcy+1F2MpztBAICKfBq1mT2h2IXkBzt96mPwvEDIwVsfxGELrwtRzqF4Kc0qwI+lNEVZ eGiSatX1qqWAAxiSD4PnIeCnR1GMvrpwwsU5MrDS332KqQm7BxNaqoQ1cHtkyZmbJP5a 67Vx4xnDa1XazMKc1OPPYj3t8SIqk2UQwNqztAgOHjZh2DwQm7WvpIBmmvWCxi3wN6HW PYqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="vL/dueXv"; 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 e14-20020a17090658ce00b007b896cb991esi12314337ejs.207.2022.12.14.09.12.09; Wed, 14 Dec 2022 09:12:09 -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="vL/dueXv"; 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 7077F68BC0E; Wed, 14 Dec 2022 19:10:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-73.mail.qq.com (out203-205-251-73.mail.qq.com [203.205.251.73]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8B6B668BA97 for ; Wed, 14 Dec 2022 19:10:45 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037842; bh=VxL29bL6i7V3ET9xlC+sXpl9yIujGuozp93Qi8+HVM8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=vL/dueXvTr4iGFFV/3WwIOg6G1yGq57zWcex1f5rsuWda6K+KJIf/AbpUaVEwy12E 4rnA1bqcAnoWCxEtCiup33iPM3KGLX3Qu6sLUmQD+sUZZ5X9wM0EaSlSSzpvftYkFi 12sBqt2TMohp7cKgTzrSAKK0yVGLth5ukOIef0Gc= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037841t2emo4xxe Message-ID: X-QQ-XMAILINFO: MzYTHVlhOHw4xoJ8D5Kx7+2QgyQH3OhCr/zpCUqa2PS/KqnrHDSoYsghZGAmH3 bHcTG5C6w3R//qG9MjcSwXgVTwSPHTdRMaa7fskCaL8v2f6O0eiU+GS8/bkkCY3tnlIzpZcP3Yem sKRkTQKKsJAOAM3I7Vj4iwy8hvL+Xo4sRcdWFLi8eW41HWl7RNQyOH1u44ocyCnRJOmh2n4pjCrA ufgCuney5Kxc/rCSEsaqJkRPmK5Jq5Pfai5XX2rptS7U4x0CITDMKVMsOgvKx8PcPfovs7P2UDKN TIVr/XNSGAceAEM+/hSOwoQ6VDq49OJmcjUvG1haow+h037zJ91FjKfLd1UYHA940iWZ2h7Q/gWn 5Bxmk/yPfMzXuaYeTDHifDvsL8IEwlPRiLzxCdEVcLxmk+ayn70807K6weyvEKSXStmhywSwkkKV TlSR5603GGtsO1l2XX1pdlUI/lktDC2ouLQMceeT5R7+gFm6t5De5pIuA5qqVyb8ww3oS3EAa4Jm v9MUVfYAZG4sy8YGBI72Buoj1AghSFVG8CA4G8mwWL9x8z0poJyGiL9doIq3uHOFagGmGo1iI+YM bRrrrI0iFK7tXiMzMAOhWs6MObMopC6a3LN3dpwMwUahQL4giwJa7F5cG3jMuSRzPON57MhYdAZE Zab9ErMbL6R/x7uAgYrOc0muELW6iJ5/9S2SoY4tcxLcFjZwHo3fhLcwv+YrnxHKAa425Zn9VWw8 8Tig7QvjPDBgF4Limiie++Xz9BD0+I0wpffnh8l0UECW+FK6tCfxN4k5tf4JH7/GrACuYFf65lp9 fzuQ+2i8jk2GvV70f3qaHzIJTnTeGiBnoR5kGFejtiyNi3bnSl1Y4MCI3G5h53qGkB7+3WCuyJAB zC67yfALkC23Yqb94J1+czbWOHP1B7t3O5ZbNS+mFZ5e8RoKooEwxQ5QtqkjkwEDmL/dpVEvDXIn HN1JqvOaToHWd4zAMs+eZBL0SgXAjByhxwcv+rEJ0= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:13 +0800 X-OQ-MSGID: <20221214171014.1058709-8-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 7/8] fftools/ffprobe: prefer fd over pipe for seek support 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: B3oyBlz5ed1l From: Zhao Zhili --- fftools/ffprobe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index d2f126d9d6..c18aee9846 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -3714,7 +3714,7 @@ static void opt_input_file(void *optctx, const char *arg) exit_program(1); } if (!strcmp(arg, "-")) - arg = "pipe:"; + arg = "fd:"; input_filename = arg; } @@ -3733,7 +3733,7 @@ static void opt_output_file(void *optctx, const char *arg) exit_program(1); } if (!strcmp(arg, "-")) - arg = "pipe:"; + arg = "fd:"; output_filename = arg; } From patchwork Wed Dec 14 17:10:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39708 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp497168pzb; Wed, 14 Dec 2022 09:12:00 -0800 (PST) X-Google-Smtp-Source: AA0mqf4H2UPc7mRsx2G7t9H29TZP6IVc8qtLrGmzbs1+qrEM44NjTv4biuMlMy7K3RbsQEL85e7e X-Received: by 2002:a17:906:8d0e:b0:7c1:7cc2:1f1e with SMTP id rv14-20020a1709068d0e00b007c17cc21f1emr7749131ejc.35.1671037920685; Wed, 14 Dec 2022 09:12:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671037920; cv=none; d=google.com; s=arc-20160816; b=YuvosJlpTHP+FX1TMTGD80jJ/29ksYfQ/Clbx1SSh9ZPwjOqDECjAknaCPN47lR+tF Mw+pdg313XErgOh0R3ZHZQmnw48V92V2BMRPvKhp2Dg2XHgFgDbPGyxZEbFN50Y4fOtM 5Wvf0nC5RJHokbal1aklPYAAjkI/IxYV+tQERodLx201xOhuvrgd9niu7pM5dLFEsp5t zxupTP6jG+E+QSbeP/l/jB060P+RQnTB1jlBdKAiiygWH8z9RBob1TcCKkplYxqkFj9L wSeGNUnO+t4heYVZr5V/SDad/c+D2ymWXVKzG5glbaHSQuDKVruTXtP+DryOYV4DVLGu OMCQ== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=4E1XkCMfyo7tT5N4MnIDWKTDj+TAuSoRl0Hes8rKwok=; b=R/ws6M3GCB6Qq5MmSp7Iee9+7CW2lZE8Src7Xutk7YCaUhDAzfujYmutNffpnevgOe gG2jeifQZuMGFimpdQB3IFpwEvkLdjPWZcM3UAMLts4SPINabXdbGwIm4gC8DrjN7Gdu ZPLoxVZa1C8jCR+Qgl6NvBB0L7bNZGBwzlcflZInopA1m5R2xJtMt/JIxyNWdN0S34QP JIyFCqOHLOQzRFw/Oc7U40sOiRa+JY7o2452ZTFYMETYQ9Sp8hHewmN5LItB/SgSGjeE BTan0HGndfKoTicHX/euwZod3IJnzGCgsViFiJKYz97VXk/O7UcNJpHi+EgAhM79NUi5 3EHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=MEte3Xza; 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 cw11-20020a170906478b00b007c4f331c852si1650105ejc.274.2022.12.14.09.12.00; Wed, 14 Dec 2022 09:12:00 -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=MEte3Xza; 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 87FEA68BCB0; Wed, 14 Dec 2022 19:10:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C1EFE68BC59 for ; Wed, 14 Dec 2022 19:10:45 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1671037843; bh=XICDNF+7QvPwtC7T9DXZ0g+R8ZQAPueUHoo9MV+uo90=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=MEte3XzaE0Imv+Fly4YQFrd9hvz300kgw9q3doVKpd5OAjUZimH683qt2TWnlbv1I i2mOZ7uRklZ3DAHHTJYd4DFeV0CYd32p3DKkGMZkBN+5XqScDsX6FtmPVM1YnoRtg3 3einzymj8qFGzmEA2xeQ7gaTME07zpHd9sNVvmSc= Received: from localhost.localdomain ([113.116.29.217]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 2A515E8A; Thu, 15 Dec 2022 01:10:37 +0800 X-QQ-mid: xmsmtpt1671037842t3o0qx8ca Message-ID: X-QQ-XMAILINFO: NxIimAsTiib4PfWDEMk90XUluvb2Csso4PEFrkGnPVJYVFazWtB4ZhsDkKOyDJ 2y4D68KYwCVojL2Ql0xOqFyzUOZ5fpKkmXVFxjkaxP7PEhW44vFcWtJvdz0LpHjpCaqA50C50Peq Hbpcf24hWb8C/mz/8F11aRKwfnPahHzETp6RjoUYVtWehQUoHMQiOzZSjATpJoXIi127Ph0ntSEz O3Zx+KDaDLfyytmkpY5Xv9zNYqxdwtm0StGapYWAyRMU3okpVlbg9MrSHcH+sgOaskE2mFFtM5WE ejpP1TPLwuDY4oZmtjs3IKGDFjH1iPB4aN8k2U+09yLiP4OR4CiJ4NoazTmBg1q9pAGJxz3cRr/m 8c+co8yiLO7uZcuVJdbY8EzCv8X5Wz8+4c5c0unAma8755bmV8pqgVx7dO827P6SNArMOeZsbO6e Rg/t6BxBDCKzZa0CUnmhx+ZjF4+/Txk3KVex4RAzb1wNxjKWZA8sjrJaZWEksDpSrPWaseNxagn3 XZLYiKH8vH1zi1mRrr6udgEuPjdxUtdrSMDKN44gDyvcALmSIJW1BtJiD+azeSNphIMd67xsKOso UkVKQ8kxegE7wqAyMXblsALxfoeKuvge8Z1SmAO8bnCvpIW+0XXttnutiz3oDMkK7V+iWSbsE+OF wjGNRejDdQMrMsXaRp4xVnIJW6JTagwlf5GSOyu5rZQpmVjKIbTlONhA9JGJ5gHZ9L8OAyHnhSN6 6SUfyRw4Ide/b9eb5E+gyD0ZZiG1FffjrbaKFSwioDTa+p+MT9j2JaRs0zfNkXsxdEYcisRs+dQh s8r8U8N9WZbeI0Q0BCzDzl1bqefHKjOKPzjvWWiC6wJxYCXvmowpc2Vjm936cUssT+yllwEWdX/0 +UiQv+v3srcIVTvgzP3CQyoto6djRLMYcwoXSh8Cmxq0obLNtwNU7zesLSq3LI5kjBAPUng7+1mO X58VnH18sm8h8tjs/EbpCRtuN8xRJY From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2022 01:10:14 +0800 X-OQ-MSGID: <20221214171014.1058709-9-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221214171014.1058709-1-quinkblack@foxmail.com> References: <20221214171014.1058709-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 8/8] fftools/ffmpeg_demux: prefer fd over pipe for seek support 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: WFNzJxKSF7JI From: Zhao Zhili --- Because fate tests can concat multiple results to a single output, we can't do the same for muxer, unless making a lot of modification on fate-run.sh. Although unlikely, our users may do the same thing. fftools/ffmpeg_demux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index be0e8970ba..4b5c62b0d5 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -883,7 +883,7 @@ int ifile_open(const OptionsContext *o, const char *filename) } if (!strcmp(filename, "-")) - filename = "pipe:"; + filename = "fd:"; stdin_interaction &= strncmp(filename, "pipe:", 5) && strcmp(filename, "fd:") &&