From patchwork Sun Apr 9 14:08:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 41057 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp1591643pzb; Sun, 9 Apr 2023 07:11:10 -0700 (PDT) X-Google-Smtp-Source: AKy350bzNw9Jqu5yr6VOqnuKnLxF+yGSkzRE4Mu47mR1Xa+OhpI0tb122wpN1cahbRsB54EovU6+ X-Received: by 2002:a50:ee99:0:b0:502:3376:7872 with SMTP id f25-20020a50ee99000000b0050233767872mr9383953edr.35.1681049470713; Sun, 09 Apr 2023 07:11:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681049470; cv=none; d=google.com; s=arc-20160816; b=i2wcaTTR41gdCTPXK0lTXrt8X7etcRstSqX9knDUkQ5DK86qZmBWLHG7UL7MWP1shV 40Lm63mM+bZvERQ/QDxtTB0rjAnogXLtqFIx8QMnheGNFDYrkF+X8LMEWZqj2Fz6VDxq tENM9wicHzuuv9+Mk/G+9U+WazBOj6Ct2+DVjONemM9VPTkW8TMuICawzVFoxu7u/A2S mdb6FnxLU+eSq7MOXszB1eyGhOH+Sg1QA62LFXKkvX1veQQxarNWLtNIIMcIa6fHr0oF V631ogHpz21gl0TUgVbD9o6ZzI5z03JCMvgwYupcH88jr9HCV2C+NdIMXv1eYWLVe5eb xrEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=oj1aeIkf4V97rHX05McRfM+MIUu28+qhaINpjFI8Qts=; b=sz/7LVELJr6qLloptMtyEz4RnKEw8tV3CnQKssMMLycXn8yS5RvaKt33NWMWTV+iOC nc2SEW3ivy6jIYuO/a/4eAYMvYW2mCyAmL760GRr6l5oPoxXxJvJSCo7pee08Xy62XLC ZRucWhehJ9koILod97VJwR0a7UibPwtgu2Doev7na+iA9fpZSTEEv1Zuc9zT01sgnP05 iYDYs1q68TkF3zFs84O1VpJaQwhrhpc08zt/TpGn5+Oi+hYbREBZqR6qH1CpUehGcNHU P34KsM72pJxr4fCE+tQHcpkpBe4iw3LHvD+v+mk5nb/FgSIi3u7jtjdkrFlU0yzXkJK7 lzZg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e20-20020a50ec94000000b0050493007972si2275591edr.308.2023.04.09.07.11.10; Sun, 09 Apr 2023 07:11:10 -0700 (PDT) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A053768BE23; Sun, 9 Apr 2023 17:09:30 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7469B68BC9D for ; Sun, 9 Apr 2023 17:09:18 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 05D472404F5 for ; Sun, 9 Apr 2023 16:09:18 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id u8hBWjO-rxxS for ; Sun, 9 Apr 2023 16:09:17 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id D0BE6240D1D for ; Sun, 9 Apr 2023 16:09:10 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id BF7A23A039B for ; Sun, 9 Apr 2023 16:09:10 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Sun, 9 Apr 2023 16:08:47 +0200 Message-Id: <20230409140853.28858-23-anton@khirnov.net> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230409140853.28858-1-anton@khirnov.net> References: <20230409140853.28858-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 23/29] fftools/ffmpeg: stop calling check_output_constraints() for streamcopy 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: fe1KW79qqOtc That function only contains two checks now - whether the muxer returned EOF and whether the packet timestamp is before requested output start time. The first check is unnecessary, since the packet will just be rejected by the muxer. The second check is better combined with a related check directly in do_streamcopy(). --- fftools/ffmpeg.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index f65ff879c7..44ead4e3bc 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -976,10 +976,14 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p !ost->copy_initial_nonkeyframes) return; - if (!ost->streamcopy_started && !ost->copy_prior_start) { - if (pkt->pts == AV_NOPTS_VALUE ? - ist->pts < ost->ts_copy_start : - pkt->pts < av_rescale_q(ost->ts_copy_start, AV_TIME_BASE_Q, ist->st->time_base)) + if (!ost->streamcopy_started) { + if (!ost->copy_prior_start && + (pkt->pts == AV_NOPTS_VALUE ? + ist->pts < ost->ts_copy_start : + pkt->pts < av_rescale_q(ost->ts_copy_start, AV_TIME_BASE_Q, ist->st->time_base))) + return; + + if (of->start_time != AV_NOPTS_VALUE && ist->pts < of->start_time) return; } @@ -1830,8 +1834,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo for (int oidx = 0; oidx < ist->nb_outputs; oidx++) { OutputStream *ost = ist->outputs[oidx]; - if (!check_output_constraints(ist, ost) || ost->enc_ctx || - (!pkt && no_eof)) + if (ost->enc_ctx || (!pkt && no_eof)) continue; do_streamcopy(ist, ost, pkt);