diff mbox series

[FFmpeg-devel,1/8] fate/filter-refcmp-*: make refcmp_metadata fail on empty input

Message ID 20220330203205.25937-1-cus@passwd.hu
State New
Headers show
Series [FFmpeg-devel,1/8] fate/filter-refcmp-*: make refcmp_metadata fail on empty input | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished

Commit Message

Marton Balint March 30, 2022, 8:31 p.m. UTC
On empty input the awk script was always successful which caused the
filter-refcmp tests to always succeed.

Also fix the command lines for refcmp_metadata compare function because it
needs auto conversion filters, and update reference of test
filter-refcmp-psnr-rgb because it was missed in
a7fc78c1a638a32c3695c06f727774c740d675c2 but was never noticed due to the
original issue...

Signed-off-by: Marton Balint <cus@passwd.hu>
---
 tests/fate-run.sh                     |  2 +-
 tests/ref/fate/filter-refcmp-psnr-rgb | 80 +++++++++++++--------------
 tests/refcmp-metadata.awk             |  3 +
 3 files changed, 44 insertions(+), 41 deletions(-)

Comments

Tobias Rapp March 31, 2022, 7:38 a.m. UTC | #1
On 30/03/2022 22:31, Marton Balint wrote:
> On empty input the awk script was always successful which caused the
> filter-refcmp tests to always succeed.
> 
> Also fix the command lines for refcmp_metadata compare function because it
> needs auto conversion filters, and update reference of test
> filter-refcmp-psnr-rgb because it was missed in
> a7fc78c1a638a32c3695c06f727774c740d675c2 but was never noticed due to the
> original issue...
> 
> Signed-off-by: Marton Balint <cus@passwd.hu>
> ---
>   tests/fate-run.sh                     |  2 +-
>   tests/ref/fate/filter-refcmp-psnr-rgb | 80 +++++++++++++--------------
>   tests/refcmp-metadata.awk             |  3 +
>   3 files changed, 44 insertions(+), 41 deletions(-)
> 
> diff --git a/tests/fate-run.sh b/tests/fate-run.sh
> index fbfc0a925d..5e8d607d88 100755
> --- a/tests/fate-run.sh
> +++ b/tests/fate-run.sh
> @@ -377,7 +377,7 @@ refcmp_metadata(){
>       refcmp=$1
>       pixfmt=$2
>       fuzz=${3:-0.001}
> -    ffmpeg $FLAGS $ENC_OPTS \
> +    ffmpeg -auto_conversion_filters $FLAGS $ENC_OPTS \
>           -lavfi "testsrc2=size=300x200:rate=1:duration=5,format=${pixfmt},split[ref][tmp];[tmp]avgblur=4[enc];[enc][ref]${refcmp},metadata=print:file=-" \
>           -f null /dev/null | awk -v ref=${ref} -v fuzz=${fuzz} -f ${base}/refcmp-metadata.awk -
>   }
> diff --git a/tests/ref/fate/filter-refcmp-psnr-rgb b/tests/ref/fate/filter-refcmp-psnr-rgb
> index f06db575ac..20abd3dc5a 100644
> --- a/tests/ref/fate/filter-refcmp-psnr-rgb
> +++ b/tests/ref/fate/filter-refcmp-psnr-rgb
> @@ -1,45 +1,45 @@
>   frame:0    pts:0       pts_time:0
> -lavfi.psnr.mse.r=1381.80
> -lavfi.psnr.psnr.r=16.73
> -lavfi.psnr.mse.g=896.00
> -lavfi.psnr.psnr.g=18.61
> -lavfi.psnr.mse.b=277.38
> -lavfi.psnr.psnr.b=23.70
> -lavfi.psnr.mse_avg=851.73
> -lavfi.psnr.psnr_avg=18.83
> +lavfi.psnr.mse.r=1367.642090
> +lavfi.psnr.psnr.r=16.771078
> +lavfi.psnr.mse.g=885.804382
> +lavfi.psnr.psnr.g=18.657425
> +lavfi.psnr.mse.b=274.825073
> +lavfi.psnr.psnr.b=23.740240
> +lavfi.psnr.mse_avg=842.757202
> +lavfi.psnr.psnr_avg=18.873779
>   frame:1    pts:1       pts_time:1
> -lavfi.psnr.mse.r=1380.37
> -lavfi.psnr.psnr.r=16.73
> -lavfi.psnr.mse.g=975.91
> -lavfi.psnr.psnr.g=18.24
> -lavfi.psnr.mse.b=435.72
> -lavfi.psnr.psnr.b=21.74
> -lavfi.psnr.mse_avg=930.67
> -lavfi.psnr.psnr_avg=18.44
> +lavfi.psnr.mse.r=1356.681152
> +lavfi.psnr.psnr.r=16.806026
> +lavfi.psnr.mse.g=958.161560
> +lavfi.psnr.psnr.g=18.316416
> +lavfi.psnr.mse.b=428.238312
> +lavfi.psnr.psnr.b=21.813948
> +lavfi.psnr.mse_avg=914.360352
> +lavfi.psnr.psnr_avg=18.519630
>   frame:2    pts:2       pts_time:2
> -lavfi.psnr.mse.r=1403.20
> -lavfi.psnr.psnr.r=16.66
> -lavfi.psnr.mse.g=954.05
> -lavfi.psnr.psnr.g=18.34
> -lavfi.psnr.mse.b=494.22
> -lavfi.psnr.psnr.b=21.19
> -lavfi.psnr.mse_avg=950.49
> -lavfi.psnr.psnr_avg=18.35
> +lavfi.psnr.mse.r=1387.254883
> +lavfi.psnr.psnr.r=16.709242
> +lavfi.psnr.mse.g=939.230957
> +lavfi.psnr.psnr.g=18.403080
> +lavfi.psnr.mse.b=493.913757
> +lavfi.psnr.psnr.b=21.194292
> +lavfi.psnr.mse_avg=940.133179
> +lavfi.psnr.psnr_avg=18.398911
>   frame:3    pts:3       pts_time:3
> -lavfi.psnr.mse.r=1452.80
> -lavfi.psnr.psnr.r=16.51
> -lavfi.psnr.mse.g=1001.02
> -lavfi.psnr.psnr.g=18.13
> -lavfi.psnr.mse.b=557.39
> -lavfi.psnr.psnr.b=20.67
> -lavfi.psnr.mse_avg=1003.74
> -lavfi.psnr.psnr_avg=18.11
> +lavfi.psnr.mse.r=1433.291260
> +lavfi.psnr.psnr.r=16.567459
> +lavfi.psnr.mse.g=990.005859
> +lavfi.psnr.psnr.g=18.174425
> +lavfi.psnr.mse.b=550.512329
> +lavfi.psnr.psnr.b=20.723133
> +lavfi.psnr.mse_avg=991.269836
> +lavfi.psnr.psnr_avg=18.168884
>   frame:4    pts:4       pts_time:4
> -lavfi.psnr.mse.r=1401.25
> -lavfi.psnr.psnr.r=16.67
> -lavfi.psnr.mse.g=1009.80
> -lavfi.psnr.psnr.g=18.09
> -lavfi.psnr.mse.b=602.42
> -lavfi.psnr.psnr.b=20.33
> -lavfi.psnr.mse_avg=1004.49
> -lavfi.psnr.psnr_avg=18.11
> +lavfi.psnr.mse.r=1385.949341
> +lavfi.psnr.psnr.r=16.713329
> +lavfi.psnr.mse.g=997.065796
> +lavfi.psnr.psnr.g=18.143566
> +lavfi.psnr.mse.b=601.962952
> +lavfi.psnr.psnr.b=20.335106
> +lavfi.psnr.mse_avg=994.992676
> +lavfi.psnr.psnr_avg=18.152605
> diff --git a/tests/refcmp-metadata.awk b/tests/refcmp-metadata.awk
> index fa21aad0e0..e7ed5ae809 100644
> --- a/tests/refcmp-metadata.awk
> +++ b/tests/refcmp-metadata.awk
> @@ -50,12 +50,15 @@ BEGIN {
>   }
>   
>   END {
> +    result = result && (NR != 0);

Checking for "NR == ref_nr" would additionally catch truncated input.

>       if (result) {
>           for (i = 1; i <= ref_nr; i++)
>               print ref_lines[i];
>       } else {
>           for (i = 1; i <= NR; i++)
>               print cmp_lines[i];
> +        if (NR == 0)
> +            print "[refcmp] no input";

Output should go to stderr here.

>           if (NR != ref_nr)
>               print "[refcmp] lines: " NR " != " ref_nr > "/dev/stderr";

Maybe add an "else" before the "if" to avoid that both lines are printed 
for empty input.

>           if (delta_max >= fuzz)

Otherwise looks good to me. Thanks for catching the issue!

Regards,
Tobias
diff mbox series

Patch

diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index fbfc0a925d..5e8d607d88 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -377,7 +377,7 @@  refcmp_metadata(){
     refcmp=$1
     pixfmt=$2
     fuzz=${3:-0.001}
-    ffmpeg $FLAGS $ENC_OPTS \
+    ffmpeg -auto_conversion_filters $FLAGS $ENC_OPTS \
         -lavfi "testsrc2=size=300x200:rate=1:duration=5,format=${pixfmt},split[ref][tmp];[tmp]avgblur=4[enc];[enc][ref]${refcmp},metadata=print:file=-" \
         -f null /dev/null | awk -v ref=${ref} -v fuzz=${fuzz} -f ${base}/refcmp-metadata.awk -
 }
diff --git a/tests/ref/fate/filter-refcmp-psnr-rgb b/tests/ref/fate/filter-refcmp-psnr-rgb
index f06db575ac..20abd3dc5a 100644
--- a/tests/ref/fate/filter-refcmp-psnr-rgb
+++ b/tests/ref/fate/filter-refcmp-psnr-rgb
@@ -1,45 +1,45 @@ 
 frame:0    pts:0       pts_time:0
-lavfi.psnr.mse.r=1381.80
-lavfi.psnr.psnr.r=16.73
-lavfi.psnr.mse.g=896.00
-lavfi.psnr.psnr.g=18.61
-lavfi.psnr.mse.b=277.38
-lavfi.psnr.psnr.b=23.70
-lavfi.psnr.mse_avg=851.73
-lavfi.psnr.psnr_avg=18.83
+lavfi.psnr.mse.r=1367.642090
+lavfi.psnr.psnr.r=16.771078
+lavfi.psnr.mse.g=885.804382
+lavfi.psnr.psnr.g=18.657425
+lavfi.psnr.mse.b=274.825073
+lavfi.psnr.psnr.b=23.740240
+lavfi.psnr.mse_avg=842.757202
+lavfi.psnr.psnr_avg=18.873779
 frame:1    pts:1       pts_time:1
-lavfi.psnr.mse.r=1380.37
-lavfi.psnr.psnr.r=16.73
-lavfi.psnr.mse.g=975.91
-lavfi.psnr.psnr.g=18.24
-lavfi.psnr.mse.b=435.72
-lavfi.psnr.psnr.b=21.74
-lavfi.psnr.mse_avg=930.67
-lavfi.psnr.psnr_avg=18.44
+lavfi.psnr.mse.r=1356.681152
+lavfi.psnr.psnr.r=16.806026
+lavfi.psnr.mse.g=958.161560
+lavfi.psnr.psnr.g=18.316416
+lavfi.psnr.mse.b=428.238312
+lavfi.psnr.psnr.b=21.813948
+lavfi.psnr.mse_avg=914.360352
+lavfi.psnr.psnr_avg=18.519630
 frame:2    pts:2       pts_time:2
-lavfi.psnr.mse.r=1403.20
-lavfi.psnr.psnr.r=16.66
-lavfi.psnr.mse.g=954.05
-lavfi.psnr.psnr.g=18.34
-lavfi.psnr.mse.b=494.22
-lavfi.psnr.psnr.b=21.19
-lavfi.psnr.mse_avg=950.49
-lavfi.psnr.psnr_avg=18.35
+lavfi.psnr.mse.r=1387.254883
+lavfi.psnr.psnr.r=16.709242
+lavfi.psnr.mse.g=939.230957
+lavfi.psnr.psnr.g=18.403080
+lavfi.psnr.mse.b=493.913757
+lavfi.psnr.psnr.b=21.194292
+lavfi.psnr.mse_avg=940.133179
+lavfi.psnr.psnr_avg=18.398911
 frame:3    pts:3       pts_time:3
-lavfi.psnr.mse.r=1452.80
-lavfi.psnr.psnr.r=16.51
-lavfi.psnr.mse.g=1001.02
-lavfi.psnr.psnr.g=18.13
-lavfi.psnr.mse.b=557.39
-lavfi.psnr.psnr.b=20.67
-lavfi.psnr.mse_avg=1003.74
-lavfi.psnr.psnr_avg=18.11
+lavfi.psnr.mse.r=1433.291260
+lavfi.psnr.psnr.r=16.567459
+lavfi.psnr.mse.g=990.005859
+lavfi.psnr.psnr.g=18.174425
+lavfi.psnr.mse.b=550.512329
+lavfi.psnr.psnr.b=20.723133
+lavfi.psnr.mse_avg=991.269836
+lavfi.psnr.psnr_avg=18.168884
 frame:4    pts:4       pts_time:4
-lavfi.psnr.mse.r=1401.25
-lavfi.psnr.psnr.r=16.67
-lavfi.psnr.mse.g=1009.80
-lavfi.psnr.psnr.g=18.09
-lavfi.psnr.mse.b=602.42
-lavfi.psnr.psnr.b=20.33
-lavfi.psnr.mse_avg=1004.49
-lavfi.psnr.psnr_avg=18.11
+lavfi.psnr.mse.r=1385.949341
+lavfi.psnr.psnr.r=16.713329
+lavfi.psnr.mse.g=997.065796
+lavfi.psnr.psnr.g=18.143566
+lavfi.psnr.mse.b=601.962952
+lavfi.psnr.psnr.b=20.335106
+lavfi.psnr.mse_avg=994.992676
+lavfi.psnr.psnr_avg=18.152605
diff --git a/tests/refcmp-metadata.awk b/tests/refcmp-metadata.awk
index fa21aad0e0..e7ed5ae809 100644
--- a/tests/refcmp-metadata.awk
+++ b/tests/refcmp-metadata.awk
@@ -50,12 +50,15 @@  BEGIN {
 }
 
 END {
+    result = result && (NR != 0);
     if (result) {
         for (i = 1; i <= ref_nr; i++)
             print ref_lines[i];
     } else {
         for (i = 1; i <= NR; i++)
             print cmp_lines[i];
+        if (NR == 0)
+            print "[refcmp] no input";
         if (NR != ref_nr)
             print "[refcmp] lines: " NR " != " ref_nr > "/dev/stderr";
         if (delta_max >= fuzz)