From patchwork Fri May 20 09:36:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 35848 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:9992:b0:82:461d:f3b with SMTP id ve18csp500812pzb; Fri, 20 May 2022 02:37:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx1TFasEDiieQ8rZrKvRnBtEzVnm9QDKBiSaFiyKAd5oVWiHeMVEKk7V9ji6K/L54H2/GxH X-Received: by 2002:a05:6402:254f:b0:427:d23c:ac69 with SMTP id l15-20020a056402254f00b00427d23cac69mr10019552edb.314.1653039465870; Fri, 20 May 2022 02:37:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653039465; cv=none; d=google.com; s=arc-20160816; b=d2ifzxRLJsaaTuUI1gKP97ZIp4/lSj3jLO0MrC06mVwjppvIW20M9WQ3RlGpZdaiPT vahKIjlHR3SGFc1wh0+c7/bLfoxp34uxShvqL0kJCFr8adQl/94mJDY6qkdwIPV5d6mO nTkiI/jez+l7V04D2WLHFMrTn6pxzYlMEP8YTWYk+4qbML2yzGs+38aPS3OPJThi2LVA qhlhEDF9Uzcmgqy9b20eM9l3naXSflaDasaoICd/L4NamnjGu7ytHDy6Wp9G7R1DP1+O 4lL3SlOcqVNp9XesFlhoODSsy9NyEX9EQRmJghllG8CIb1S4TPF6LEIonmkT7pAY1+oW HAcA== 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=3lXs/Kg+pcco1fjGDmr/rVuMDGUjh6j4SUUat/vidYs=; b=yF00AlIb4e8jQB/h65AKBrogFYP04QczcmD9xMpgYieJ5kgiT3bVgURdHjQbbSnT5t a8AwxOomiQbMpoEdJcHDHY9jfnFEML8+E1elm+dvL1bcL2FZOAp0J6psh5b7NwQueDO2 i/qWj6GDXfy4/UsN5n1ey6nuzAVeui+NLQNu34r7ZUzpeKIboXeDjXPUo1mrfbRHyCzI +BzlP26BUJCl53QIisCsdT1deIWHHqbh3VsbNop/gigJFXgPpuONveUNHDA9HI6f73nG V5Q+WkBGho2rB7iQ1vn6EsdV+hzJHFmTeMb16wXniQTxvix4RPI/cQrthMMZrYlYnODh 01jA== 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 y4-20020a50eb04000000b004264948a110si7178953edp.615.2022.05.20.02.37.45; Fri, 20 May 2022 02:37:45 -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 AFCD368B4E1; Fri, 20 May 2022 12:37:17 +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 C073768B4D0 for ; Fri, 20 May 2022 12:37:09 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 68CF424017E for ; Fri, 20 May 2022 11:37:09 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id QmS4Dc0bnxU9 for ; Fri, 20 May 2022 11:37:06 +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 5BE342400F5 for ; Fri, 20 May 2022 11:37:06 +0200 (CEST) Received: by libav.khirnov.net (Postfix, from userid 1000) id 682B13A073B; Fri, 20 May 2022 11:37:04 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 May 2022 11:36:53 +0200 Message-Id: <20220520093653.26035-4-anton@khirnov.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220520093653.26035-1-anton@khirnov.net> References: <20220520093653.26035-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] tests/fate/vcodec: add tests for ffv1 2pass mode 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: v9s5AJs+RDgS --- tests/fate-run.sh | 12 ++++++++++++ tests/fate/vcodec.mak | 7 +++++-- tests/ref/vsynth/vsynth1-ffv1-2pass | 4 ++++ tests/ref/vsynth/vsynth2-ffv1-2pass | 4 ++++ tests/ref/vsynth/vsynth3-ffv1-2pass | 4 ++++ tests/ref/vsynth/vsynth_lena-ffv1-2pass | 4 ++++ 6 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 tests/ref/vsynth/vsynth1-ffv1-2pass create mode 100644 tests/ref/vsynth/vsynth2-ffv1-2pass create mode 100644 tests/ref/vsynth/vsynth3-ffv1-2pass create mode 100644 tests/ref/vsynth/vsynth_lena-ffv1-2pass diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 6501dea8f8..525e8e5499 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -207,6 +207,7 @@ enc_dec(){ dec_opt_out=$6 dec_opt_in=$7 ffprobe_opts=$8 + twopass=$9 encfile="${outdir}/${test}.${enc_fmt_out}" decfile="${outdir}/${test}.out.${dec_fmt_out}" cleanfiles="$cleanfiles $decfile" @@ -214,6 +215,17 @@ enc_dec(){ tsrcfile=$(target_path $srcfile) tencfile=$(target_path $encfile) tdecfile=$(target_path $decfile) + + if [ -n "$twopass" ]; then + logfile_prefix="${outdir}/${test}.pass1" + cleanfiles="$cleanfiles ${logfile_prefix}-0.log" + tlogfile_prefix=$(target_path $logfile_prefix) + ffmpeg -auto_conversion_filters -f $enc_fmt_in $DEC_OPTS -i $tsrcfile \ + $ENC_OPTS $enc_opt_out $FLAGS -pass 1 -passlogfile $tlogfile_prefix \ + -f $enc_fmt_out -y $tencfile || return + enc_opt_out="$enc_opt_out -pass 2 -passlogfile $tlogfile_prefix" + fi + ffmpeg -auto_conversion_filters -f $enc_fmt_in $DEC_OPTS -i $tsrcfile $ENC_OPTS $enc_opt_out $FLAGS \ -f $enc_fmt_out -y $tencfile || return do_md5sum $encfile diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak index c19fb8633a..8ca17950ea 100644 --- a/tests/fate/vcodec.mak +++ b/tests/fate/vcodec.mak @@ -6,7 +6,7 @@ fate-vsynth%: CODEC = $(word 3, $(subst -, ,$(@))) fate-vsynth%: FMT = avi fate-vsynth%: DEFAULT_SIZE = -s 352x288 fate-vsynth3-%: DEFAULT_SIZE = -s $(FATEW)x$(FATEH) -fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -vsync passthrough $(DECOPTS)" +fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -vsync passthrough $(DECOPTS)" "" "" ${TWOPASS} fate-vsynth%: CMP_UNIT = 1 fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%) @@ -155,7 +155,8 @@ $(FATE_VCODEC_DV:%=fate-vsynth\%-%): FMT = dv $(FATE_VCODEC_DV:%=fate-vsynth\%-%): DECOPTS += $(DEFAULT_SIZE) FATE_VCODEC-$(call ENCDEC, FFV1, AVI) += ffv1 ffv1-v0 \ - ffv1-v3-yuv420p + ffv1-v3-yuv420p \ + ffv1-2pass FATE_VCODEC_SCALE-$(call ENCDEC, FFV1, AVI) += ffv1-v3-yuv422p10 ffv1-v3-yuv444p16 \ ffv1-v3-bgr0 ffv1-v3-rgb48 fate-vsynth%-ffv1: ENCOPTS = -slices 4 @@ -173,6 +174,8 @@ fate-vsynth%-ffv1-v3-bgr0: DECOPTS = -sws_flags neighbor+bitexact fate-vsynth%-ffv1-v3-rgb48: ENCOPTS = -level 3 -pix_fmt rgb48 -strict -2 \ -sws_flags neighbor+bitexact fate-vsynth%-ffv1-v3-rgb48: DECOPTS = -sws_flags neighbor+bitexact +fate-vsynth%-ffv1-2pass: TWOPASS = 1 +fate-vsynth%-ffv1-2pass: ENCOPTS = -coder range_tab -context 1 FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff FATE_VCODEC_SCALE-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff444 ffvhuff420p12 ffvhuff422p10left ffvhuff444p16 diff --git a/tests/ref/vsynth/vsynth1-ffv1-2pass b/tests/ref/vsynth/vsynth1-ffv1-2pass new file mode 100644 index 0000000000..c27c9691d2 --- /dev/null +++ b/tests/ref/vsynth/vsynth1-ffv1-2pass @@ -0,0 +1,4 @@ +7332cfda96233acc7178b09868c07ad7 *tests/data/fate/vsynth1-ffv1-2pass.avi +2382244 tests/data/fate/vsynth1-ffv1-2pass.avi +c5ccac874dbf808e9088bc3107860042 *tests/data/fate/vsynth1-ffv1-2pass.out.rawvideo +stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-ffv1-2pass b/tests/ref/vsynth/vsynth2-ffv1-2pass new file mode 100644 index 0000000000..26c20db24d --- /dev/null +++ b/tests/ref/vsynth/vsynth2-ffv1-2pass @@ -0,0 +1,4 @@ +2f5af924c6f7de1d4c34ec2dc9fca4ac *tests/data/fate/vsynth2-ffv1-2pass.avi +3530664 tests/data/fate/vsynth2-ffv1-2pass.avi +36d7ca943916e1743cefa609eba0205c *tests/data/fate/vsynth2-ffv1-2pass.out.rawvideo +stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth3-ffv1-2pass b/tests/ref/vsynth/vsynth3-ffv1-2pass new file mode 100644 index 0000000000..dd0fd615f4 --- /dev/null +++ b/tests/ref/vsynth/vsynth3-ffv1-2pass @@ -0,0 +1,4 @@ +5b658e65541539248035c17da5eada3a *tests/data/fate/vsynth3-ffv1-2pass.avi +53522 tests/data/fate/vsynth3-ffv1-2pass.avi +a038ad7c3c09f776304ef7accdea9c74 *tests/data/fate/vsynth3-ffv1-2pass.out.rawvideo +stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth_lena-ffv1-2pass b/tests/ref/vsynth/vsynth_lena-ffv1-2pass new file mode 100644 index 0000000000..9ece86aaa3 --- /dev/null +++ b/tests/ref/vsynth/vsynth_lena-ffv1-2pass @@ -0,0 +1,4 @@ +2e1833cf75da113a6fabbaae07ddd455 *tests/data/fate/vsynth_lena-ffv1-2pass.avi +3490450 tests/data/fate/vsynth_lena-ffv1-2pass.avi +dde5895817ad9d219f79a52d0bdfb001 *tests/data/fate/vsynth_lena-ffv1-2pass.out.rawvideo +stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 7603200/ 7603200