diff mbox series

[FFmpeg-devel,6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers

Message ID 20231001125552.23976-6-anton@khirnov.net
State Accepted
Commit cdfd15f4d85c3e089ad258d8a24fb2c6907af10c
Headers show
Series [FFmpeg-devel,1/9] lavfi/yadif: update output frame durations | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov Oct. 1, 2023, 12:55 p.m. UTC
Improves timestamps for fate-m4v*
---
 libavcodec/mpeg4videodec.c |  3 --
 tests/ref/fate/m4v         | 84 +++++++++++++++++++-------------------
 tests/ref/fate/m4v-cfr     |  1 +
 3 files changed, 43 insertions(+), 45 deletions(-)

Comments

Andreas Rheinhardt Oct. 1, 2023, 1:14 p.m. UTC | #1
Anton Khirnov:
> Improves timestamps for fate-m4v*

What makes the new cfr timestamps better?

> ---
>  libavcodec/mpeg4videodec.c |  3 --
>  tests/ref/fate/m4v         | 84 +++++++++++++++++++-------------------
>  tests/ref/fate/m4v-cfr     |  1 +
>  3 files changed, 43 insertions(+), 45 deletions(-)
> 
> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> index a8dd57bf6b..b24fe3db20 100644
> --- a/libavcodec/mpeg4videodec.c
> +++ b/libavcodec/mpeg4videodec.c
> @@ -3141,9 +3141,6 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb,
>  
>          av_log(s->avctx, AV_LOG_WARNING,
>                 "time_increment_bits set to %d bits, based on bitstream analysis\n", ctx->time_increment_bits);
> -        if (s->avctx->framerate.num && 4*s->avctx->framerate.num < 1<<ctx->time_increment_bits) {
> -            s->avctx->framerate.num = 1<<ctx->time_increment_bits;
> -        }
>      }
>  
>      if (IS_3IV1)
> diff --git a/tests/ref/fate/m4v b/tests/ref/fate/m4v
> index cebe443adc..4eee84d01b 100644
> --- a/tests/ref/fate/m4v
> +++ b/tests/ref/fate/m4v
> @@ -1,47 +1,47 @@
> -#tb 0: 1/60
> +#tb 0: 1/5
>  #media_type 0: video
>  #codec_id 0: rawvideo
>  #dimensions 0: 320x240
>  #sar 0: 1/1
>  0,          0,          0,        1,   115200, 0x7262156b
> -0,         11,         11,        1,   115200, 0xa6aebc2f
> -0,         22,         22,        1,   115200, 0x9c7beba1
> -0,         33,         33,        1,   115200, 0x556037a2
> -0,         44,         44,        1,   115200, 0x532e3a23
> -0,         60,         60,        1,   115200, 0x110511f4
> -0,         71,         71,        1,   115200, 0xb7f929a4
> -0,         82,         82,        1,   115200, 0xdab9f3c2
> -0,         93,         93,        1,   115200, 0x441413dd
> -0,        104,        104,        1,   115200, 0x01163f33
> -0,        120,        120,        1,   115200, 0x47720c78
> -0,        131,        131,        1,   115200, 0x07c21356
> -0,        142,        142,        1,   115200, 0x085d4291
> -0,        153,        153,        1,   115200, 0xf6db074c
> -0,        164,        164,        1,   115200, 0x95093e75
> -0,        180,        180,        1,   115200, 0x5f8118ef
> -0,        191,        191,        1,   115200, 0x2b4de34a
> -0,        202,        202,        1,   115200, 0x0a731857
> -0,        213,        213,        1,   115200, 0xd75ef3be
> -0,        224,        224,        1,   115200, 0x321cf5a9
> -0,        240,        240,        1,   115200, 0x3eb222fd
> -0,        251,        251,        1,   115200, 0xc7d92f3e
> -0,        262,        262,        1,   115200, 0x6fda0366
> -0,        273,        273,        1,   115200, 0x6bb61b03
> -0,        284,        284,        1,   115200, 0x5f367ef8
> -0,        300,        300,        1,   115200, 0x237d0c77
> -0,        311,        311,        1,   115200, 0xafa813ef
> -0,        322,        322,        1,   115200, 0x39263ef4
> -0,        333,        333,        1,   115200, 0x47c70441
> -0,        344,        344,        1,   115200, 0xd43fffb0
> -0,        360,        360,        1,   115200, 0x75696afb
> -0,        371,        371,        1,   115200, 0xb0f117a3
> -0,        382,        382,        1,   115200, 0x002f42f0
> -0,        393,        393,        1,   115200, 0xa192487e
> -0,        404,        404,        1,   115200, 0x19a7072e
> -0,        420,        420,        1,   115200, 0xc500669c
> -0,        431,        431,        1,   115200, 0xe4636ba9
> -0,        442,        442,        1,   115200, 0xdf3d5d86
> -0,        453,        453,        1,   115200, 0xf30825d5
> -0,        464,        464,        1,   115200, 0xe3c944a1
> -0,        480,        480,        1,   115200, 0x8fec4420
> -0,        491,        491,        1,   115200, 0x9381fdab
> +0,          1,          1,        1,   115200, 0xa6aebc2f
> +0,          2,          2,        1,   115200, 0x9c7beba1
> +0,          3,          3,        1,   115200, 0x556037a2
> +0,          4,          4,        1,   115200, 0x532e3a23
> +0,          5,          5,        1,   115200, 0x110511f4
> +0,          6,          6,        1,   115200, 0xb7f929a4
> +0,          7,          7,        1,   115200, 0xdab9f3c2
> +0,          8,          8,        1,   115200, 0x441413dd
> +0,          9,          9,        1,   115200, 0x01163f33
> +0,         10,         10,        1,   115200, 0x47720c78
> +0,         11,         11,        1,   115200, 0x07c21356
> +0,         12,         12,        1,   115200, 0x085d4291
> +0,         13,         13,        1,   115200, 0xf6db074c
> +0,         14,         14,        1,   115200, 0x95093e75
> +0,         15,         15,        1,   115200, 0x5f8118ef
> +0,         16,         16,        1,   115200, 0x2b4de34a
> +0,         17,         17,        1,   115200, 0x0a731857
> +0,         18,         18,        1,   115200, 0xd75ef3be
> +0,         19,         19,        1,   115200, 0x321cf5a9
> +0,         20,         20,        1,   115200, 0x3eb222fd
> +0,         21,         21,        1,   115200, 0xc7d92f3e
> +0,         22,         22,        1,   115200, 0x6fda0366
> +0,         23,         23,        1,   115200, 0x6bb61b03
> +0,         24,         24,        1,   115200, 0x5f367ef8
> +0,         25,         25,        1,   115200, 0x237d0c77
> +0,         26,         26,        1,   115200, 0xafa813ef
> +0,         27,         27,        1,   115200, 0x39263ef4
> +0,         28,         28,        1,   115200, 0x47c70441
> +0,         29,         29,        1,   115200, 0xd43fffb0
> +0,         30,         30,        1,   115200, 0x75696afb
> +0,         31,         31,        1,   115200, 0xb0f117a3
> +0,         32,         32,        1,   115200, 0x002f42f0
> +0,         33,         33,        1,   115200, 0xa192487e
> +0,         34,         34,        1,   115200, 0x19a7072e
> +0,         35,         35,        1,   115200, 0xc500669c
> +0,         36,         36,        1,   115200, 0xe4636ba9
> +0,         37,         37,        1,   115200, 0xdf3d5d86
> +0,         38,         38,        1,   115200, 0xf30825d5
> +0,         39,         39,        1,   115200, 0xe3c944a1
> +0,         40,         40,        1,   115200, 0x8fec4420
> +0,         41,         41,        1,   115200, 0x9381fdab
> diff --git a/tests/ref/fate/m4v-cfr b/tests/ref/fate/m4v-cfr
> index e2d02032fe..4eee84d01b 100644
> --- a/tests/ref/fate/m4v-cfr
> +++ b/tests/ref/fate/m4v-cfr
> @@ -44,3 +44,4 @@
>  0,         38,         38,        1,   115200, 0xf30825d5
>  0,         39,         39,        1,   115200, 0xe3c944a1
>  0,         40,         40,        1,   115200, 0x8fec4420
> +0,         41,         41,        1,   115200, 0x9381fdab
Anton Khirnov Oct. 2, 2023, 8:56 a.m. UTC | #2
Quoting Andreas Rheinhardt (2023-10-01 15:14:49)
> Anton Khirnov:
> > Improves timestamps for fate-m4v*
> 
> What makes the new cfr timestamps better?

The framerate, and frame durations derived from it, are no longer
garbage, so the last frame has a larger timestamps and does not get
dropped.
diff mbox series

Patch

diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index a8dd57bf6b..b24fe3db20 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -3141,9 +3141,6 @@  static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb,
 
         av_log(s->avctx, AV_LOG_WARNING,
                "time_increment_bits set to %d bits, based on bitstream analysis\n", ctx->time_increment_bits);
-        if (s->avctx->framerate.num && 4*s->avctx->framerate.num < 1<<ctx->time_increment_bits) {
-            s->avctx->framerate.num = 1<<ctx->time_increment_bits;
-        }
     }
 
     if (IS_3IV1)
diff --git a/tests/ref/fate/m4v b/tests/ref/fate/m4v
index cebe443adc..4eee84d01b 100644
--- a/tests/ref/fate/m4v
+++ b/tests/ref/fate/m4v
@@ -1,47 +1,47 @@ 
-#tb 0: 1/60
+#tb 0: 1/5
 #media_type 0: video
 #codec_id 0: rawvideo
 #dimensions 0: 320x240
 #sar 0: 1/1
 0,          0,          0,        1,   115200, 0x7262156b
-0,         11,         11,        1,   115200, 0xa6aebc2f
-0,         22,         22,        1,   115200, 0x9c7beba1
-0,         33,         33,        1,   115200, 0x556037a2
-0,         44,         44,        1,   115200, 0x532e3a23
-0,         60,         60,        1,   115200, 0x110511f4
-0,         71,         71,        1,   115200, 0xb7f929a4
-0,         82,         82,        1,   115200, 0xdab9f3c2
-0,         93,         93,        1,   115200, 0x441413dd
-0,        104,        104,        1,   115200, 0x01163f33
-0,        120,        120,        1,   115200, 0x47720c78
-0,        131,        131,        1,   115200, 0x07c21356
-0,        142,        142,        1,   115200, 0x085d4291
-0,        153,        153,        1,   115200, 0xf6db074c
-0,        164,        164,        1,   115200, 0x95093e75
-0,        180,        180,        1,   115200, 0x5f8118ef
-0,        191,        191,        1,   115200, 0x2b4de34a
-0,        202,        202,        1,   115200, 0x0a731857
-0,        213,        213,        1,   115200, 0xd75ef3be
-0,        224,        224,        1,   115200, 0x321cf5a9
-0,        240,        240,        1,   115200, 0x3eb222fd
-0,        251,        251,        1,   115200, 0xc7d92f3e
-0,        262,        262,        1,   115200, 0x6fda0366
-0,        273,        273,        1,   115200, 0x6bb61b03
-0,        284,        284,        1,   115200, 0x5f367ef8
-0,        300,        300,        1,   115200, 0x237d0c77
-0,        311,        311,        1,   115200, 0xafa813ef
-0,        322,        322,        1,   115200, 0x39263ef4
-0,        333,        333,        1,   115200, 0x47c70441
-0,        344,        344,        1,   115200, 0xd43fffb0
-0,        360,        360,        1,   115200, 0x75696afb
-0,        371,        371,        1,   115200, 0xb0f117a3
-0,        382,        382,        1,   115200, 0x002f42f0
-0,        393,        393,        1,   115200, 0xa192487e
-0,        404,        404,        1,   115200, 0x19a7072e
-0,        420,        420,        1,   115200, 0xc500669c
-0,        431,        431,        1,   115200, 0xe4636ba9
-0,        442,        442,        1,   115200, 0xdf3d5d86
-0,        453,        453,        1,   115200, 0xf30825d5
-0,        464,        464,        1,   115200, 0xe3c944a1
-0,        480,        480,        1,   115200, 0x8fec4420
-0,        491,        491,        1,   115200, 0x9381fdab
+0,          1,          1,        1,   115200, 0xa6aebc2f
+0,          2,          2,        1,   115200, 0x9c7beba1
+0,          3,          3,        1,   115200, 0x556037a2
+0,          4,          4,        1,   115200, 0x532e3a23
+0,          5,          5,        1,   115200, 0x110511f4
+0,          6,          6,        1,   115200, 0xb7f929a4
+0,          7,          7,        1,   115200, 0xdab9f3c2
+0,          8,          8,        1,   115200, 0x441413dd
+0,          9,          9,        1,   115200, 0x01163f33
+0,         10,         10,        1,   115200, 0x47720c78
+0,         11,         11,        1,   115200, 0x07c21356
+0,         12,         12,        1,   115200, 0x085d4291
+0,         13,         13,        1,   115200, 0xf6db074c
+0,         14,         14,        1,   115200, 0x95093e75
+0,         15,         15,        1,   115200, 0x5f8118ef
+0,         16,         16,        1,   115200, 0x2b4de34a
+0,         17,         17,        1,   115200, 0x0a731857
+0,         18,         18,        1,   115200, 0xd75ef3be
+0,         19,         19,        1,   115200, 0x321cf5a9
+0,         20,         20,        1,   115200, 0x3eb222fd
+0,         21,         21,        1,   115200, 0xc7d92f3e
+0,         22,         22,        1,   115200, 0x6fda0366
+0,         23,         23,        1,   115200, 0x6bb61b03
+0,         24,         24,        1,   115200, 0x5f367ef8
+0,         25,         25,        1,   115200, 0x237d0c77
+0,         26,         26,        1,   115200, 0xafa813ef
+0,         27,         27,        1,   115200, 0x39263ef4
+0,         28,         28,        1,   115200, 0x47c70441
+0,         29,         29,        1,   115200, 0xd43fffb0
+0,         30,         30,        1,   115200, 0x75696afb
+0,         31,         31,        1,   115200, 0xb0f117a3
+0,         32,         32,        1,   115200, 0x002f42f0
+0,         33,         33,        1,   115200, 0xa192487e
+0,         34,         34,        1,   115200, 0x19a7072e
+0,         35,         35,        1,   115200, 0xc500669c
+0,         36,         36,        1,   115200, 0xe4636ba9
+0,         37,         37,        1,   115200, 0xdf3d5d86
+0,         38,         38,        1,   115200, 0xf30825d5
+0,         39,         39,        1,   115200, 0xe3c944a1
+0,         40,         40,        1,   115200, 0x8fec4420
+0,         41,         41,        1,   115200, 0x9381fdab
diff --git a/tests/ref/fate/m4v-cfr b/tests/ref/fate/m4v-cfr
index e2d02032fe..4eee84d01b 100644
--- a/tests/ref/fate/m4v-cfr
+++ b/tests/ref/fate/m4v-cfr
@@ -44,3 +44,4 @@ 
 0,         38,         38,        1,   115200, 0xf30825d5
 0,         39,         39,        1,   115200, 0xe3c944a1
 0,         40,         40,        1,   115200, 0x8fec4420
+0,         41,         41,        1,   115200, 0x9381fdab