Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations
@ 2023-10-01 12:55 Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 2/9] lavf/demux: restrict video parser duration handling to just GIF Anton Khirnov
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

---
 libavfilter/yadif_common.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavfilter/yadif_common.c b/libavfilter/yadif_common.c
index b26989f574..21097011f5 100644
--- a/libavfilter/yadif_common.c
+++ b/libavfilter/yadif_common.c
@@ -151,6 +151,7 @@ int ff_yadif_filter_frame(AVFilterLink *link, AVFrame *frame)
         av_frame_free(&yadif->prev);
         if (yadif->out->pts != AV_NOPTS_VALUE)
             yadif->out->pts *= 2;
+        yadif->out->duration *= 2;
         return ff_filter_frame(ctx->outputs[0], yadif->out);
     }
 
@@ -168,6 +169,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
 
     if (yadif->out->pts != AV_NOPTS_VALUE)
         yadif->out->pts *= 2;
+    if (!(yadif->mode & 1))
+        yadif->out->duration *= 2;
 
     return return_frame(ctx, 0);
 }
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 2/9] lavf/demux: restrict video parser duration handling to just GIF
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 3/9] lavf/gifdec: do not mark as notimestamps Anton Khirnov
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

The parser does not have a timebase associated with it, so in general it
makes no sense for it to be exporting durations. Longer-term this
should be handled more cleanly with a new parser API.
---
 libavformat/demux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/demux.c b/libavformat/demux.c
index 6decb08698..45cdb8e1b7 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -1200,7 +1200,7 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt,
                                      st->time_base,
                                      AV_ROUND_DOWN);
             }
-        } else if ((s->iformat->flags & AVFMT_NOTIMESTAMPS) && st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+        } else if (st->codecpar->codec_id == AV_CODEC_ID_GIF) {
             if (st->time_base.num > 0 && st->time_base.den > 0 &&
                 sti->parser->duration) {
                 out_pkt->duration = sti->parser->duration;
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 3/9] lavf/gifdec: do not mark as notimestamps
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 2/9] lavf/demux: restrict video parser duration handling to just GIF Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 4/9] lavc/mpegvideo_parser: reduce variable scopes Anton Khirnov
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

The demuxer does not set packet timestamps itself after
c6b6356635f598b095606cd126f31bc6ab916225 and instead relies on the
parser to do it. However, this does not matter from the caller
perspective as it still happens inside the demuxer. The demuxer should
thus not be flagged as not having timestamps.
---
 libavformat/gifdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/gifdec.c b/libavformat/gifdec.c
index 774358e1fa..32286adafe 100644
--- a/libavformat/gifdec.c
+++ b/libavformat/gifdec.c
@@ -285,7 +285,7 @@ const AVInputFormat ff_gif_demuxer = {
     .read_probe     = gif_probe,
     .read_header    = gif_read_header,
     .read_packet    = gif_read_packet,
-    .flags          = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
+    .flags          = AVFMT_GENERIC_INDEX,
     .extensions     = "gif",
     .priv_class     = &demuxer_class,
 };
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 4/9] lavc/mpegvideo_parser: reduce variable scopes
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 2/9] lavf/demux: restrict video parser duration handling to just GIF Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 3/9] lavf/gifdec: do not mark as notimestamps Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 20:28   ` Michael Niedermayer
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 5/9] lavc/mpegvideo_parser: improve exporting field-coding information Anton Khirnov
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

Drop some variables only used in a switch().
---
 libavcodec/mpegvideo_parser.c | 33 ++++++++++++++-------------------
 1 file changed, 14 insertions(+), 19 deletions(-)

diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c
index d0b22634bb..76cd2a5131 100644
--- a/libavcodec/mpegvideo_parser.c
+++ b/libavcodec/mpegvideo_parser.c
@@ -105,22 +105,17 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
 {
     struct MpvParseContext *pc = s->priv_data;
     const uint8_t *buf_end = buf + buf_size;
-    uint32_t start_code;
-    int frame_rate_index, ext_type, bytes_left;
-    int frame_rate_ext_n, frame_rate_ext_d;
-    int top_field_first, repeat_first_field, progressive_frame;
-    int horiz_size_ext, vert_size_ext, bit_rate_ext;
+    int bytes_left;
     int did_set_size=0;
     int set_dim_ret = 0;
     int bit_rate = 0;
     int vbv_delay = 0;
-    int chroma_format;
     enum AVPixelFormat pix_fmt = AV_PIX_FMT_NONE;
 //FIXME replace the crap with get_bits()
     s->repeat_pict = 0;
 
     while (buf < buf_end) {
-        start_code= -1;
+        uint32_t start_code = -1;
         buf= avpriv_find_start_code(buf, buf_end, &start_code);
         bytes_left = buf_end - buf;
         switch(start_code) {
@@ -134,6 +129,8 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
             break;
         case SEQ_START_CODE:
             if (bytes_left >= 7) {
+                int frame_rate_index;
+
                 pc->width  = (buf[0] << 4) | (buf[1] >> 4);
                 pc->height = ((buf[1] & 0x0f) << 8) | buf[2];
                 if(!avctx->width || !avctx->height || !avctx->coded_width || !avctx->coded_height){
@@ -154,20 +151,18 @@ FF_ENABLE_DEPRECATION_WARNINGS
             break;
         case EXT_START_CODE:
             if (bytes_left >= 1) {
-                ext_type = (buf[0] >> 4);
-                switch(ext_type) {
+                switch (buf[0] >> 4) { // ext_type
                 case 0x1: /* sequence extension */
                     if (bytes_left >= 6) {
-                        horiz_size_ext = ((buf[1] & 1) << 1) | (buf[2] >> 7);
-                        vert_size_ext = (buf[2] >> 5) & 3;
-                        bit_rate_ext = ((buf[2] & 0x1F)<<7) | (buf[3]>>1);
-                        frame_rate_ext_n = (buf[5] >> 5) & 3;
-                        frame_rate_ext_d = (buf[5] & 0x1f);
+                        int horiz_size_ext   = ((buf[1] & 1) << 1) | (buf[2] >> 7);
+                        int  vert_size_ext   = (buf[2] >> 5) & 3;
+                        int   bit_rate_ext   = ((buf[2] & 0x1F)<<7) | (buf[3]>>1);
+                        int frame_rate_ext_n = (buf[5] >> 5) & 3;
+                        int frame_rate_ext_d = (buf[5] & 0x1f);
                         pc->progressive_sequence = buf[1] & (1 << 3);
                         avctx->has_b_frames= !(buf[5] >> 7);
 
-                        chroma_format = (buf[1] >> 1) & 3;
-                        switch (chroma_format) {
+                        switch ((buf[1] >> 1) & 3) { // chroma_format
                         case 1: pix_fmt = AV_PIX_FMT_YUV420P; break;
                         case 2: pix_fmt = AV_PIX_FMT_YUV422P; break;
                         case 3: pix_fmt = AV_PIX_FMT_YUV444P; break;
@@ -190,9 +185,9 @@ FF_ENABLE_DEPRECATION_WARNINGS
                     break;
                 case 0x8: /* picture coding extension */
                     if (bytes_left >= 5) {
-                        top_field_first = buf[3] & (1 << 7);
-                        repeat_first_field = buf[3] & (1 << 1);
-                        progressive_frame = buf[4] & (1 << 7);
+                        int    top_field_first = buf[3] & (1 << 7);
+                        int repeat_first_field = buf[3] & (1 << 1);
+                        int  progressive_frame = buf[4] & (1 << 7);
 
                         /* check if we must repeat the frame */
                         if (repeat_first_field) {
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 5/9] lavc/mpegvideo_parser: improve exporting field-coding information
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
                   ` (2 preceding siblings ...)
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 4/9] lavc/mpegvideo_parser: reduce variable scopes Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers Anton Khirnov
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

* export AVCodecParserContext.picture_structure.
* when there are two field pictures in the packet, set
  the interlacing parameters accordingly:
        * repeat_pict=1 and picture_structure=FRAME to indicate 2 fields
        * field_order to indicate the first field of the two
---
 libavcodec/mpegvideo_parser.c | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c
index 76cd2a5131..2cd0348317 100644
--- a/libavcodec/mpegvideo_parser.c
+++ b/libavcodec/mpegvideo_parser.c
@@ -111,9 +111,15 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
     int bit_rate = 0;
     int vbv_delay = 0;
     enum AVPixelFormat pix_fmt = AV_PIX_FMT_NONE;
-//FIXME replace the crap with get_bits()
-    s->repeat_pict = 0;
 
+    // number of picture coding extensions (i.e. MPEG2 pictures)
+    // in this packet - should be 1 or 2
+    int nb_pic_ext = 0;
+    // when there are two pictures in the packet this indicates
+    // which field is in the first of them
+    int first_field = AV_FIELD_UNKNOWN;
+
+//FIXME replace the crap with get_bits()
     while (buf < buf_end) {
         uint32_t start_code = -1;
         buf= avpriv_find_start_code(buf, buf_end, &start_code);
@@ -124,7 +130,6 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
                 s->pict_type = (buf[1] >> 3) & 7;
                 if (bytes_left >= 4)
                     vbv_delay = ((buf[1] & 0x07) << 13) | (buf[2] << 5) | (buf[3] >> 3);
-                s->repeat_pict = 1;
             }
             break;
         case SEQ_START_CODE:
@@ -190,6 +195,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
                         int  progressive_frame = buf[4] & (1 << 7);
 
                         /* check if we must repeat the frame */
+                        s->repeat_pict = 1;
                         if (repeat_first_field) {
                             if (pc->progressive_sequence) {
                                 if (top_field_first)
@@ -208,6 +214,19 @@ FF_ENABLE_DEPRECATION_WARNINGS
                                 s->field_order = AV_FIELD_BB;
                         } else
                             s->field_order = AV_FIELD_PROGRESSIVE;
+
+                        s->picture_structure = buf[2] & 3;
+
+                        if (!nb_pic_ext) {
+                            // remember parity of the first field for the case
+                            // when there are 2 fields in packet
+                            switch (s->picture_structure) {
+                            case AV_PICTURE_STRUCTURE_BOTTOM_FIELD: first_field = AV_FIELD_BB; break;
+                            case AV_PICTURE_STRUCTURE_TOP_FIELD:    first_field = AV_FIELD_TT; break;
+                            }
+                        }
+
+                        nb_pic_ext++;
                     }
                     break;
                 }
@@ -243,6 +262,12 @@ FF_ENABLE_DEPRECATION_WARNINGS
         s->coded_width  = FFALIGN(pc->width,  16);
         s->coded_height = FFALIGN(pc->height, 16);
     }
+
+    if (avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO || nb_pic_ext > 1) {
+        s->repeat_pict       = 1;
+        s->picture_structure = AV_PICTURE_STRUCTURE_FRAME;
+        s->field_order       = nb_pic_ext > 1 ? first_field : AV_FIELD_PROGRESSIVE;
+    }
 }
 
 static int mpegvideo_parse(AVCodecParserContext *s,
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
                   ` (3 preceding siblings ...)
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 5/9] lavc/mpegvideo_parser: improve exporting field-coding information Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 13:14   ` Andreas Rheinhardt
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats Anton Khirnov
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

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(-)

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
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
                   ` (4 preceding siblings ...)
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 13:18   ` Andreas Rheinhardt
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 8/9] fftools/ffmpeg_enc: do not round frame durations prematurely Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 9/9] fftools/ffmpeg: move derivation of frame duration from filter framerate Anton Khirnov
  7 siblings, 1 reply; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

In this case any timestamps are guessed by compute_pkt_fields() in
libavformat. Since we are decoding the stream, we have more accurate
information from the decoder and do not need any guesses.

Eliminates spurious PTS gaps in a number of FATE tests.

Also avoids dropping the majority of frames in fate-dirac*
---
 fftools/ffmpeg_dec.c              |  8 +++-
 tests/ref/fate/dirac              | 28 ++++++++++++++
 tests/ref/fate/dirac-low-delay    | 28 ++++++++++++++
 tests/ref/fate/mpeg2-ticket6677   | 14 +++----
 tests/ref/fate/vc1_ilaced_twomv   | 24 ++++++------
 tests/ref/fate/vc1_sa00040        | 12 +++---
 tests/ref/fate/vc1_sa00050        | 28 +++++++-------
 tests/ref/fate/vc1_sa10091        | 26 ++++++-------
 tests/ref/fate/vc1_sa10143        | 58 ++++++++++++++---------------
 tests/ref/fate/vc1_sa20021        | 62 +++++++++++++++----------------
 tests/ref/fate/xvid-custom-matrix |  2 +-
 tests/ref/fate/xvid-idct          |  2 +-
 12 files changed, 177 insertions(+), 115 deletions(-)

diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c
index 1de8234a97..fcee8b65ac 100644
--- a/fftools/ffmpeg_dec.c
+++ b/fftools/ffmpeg_dec.c
@@ -540,8 +540,9 @@ static int send_filter_eof(InputStream *ist)
     return 0;
 }
 
-static int packet_decode(InputStream *ist, const AVPacket *pkt, AVFrame *frame)
+static int packet_decode(InputStream *ist, AVPacket *pkt, AVFrame *frame)
 {
+    const InputFile *ifile = input_files[ist->file_index];
     Decoder *d = ist->decoder;
     AVCodecContext *dec = ist->dec_ctx;
     const char *type_desc = av_get_media_type_string(dec->codec_type);
@@ -556,6 +557,11 @@ static int packet_decode(InputStream *ist, const AVPacket *pkt, AVFrame *frame)
     if (pkt && pkt->size == 0)
         return 0;
 
+    if (pkt && ifile->format_nots) {
+        pkt->pts = AV_NOPTS_VALUE;
+        pkt->dts = AV_NOPTS_VALUE;
+    }
+
     ret = avcodec_send_packet(dec, pkt);
     if (ret < 0 && !(ret == AVERROR_EOF && !pkt)) {
         // In particular, we don't expect AVERROR(EAGAIN), because we read all
diff --git a/tests/ref/fate/dirac b/tests/ref/fate/dirac
index f3f3dafb19..2027a44395 100644
--- a/tests/ref/fate/dirac
+++ b/tests/ref/fate/dirac
@@ -5,3 +5,31 @@
 #sar 0: 1/1
 0,          0,          0,        1,   115200, 0xf73819e8
 0,          1,          1,        1,   115200, 0x082e3788
+0,          2,          2,        1,   115200, 0x9fe73790
+0,          3,          3,        1,   115200, 0x58f63cc4
+0,          4,          4,        1,   115200, 0xd91c3767
+0,          5,          5,        1,   115200, 0xac39658c
+0,          6,          6,        1,   115200, 0xd6d57406
+0,          7,          7,        1,   115200, 0x791b707f
+0,          8,          8,        1,   115200, 0x02e05e31
+0,          9,          9,        1,   115200, 0x7737ca43
+0,         10,         10,        1,   115200, 0xa9b5b019
+0,         11,         11,        1,   115200, 0x8b2685be
+0,         12,         12,        1,   115200, 0x2f547334
+0,         13,         13,        1,   115200, 0x9c2ba0ad
+0,         14,         14,        1,   115200, 0x17069da3
+0,         15,         15,        1,   115200, 0xbc7fadd1
+0,         16,         16,        1,   115200, 0xbf651cce
+0,         17,         17,        1,   115200, 0x2e1abc0d
+0,         18,         18,        1,   115200, 0xc6c9a945
+0,         19,         19,        1,   115200, 0x5234c510
+0,         20,         20,        1,   115200, 0x84b5ab26
+0,         21,         21,        1,   115200, 0xf01da61e
+0,         22,         22,        1,   115200, 0xfb339d74
+0,         23,         23,        1,   115200, 0x0973bf98
+0,         24,         24,        1,   115200, 0x7467023a
+0,         25,         25,        1,   115200, 0x3c8ba9a1
+0,         26,         26,        1,   115200, 0xdc699e3e
+0,         27,         27,        1,   115200, 0xe57f9d2e
+0,         28,         28,        1,   115200, 0x79b18bc4
+0,         29,         29,        1,   115200, 0x4c4c98a0
diff --git a/tests/ref/fate/dirac-low-delay b/tests/ref/fate/dirac-low-delay
index 13bf8e8517..758f17f05d 100644
--- a/tests/ref/fate/dirac-low-delay
+++ b/tests/ref/fate/dirac-low-delay
@@ -5,3 +5,31 @@
 #sar 0: 1/1
 0,          0,          0,        1,   115200, 0x2599a172
 0,          1,          1,        1,   115200, 0x08a8c08d
+0,          2,          2,        1,   115200, 0xf586aa9e
+0,          3,          3,        1,   115200, 0x5295c51e
+0,          4,          4,        1,   115200, 0x06b3d0c4
+0,          5,          5,        1,   115200, 0xed28999a
+0,          6,          6,        1,   115200, 0x566e7b4b
+0,          7,          7,        1,   115200, 0x146f8309
+0,          8,          8,        1,   115200, 0x9f57cbbc
+0,          9,          9,        1,   115200, 0xc9d6c278
+0,         10,         10,        1,   115200, 0xaf76c2eb
+0,         11,         11,        1,   115200, 0xf83854c7
+0,         12,         12,        1,   115200, 0x73a5c2c3
+0,         13,         13,        1,   115200, 0x91eb991f
+0,         14,         14,        1,   115200, 0x886a8c3b
+0,         15,         15,        1,   115200, 0x469ca5a8
+0,         16,         16,        1,   115200, 0x4666791d
+0,         17,         17,        1,   115200, 0xe010cab0
+0,         18,         18,        1,   115200, 0x1130ab51
+0,         19,         19,        1,   115200, 0x9fb4cca2
+0,         20,         20,        1,   115200, 0xd6e0b861
+0,         21,         21,        1,   115200, 0xd7289bea
+0,         22,         22,        1,   115200, 0x71bb6079
+0,         23,         23,        1,   115200, 0xf43ba8b6
+0,         24,         24,        1,   115200, 0xfb02a209
+0,         25,         25,        1,   115200, 0x45f2e2ce
+0,         26,         26,        1,   115200, 0x9b28a90a
+0,         27,         27,        1,   115200, 0x037ca263
+0,         28,         28,        1,   115200, 0x1985baba
+0,         29,         29,        1,   115200, 0x05a5a7f7
diff --git a/tests/ref/fate/mpeg2-ticket6677 b/tests/ref/fate/mpeg2-ticket6677
index 01e46b559b..faf4721726 100644
--- a/tests/ref/fate/mpeg2-ticket6677
+++ b/tests/ref/fate/mpeg2-ticket6677
@@ -3,10 +3,10 @@
 #codec_id 0: rawvideo
 #dimensions 0: 720x480
 #sar 0: 8/9
-0,          1,          1,        1,   518400, 0xc1866f5f
-0,          2,          2,        2,   518400, 0x9ba32764
-0,          4,          4,        1,   518400, 0xa9031bb8
-0,          5,          5,        1,   518400, 0x5e2c3502
-0,          6,          6,        1,   518400, 0xe860027a
-0,          7,          7,        2,   518400, 0xa9152430
-0,          9,          9,        1,   518400, 0xb98dd9f7
+0,          0,          0,        1,   518400, 0xc1866f5f
+0,          1,          1,        2,   518400, 0x9ba32764
+0,          3,          3,        1,   518400, 0xa9031bb8
+0,          4,          4,        1,   518400, 0x5e2c3502
+0,          5,          5,        1,   518400, 0xe860027a
+0,          6,          6,        2,   518400, 0xa9152430
+0,          8,          8,        1,   518400, 0xb98dd9f7
diff --git a/tests/ref/fate/vc1_ilaced_twomv b/tests/ref/fate/vc1_ilaced_twomv
index 096e5fc87b..99f346d4ab 100644
--- a/tests/ref/fate/vc1_ilaced_twomv
+++ b/tests/ref/fate/vc1_ilaced_twomv
@@ -4,15 +4,15 @@
 #dimensions 0: 1920x1080
 #sar 0: 1/1
 0,          0,          0,        1,  3110400, 0xc95e8861
-0,          2,          2,        1,  3110400, 0xf58b5cbf
-0,          3,          3,        1,  3110400, 0x2f866f33
-0,          4,          4,        1,  3110400, 0x05c18415
-0,          5,          5,        1,  3110400, 0x4077ca93
-0,          6,          6,        1,  3110400, 0x44d105fc
-0,          7,          7,        1,  3110400, 0xa0608374
-0,          8,          8,        1,  3110400, 0x407689dc
-0,          9,          9,        1,  3110400, 0x4707d00a
-0,         10,         10,        1,  3110400, 0x74986831
-0,         11,         11,        1,  3110400, 0xa5912619
-0,         12,         12,        1,  3110400, 0x44aa5565
-0,         13,         13,        1,  3110400, 0xb9752774
+0,          1,          1,        1,  3110400, 0xf58b5cbf
+0,          2,          2,        1,  3110400, 0x2f866f33
+0,          3,          3,        1,  3110400, 0x05c18415
+0,          4,          4,        1,  3110400, 0x4077ca93
+0,          5,          5,        1,  3110400, 0x44d105fc
+0,          6,          6,        1,  3110400, 0xa0608374
+0,          7,          7,        1,  3110400, 0x407689dc
+0,          8,          8,        1,  3110400, 0x4707d00a
+0,          9,          9,        1,  3110400, 0x74986831
+0,         10,         10,        1,  3110400, 0xa5912619
+0,         11,         11,        1,  3110400, 0x44aa5565
+0,         12,         12,        1,  3110400, 0xb9752774
diff --git a/tests/ref/fate/vc1_sa00040 b/tests/ref/fate/vc1_sa00040
index 554b838ff0..44844cabb3 100644
--- a/tests/ref/fate/vc1_sa00040
+++ b/tests/ref/fate/vc1_sa00040
@@ -6,15 +6,15 @@
 0,          0,          0,        1,    38016, 0xa6f15db5
 0,          1,          1,        1,    38016, 0xa6f15db5
 0,          2,          2,        1,    38016, 0xa6f15db5
-0,          4,          4,        1,    38016, 0x5c4ef0e7
-0,          5,          5,        1,    38016, 0x53a42d1d
-0,          6,          6,        1,    38016, 0x68f7d89e
+0,          3,          3,        1,    38016, 0x5c4ef0e7
+0,          4,          4,        1,    38016, 0x53a42d1d
+0,          5,          5,        1,    38016, 0x68f7d89e
+0,          6,          6,        1,    38016, 0xc15f4368
 0,          7,          7,        1,    38016, 0xc15f4368
-0,          8,          8,        1,    38016, 0xc15f4368
+0,          8,          8,        1,    38016, 0xd1bd47a8
 0,          9,          9,        1,    38016, 0xd1bd47a8
-0,         10,         10,        1,    38016, 0xd1bd47a8
+0,         10,         10,        1,    38016, 0xe1e821ca
 0,         11,         11,        1,    38016, 0xe1e821ca
 0,         12,         12,        1,    38016, 0xe1e821ca
 0,         13,         13,        1,    38016, 0xe1e821ca
 0,         14,         14,        1,    38016, 0xe1e821ca
-0,         15,         15,        1,    38016, 0xe1e821ca
diff --git a/tests/ref/fate/vc1_sa00050 b/tests/ref/fate/vc1_sa00050
index d30b1bfbe3..b8e89352f7 100644
--- a/tests/ref/fate/vc1_sa00050
+++ b/tests/ref/fate/vc1_sa00050
@@ -6,13 +6,14 @@
 0,          0,          0,        1,   115200, 0xb8830eef
 0,          1,          1,        1,   115200, 0xb8830eef
 0,          2,          2,        1,   115200, 0xb8830eef
-0,          4,          4,        1,   115200, 0x952ff5e1
-0,          5,          5,        1,   115200, 0xa4362b14
-0,          6,          6,        1,   115200, 0x32bacbe7
+0,          3,          3,        1,   115200, 0x952ff5e1
+0,          4,          4,        1,   115200, 0xa4362b14
+0,          5,          5,        1,   115200, 0x32bacbe7
+0,          6,          6,        1,   115200, 0x509eb814
 0,          7,          7,        1,   115200, 0x509eb814
-0,          8,          8,        1,   115200, 0x509eb814
+0,          8,          8,        1,   115200, 0x11a76c3e
 0,          9,          9,        1,   115200, 0x11a76c3e
-0,         10,         10,        1,   115200, 0x11a76c3e
+0,         10,         10,        1,   115200, 0x00cf734a
 0,         11,         11,        1,   115200, 0x00cf734a
 0,         12,         12,        1,   115200, 0x00cf734a
 0,         13,         13,        1,   115200, 0x00cf734a
@@ -20,16 +21,15 @@
 0,         15,         15,        1,   115200, 0x00cf734a
 0,         16,         16,        1,   115200, 0x00cf734a
 0,         17,         17,        1,   115200, 0x00cf734a
-0,         18,         18,        1,   115200, 0x00cf734a
+0,         18,         18,        1,   115200, 0xfddf48e6
 0,         19,         19,        1,   115200, 0xfddf48e6
-0,         20,         20,        1,   115200, 0xfddf48e6
-0,         21,         21,        1,   115200, 0x1eccebbf
-0,         22,         22,        1,   115200, 0x3da2f77e
-0,         23,         23,        1,   115200, 0x7c232572
-0,         24,         24,        1,   115200, 0xedf426e5
+0,         20,         20,        1,   115200, 0x1eccebbf
+0,         21,         21,        1,   115200, 0x3da2f77e
+0,         22,         22,        1,   115200, 0x7c232572
+0,         23,         23,        1,   115200, 0xedf426e5
+0,         24,         24,        1,   115200, 0x5324ab20
 0,         25,         25,        1,   115200, 0x5324ab20
-0,         26,         26,        1,   115200, 0x5324ab20
-0,         27,         27,        1,   115200, 0xa23e66bb
+0,         26,         26,        1,   115200, 0xa23e66bb
+0,         27,         27,        1,   115200, 0x680a50ff
 0,         28,         28,        1,   115200, 0x680a50ff
 0,         29,         29,        1,   115200, 0x680a50ff
-0,         30,         30,        1,   115200, 0x680a50ff
diff --git a/tests/ref/fate/vc1_sa10091 b/tests/ref/fate/vc1_sa10091
index ebfe2710ca..63f25c2b6a 100644
--- a/tests/ref/fate/vc1_sa10091
+++ b/tests/ref/fate/vc1_sa10091
@@ -4,32 +4,32 @@
 #dimensions 0: 720x480
 #sar 0: 1/1
 0,          0,          0,        1,   518400, 0xae20b4fa
+0,          1,          1,        1,   518400, 0x2b4ccdf9
 0,          2,          2,        1,   518400, 0x2b4ccdf9
 0,          3,          3,        1,   518400, 0x2b4ccdf9
 0,          4,          4,        1,   518400, 0x2b4ccdf9
 0,          5,          5,        1,   518400, 0x2b4ccdf9
-0,          6,          6,        1,   518400, 0x2b4ccdf9
+0,          6,          6,        1,   518400, 0x70d9a891
 0,          7,          7,        1,   518400, 0x70d9a891
 0,          8,          8,        1,   518400, 0x70d9a891
-0,          9,          9,        1,   518400, 0x70d9a891
-0,         10,         10,        1,   518400, 0xa461ee86
+0,          9,          9,        1,   518400, 0xa461ee86
+0,         10,         10,        1,   518400, 0x722bc6e8
 0,         11,         11,        1,   518400, 0x722bc6e8
 0,         12,         12,        1,   518400, 0x722bc6e8
-0,         13,         13,        1,   518400, 0x722bc6e8
+0,         13,         13,        1,   518400, 0xf752fd2c
 0,         14,         14,        1,   518400, 0xf752fd2c
-0,         15,         15,        1,   518400, 0xf752fd2c
-0,         16,         16,        1,   518400, 0x91abcaca
+0,         15,         15,        1,   518400, 0x91abcaca
+0,         16,         16,        1,   518400, 0x572727c3
 0,         17,         17,        1,   518400, 0x572727c3
-0,         18,         18,        1,   518400, 0x572727c3
+0,         18,         18,        1,   518400, 0x24c12382
 0,         19,         19,        1,   518400, 0x24c12382
-0,         20,         20,        1,   518400, 0x24c12382
+0,         20,         20,        1,   518400, 0x9aa39fe8
 0,         21,         21,        1,   518400, 0x9aa39fe8
-0,         22,         22,        1,   518400, 0x9aa39fe8
-0,         23,         23,        1,   518400, 0x5cb6bd19
-0,         24,         24,        1,   518400, 0x704d9300
+0,         22,         22,        1,   518400, 0x5cb6bd19
+0,         23,         23,        1,   518400, 0x704d9300
+0,         24,         24,        1,   518400, 0x590fad49
 0,         25,         25,        1,   518400, 0x590fad49
 0,         26,         26,        1,   518400, 0x590fad49
-0,         27,         27,        1,   518400, 0x590fad49
+0,         27,         27,        1,   518400, 0x46bea10b
 0,         28,         28,        1,   518400, 0x46bea10b
 0,         29,         29,        1,   518400, 0x46bea10b
-0,         30,         30,        1,   518400, 0x46bea10b
diff --git a/tests/ref/fate/vc1_sa10143 b/tests/ref/fate/vc1_sa10143
index db89cc9e41..cf59ab9b12 100644
--- a/tests/ref/fate/vc1_sa10143
+++ b/tests/ref/fate/vc1_sa10143
@@ -4,32 +4,32 @@
 #dimensions 0: 720x480
 #sar 0: 1/1
 0,          0,          0,        1,   518400, 0x34fa7f55
-0,          2,          2,        1,   518400, 0x60466bc1
-0,          3,          3,        1,   518400, 0xe68dff1e
-0,          4,          4,        1,   518400, 0x790ac06a
-0,          5,          5,        1,   518400, 0xb3b26b27
-0,          6,          6,        1,   518400, 0x8840096c
-0,          7,          7,        1,   518400, 0xf75c3d61
-0,          8,          8,        1,   518400, 0xca071781
-0,          9,          9,        1,   518400, 0xa8e6edf9
-0,         10,         10,        1,   518400, 0xabb61984
-0,         11,         11,        1,   518400, 0x0b31dedd
-0,         12,         12,        1,   518400, 0xf44378ef
-0,         13,         13,        1,   518400, 0xf7268996
-0,         14,         14,        1,   518400, 0x8c5b1ff4
-0,         15,         15,        1,   518400, 0xda356fd2
-0,         16,         16,        1,   518400, 0x0e091c57
-0,         17,         17,        1,   518400, 0x17645e68
-0,         18,         18,        1,   518400, 0xf47a71ef
-0,         19,         19,        1,   518400, 0x6c440498
-0,         20,         20,        1,   518400, 0xd705bd32
-0,         21,         21,        1,   518400, 0x0800edd0
-0,         22,         22,        1,   518400, 0x902be119
-0,         23,         23,        1,   518400, 0x0f7d7bc4
-0,         24,         24,        1,   518400, 0x9f4dc421
-0,         25,         25,        1,   518400, 0x3b8c8d5a
-0,         26,         26,        1,   518400, 0xbcdfb2b9
-0,         27,         27,        1,   518400, 0xa02a46c3
-0,         28,         28,        1,   518400, 0x8ecde915
-0,         29,         29,        1,   518400, 0x20576bfd
-0,         30,         30,        1,   518400, 0xac40bc36
+0,          1,          1,        1,   518400, 0x60466bc1
+0,          2,          2,        1,   518400, 0xe68dff1e
+0,          3,          3,        1,   518400, 0x790ac06a
+0,          4,          4,        1,   518400, 0xb3b26b27
+0,          5,          5,        1,   518400, 0x8840096c
+0,          6,          6,        1,   518400, 0xf75c3d61
+0,          7,          7,        1,   518400, 0xca071781
+0,          8,          8,        1,   518400, 0xa8e6edf9
+0,          9,          9,        1,   518400, 0xabb61984
+0,         10,         10,        1,   518400, 0x0b31dedd
+0,         11,         11,        1,   518400, 0xf44378ef
+0,         12,         12,        1,   518400, 0xf7268996
+0,         13,         13,        1,   518400, 0x8c5b1ff4
+0,         14,         14,        1,   518400, 0xda356fd2
+0,         15,         15,        1,   518400, 0x0e091c57
+0,         16,         16,        1,   518400, 0x17645e68
+0,         17,         17,        1,   518400, 0xf47a71ef
+0,         18,         18,        1,   518400, 0x6c440498
+0,         19,         19,        1,   518400, 0xd705bd32
+0,         20,         20,        1,   518400, 0x0800edd0
+0,         21,         21,        1,   518400, 0x902be119
+0,         22,         22,        1,   518400, 0x0f7d7bc4
+0,         23,         23,        1,   518400, 0x9f4dc421
+0,         24,         24,        1,   518400, 0x3b8c8d5a
+0,         25,         25,        1,   518400, 0xbcdfb2b9
+0,         26,         26,        1,   518400, 0xa02a46c3
+0,         27,         27,        1,   518400, 0x8ecde915
+0,         28,         28,        1,   518400, 0x20576bfd
+0,         29,         29,        1,   518400, 0xac40bc36
diff --git a/tests/ref/fate/vc1_sa20021 b/tests/ref/fate/vc1_sa20021
index 450504f83c..11b7ed71ca 100644
--- a/tests/ref/fate/vc1_sa20021
+++ b/tests/ref/fate/vc1_sa20021
@@ -4,62 +4,62 @@
 #dimensions 0: 704x480
 #sar 0: 1/1
 0,          0,          0,        1,   506880, 0x884bc093
-0,          2,          2,        1,   506880, 0x4b09548f
-0,          3,          3,        1,   506880, 0x195cbee1
-0,          4,          4,        1,   506880, 0xc8141e28
-0,          5,          5,        1,   506880, 0xb170c49b
+0,          1,          1,        1,   506880, 0x4b09548f
+0,          2,          2,        1,   506880, 0x195cbee1
+0,          3,          3,        1,   506880, 0xc8141e28
+0,          4,          4,        1,   506880, 0xb170c49b
+0,          5,          5,        1,   506880, 0x2782268a
 0,          6,          6,        1,   506880, 0x2782268a
 0,          7,          7,        1,   506880, 0x2782268a
 0,          8,          8,        1,   506880, 0x2782268a
-0,          9,          9,        1,   506880, 0x2782268a
+0,          9,          9,        1,   506880, 0xe6803b32
 0,         10,         10,        1,   506880, 0xe6803b32
-0,         11,         11,        1,   506880, 0xe6803b32
+0,         11,         11,        1,   506880, 0xa5ef9baf
 0,         12,         12,        1,   506880, 0xa5ef9baf
-0,         13,         13,        1,   506880, 0xa5ef9baf
-0,         14,         14,        1,   506880, 0x46e8cbcb
-0,         15,         15,        1,   506880, 0x28a2239b
+0,         13,         13,        1,   506880, 0x46e8cbcb
+0,         14,         14,        1,   506880, 0x28a2239b
+0,         15,         15,        1,   506880, 0x7667af2f
 0,         16,         16,        1,   506880, 0x7667af2f
-0,         17,         17,        1,   506880, 0x7667af2f
-0,         18,         18,        1,   506880, 0x8011bcaf
+0,         17,         17,        1,   506880, 0x8011bcaf
+0,         18,         18,        1,   506880, 0xd422115b
 0,         19,         19,        1,   506880, 0xd422115b
 0,         20,         20,        1,   506880, 0xd422115b
-0,         21,         21,        1,   506880, 0xd422115b
-0,         22,         22,        1,   506880, 0xbcee0b5b
-0,         23,         23,        1,   506880, 0x08fe9ec8
+0,         21,         21,        1,   506880, 0xbcee0b5b
+0,         22,         22,        1,   506880, 0x08fe9ec8
+0,         23,         23,        1,   506880, 0xc8fb8b37
 0,         24,         24,        1,   506880, 0xc8fb8b37
-0,         25,         25,        1,   506880, 0xc8fb8b37
+0,         25,         25,        1,   506880, 0x2c698b52
 0,         26,         26,        1,   506880, 0x2c698b52
 0,         27,         27,        1,   506880, 0x2c698b52
-0,         28,         28,        1,   506880, 0x2c698b52
+0,         28,         28,        1,   506880, 0x2b4ad9bc
 0,         29,         29,        1,   506880, 0x2b4ad9bc
 0,         30,         30,        1,   506880, 0x2b4ad9bc
 0,         31,         31,        1,   506880, 0x2b4ad9bc
-0,         32,         32,        1,   506880, 0x2b4ad9bc
+0,         32,         32,        1,   506880, 0x92e84ebb
 0,         33,         33,        1,   506880, 0x92e84ebb
-0,         34,         34,        1,   506880, 0x92e84ebb
+0,         34,         34,        1,   506880, 0xdb877da3
 0,         35,         35,        1,   506880, 0xdb877da3
 0,         36,         36,        1,   506880, 0xdb877da3
-0,         37,         37,        1,   506880, 0xdb877da3
+0,         37,         37,        1,   506880, 0x44610654
 0,         38,         38,        1,   506880, 0x44610654
-0,         39,         39,        1,   506880, 0x44610654
-0,         40,         40,        1,   506880, 0xe254ce67
-0,         41,         41,        1,   506880, 0xa6085385
+0,         39,         39,        1,   506880, 0xe254ce67
+0,         40,         40,        1,   506880, 0xa6085385
+0,         41,         41,        1,   506880, 0x2d45d744
 0,         42,         42,        1,   506880, 0x2d45d744
-0,         43,         43,        1,   506880, 0x2d45d744
-0,         44,         44,        1,   506880, 0x6e684f51
-0,         45,         45,        1,   506880, 0xe96186cf
+0,         43,         43,        1,   506880, 0x6e684f51
+0,         44,         44,        1,   506880, 0xe96186cf
+0,         45,         45,        1,   506880, 0xb535d369
 0,         46,         46,        1,   506880, 0xb535d369
 0,         47,         47,        1,   506880, 0xb535d369
-0,         48,         48,        1,   506880, 0xb535d369
+0,         48,         48,        1,   506880, 0xeed0b7e0
 0,         49,         49,        1,   506880, 0xeed0b7e0
 0,         50,         50,        1,   506880, 0xeed0b7e0
 0,         51,         51,        1,   506880, 0xeed0b7e0
-0,         52,         52,        1,   506880, 0xeed0b7e0
-0,         53,         53,        1,   506880, 0x8789b20b
-0,         54,         54,        1,   506880, 0x0a0f42fb
+0,         52,         52,        1,   506880, 0x8789b20b
+0,         53,         53,        1,   506880, 0x0a0f42fb
+0,         54,         54,        1,   506880, 0x09bbac2d
 0,         55,         55,        1,   506880, 0x09bbac2d
 0,         56,         56,        1,   506880, 0x09bbac2d
 0,         57,         57,        1,   506880, 0x09bbac2d
 0,         58,         58,        1,   506880, 0x09bbac2d
-0,         59,         59,        1,   506880, 0x09bbac2d
-0,         60,         60,        1,   506880, 0xda77f0df
+0,         59,         59,        1,   506880, 0xda77f0df
diff --git a/tests/ref/fate/xvid-custom-matrix b/tests/ref/fate/xvid-custom-matrix
index 32f629f32d..3590086d39 100644
--- a/tests/ref/fate/xvid-custom-matrix
+++ b/tests/ref/fate/xvid-custom-matrix
@@ -26,4 +26,4 @@
 0,         16,         16,        1,   622080, a7ce423456a59bdb4d5921aff1a27691
 0,         17,         17,        1,   622080, 881c9561c9ab66a7659145173f8e8cda
 0,         18,         18,        1,   622080, 7413961f9accd1d32e116592a6448e9b
-0,         21,         21,        1,   622080, c66409494fd1714e6236596f476cece6
+0,         19,         19,        1,   622080, c66409494fd1714e6236596f476cece6
diff --git a/tests/ref/fate/xvid-idct b/tests/ref/fate/xvid-idct
index cdbba2fa27..100296c9be 100644
--- a/tests/ref/fate/xvid-idct
+++ b/tests/ref/fate/xvid-idct
@@ -26,4 +26,4 @@
 0,         16,         16,        1,   622080, 0a1453df21e4547447ec8f27a0d4d5ec
 0,         17,         17,        1,   622080, d3495686e769df299b1732326fa3f17e
 0,         18,         18,        1,   622080, 602e9020397b1e82b58b1ff6b9733d21
-0,         21,         21,        1,   622080, 759bd3f739a3b99309efa5c1a697e34d
+0,         19,         19,        1,   622080, 759bd3f739a3b99309efa5c1a697e34d
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 8/9] fftools/ffmpeg_enc: do not round frame durations prematurely
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
                   ` (5 preceding siblings ...)
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 9/9] fftools/ffmpeg: move derivation of frame duration from filter framerate Anton Khirnov
  7 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

Changes the results of fate-idroq-video-encode and fate-lavf* tests,
where different frames now get duplicated by framerate conversion code.
---
 fftools/ffmpeg_enc.c              | 6 +++---
 tests/ref/fate/idroq-video-encode | 2 +-
 tests/ref/lavf/dv_ntsc            | 4 ++--
 tests/ref/lavf/gxf_ntsc           | 6 +++---
 tests/ref/lavf/ismv               | 6 +++---
 tests/ref/lavf/mov                | 6 +++---
 tests/ref/lavf/mp4                | 6 +++---
 tests/ref/lavf/mpg                | 4 ++--
 tests/ref/lavf/mxf                | 6 +++---
 9 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c
index b40a6211a9..6c00156121 100644
--- a/fftools/ffmpeg_enc.c
+++ b/fftools/ffmpeg_enc.c
@@ -1030,11 +1030,11 @@ static void video_sync_process(OutputFile *of, OutputStream *ost,
             *nb_frames = 0;
         else if (delta > 0.6)
             e->next_pts = llrint(sync_ipts);
-        frame->duration = duration;
+        frame->duration = llrint(duration);
         break;
     case VSYNC_DROP:
     case VSYNC_PASSTHROUGH:
-        frame->duration = duration;
+        frame->duration = llrint(duration);
         e->next_pts = llrint(sync_ipts);
         break;
     default:
@@ -1112,7 +1112,7 @@ static int do_video_out(OutputFile *of, OutputStream *ost, AVFrame *frame)
     if (frame) {
         FrameData *fd = frame_data(frame);
 
-        duration = lrintf(frame->duration * av_q2d(frame->time_base) / av_q2d(enc->time_base));
+        duration = frame->duration * av_q2d(frame->time_base) / av_q2d(enc->time_base);
 
         if (duration <= 0 &&
             fd->frame_rate_filter.num > 0 && fd->frame_rate_filter.den > 0)
diff --git a/tests/ref/fate/idroq-video-encode b/tests/ref/fate/idroq-video-encode
index bdb6fedf56..f777247efd 100644
--- a/tests/ref/fate/idroq-video-encode
+++ b/tests/ref/fate/idroq-video-encode
@@ -1 +1 @@
-e9ff61023826fce304350ff6e7c63b2f
+6d8303bb56b8da2a63efef323aea235e
diff --git a/tests/ref/lavf/dv_ntsc b/tests/ref/lavf/dv_ntsc
index 410b6ec254..c6aa6b1fbb 100644
--- a/tests/ref/lavf/dv_ntsc
+++ b/tests/ref/lavf/dv_ntsc
@@ -1,3 +1,3 @@
-5569626370c7c72d40de2c4559e32856 *tests/data/lavf/lavf.dv_ntsc
+d28a4c67aa8e3413458de9ca7e6f00ed *tests/data/lavf/lavf.dv_ntsc
 3480000 tests/data/lavf/lavf.dv_ntsc
-tests/data/lavf/lavf.dv_ntsc CRC=0xa0088163
+tests/data/lavf/lavf.dv_ntsc CRC=0xaa69ba6a
diff --git a/tests/ref/lavf/gxf_ntsc b/tests/ref/lavf/gxf_ntsc
index 60efd80462..d74e8d8ba4 100644
--- a/tests/ref/lavf/gxf_ntsc
+++ b/tests/ref/lavf/gxf_ntsc
@@ -1,3 +1,3 @@
-9a27673c85f1671ba9ff7cd33e5735de *tests/data/lavf/lavf.gxf_ntsc
-794660 tests/data/lavf/lavf.gxf_ntsc
-tests/data/lavf/lavf.gxf_ntsc CRC=0xdcd39443
+5071abe1fd46a3ca3d669203c6d45883 *tests/data/lavf/lavf.gxf_ntsc
+793900 tests/data/lavf/lavf.gxf_ntsc
+tests/data/lavf/lavf.gxf_ntsc CRC=0xb73f184e
diff --git a/tests/ref/lavf/ismv b/tests/ref/lavf/ismv
index ac7f72ba33..bb89412d8c 100644
--- a/tests/ref/lavf/ismv
+++ b/tests/ref/lavf/ismv
@@ -1,9 +1,9 @@
 48fb8d7a5d19bd60f3a49ccf4b7d6593 *tests/data/lavf/lavf.ismv
 313169 tests/data/lavf/lavf.ismv
 tests/data/lavf/lavf.ismv CRC=0x9d9a638a
-d19cd8e310a2e94fe0a0d11c5dc29217 *tests/data/lavf/lavf.ismv
-322075 tests/data/lavf/lavf.ismv
-tests/data/lavf/lavf.ismv CRC=0xe8130120
+b3ba38e148c00466441627ea04749f63 *tests/data/lavf/lavf.ismv
+322247 tests/data/lavf/lavf.ismv
+tests/data/lavf/lavf.ismv CRC=0xc5569484
 3b6023766845b51b075aed474c00f73c *tests/data/lavf/lavf.ismv
 312546 tests/data/lavf/lavf.ismv
 tests/data/lavf/lavf.ismv CRC=0x9d9a638a
diff --git a/tests/ref/lavf/mov b/tests/ref/lavf/mov
index 75a0c4892d..cfc64141aa 100644
--- a/tests/ref/lavf/mov
+++ b/tests/ref/lavf/mov
@@ -1,9 +1,9 @@
 11bd76730274924e02623172b82b5236 *tests/data/lavf/lavf.mov
 357539 tests/data/lavf/lavf.mov
 tests/data/lavf/lavf.mov CRC=0xbb2b949b
-6efa586655e3db043cb29668f5216610 *tests/data/lavf/lavf.mov
-366621 tests/data/lavf/lavf.mov
-tests/data/lavf/lavf.mov CRC=0xa9793231
+9ed9ce9b636f85b62d3c3583ff84691e *tests/data/lavf/lavf.mov
+366793 tests/data/lavf/lavf.mov
+tests/data/lavf/lavf.mov CRC=0xc75fc595
 c80c625ded376602e71d5aa6ac6fdb1c *tests/data/lavf/lavf.mov
 356921 tests/data/lavf/lavf.mov
 tests/data/lavf/lavf.mov CRC=0xbb2b949b
diff --git a/tests/ref/lavf/mp4 b/tests/ref/lavf/mp4
index b05fa34d0b..686e4f48f8 100644
--- a/tests/ref/lavf/mp4
+++ b/tests/ref/lavf/mp4
@@ -1,9 +1,9 @@
 a6e44724cab1c4b50c49b0fd227b87d3 *tests/data/lavf/lavf.mp4
 312477 tests/data/lavf/lavf.mp4
 tests/data/lavf/lavf.mp4 CRC=0x9d9a638a
-19cbdb02f2f3e35bae779e2323be1b8e *tests/data/lavf/lavf.mp4
-321363 tests/data/lavf/lavf.mp4
-tests/data/lavf/lavf.mp4 CRC=0xe8130120
+0906d4bcb61dd8bcb21a37d6b5b48ea2 *tests/data/lavf/lavf.mp4
+321535 tests/data/lavf/lavf.mp4
+tests/data/lavf/lavf.mp4 CRC=0xc5569484
 8ab9dd09f02b6d8146a40fc3c918d979 *tests/data/lavf/lavf.mp4
 312021 tests/data/lavf/lavf.mp4
 tests/data/lavf/lavf.mp4 CRC=0x9d9a638a
diff --git a/tests/ref/lavf/mpg b/tests/ref/lavf/mpg
index 332b7114b5..9cf783d26d 100644
--- a/tests/ref/lavf/mpg
+++ b/tests/ref/lavf/mpg
@@ -1,9 +1,9 @@
 01bbdea588da51ab4a9d1d26f3443c96 *tests/data/lavf/lavf.mpg
 372736 tests/data/lavf/lavf.mpg
 tests/data/lavf/lavf.mpg CRC=0x000e23ae
-87b447b78a7d1141b9d41bb3aa50434d *tests/data/lavf/lavf.mpg
+67a87970fae5cbd878ad6353aa9138da *tests/data/lavf/lavf.mpg
 389120 tests/data/lavf/lavf.mpg
-tests/data/lavf/lavf.mpg CRC=0x60ba4ab9
+tests/data/lavf/lavf.mpg CRC=0x9264985a
 284f41c914df75c12de01e223d65f87f *tests/data/lavf/lavf.mpg
 372736 tests/data/lavf/lavf.mpg
 tests/data/lavf/lavf.mpg CRC=0x000e23ae
diff --git a/tests/ref/lavf/mxf b/tests/ref/lavf/mxf
index 3f0c74818a..fdd1ef5c9c 100644
--- a/tests/ref/lavf/mxf
+++ b/tests/ref/lavf/mxf
@@ -1,9 +1,9 @@
 9ec1ad83b3400de11ca2f70b3b2d4c4d *tests/data/lavf/lavf.mxf
 526393 tests/data/lavf/lavf.mxf
 tests/data/lavf/lavf.mxf CRC=0x8dddfaab
-546eb8c864c0d76c6a9d5303701e9031 *tests/data/lavf/lavf.mxf
-561721 tests/data/lavf/lavf.mxf
-tests/data/lavf/lavf.mxf CRC=0x96ff1b48
+3edfabe839a29f5902969c15ebac6d8d *tests/data/lavf/lavf.mxf
+551481 tests/data/lavf/lavf.mxf
+tests/data/lavf/lavf.mxf CRC=0xf091e687
 5bd0ce691510e6fae969886c32ad7a14 *tests/data/lavf/lavf.mxf
 526393 tests/data/lavf/lavf.mxf
 tests/data/lavf/lavf.mxf CRC=0x8dddfaab
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [FFmpeg-devel] [PATCH 9/9] fftools/ffmpeg: move derivation of frame duration from filter framerate
  2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
                   ` (6 preceding siblings ...)
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 8/9] fftools/ffmpeg_enc: do not round frame durations prematurely Anton Khirnov
@ 2023-10-01 12:55 ` Anton Khirnov
  7 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-01 12:55 UTC (permalink / raw)
  To: ffmpeg-devel

From ffmpeg_enc to ffmpeg_filter, which is a more appropriate
place for it.
---
 fftools/ffmpeg_enc.c    | 9 +--------
 fftools/ffmpeg_filter.c | 6 +++++-
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c
index 6c00156121..ec9cebbd96 100644
--- a/fftools/ffmpeg_enc.c
+++ b/fftools/ffmpeg_enc.c
@@ -1109,16 +1109,9 @@ static int do_video_out(OutputFile *of, OutputStream *ost, AVFrame *frame)
     int64_t nb_frames, nb_frames_prev, i;
     double duration = 0;
 
-    if (frame) {
-        FrameData *fd = frame_data(frame);
-
+    if (frame)
         duration = frame->duration * av_q2d(frame->time_base) / av_q2d(enc->time_base);
 
-        if (duration <= 0 &&
-            fd->frame_rate_filter.num > 0 && fd->frame_rate_filter.den > 0)
-            duration = 1 / (av_q2d(fd->frame_rate_filter) * av_q2d(enc->time_base));
-    }
-
     video_sync_process(of, ost, frame, duration,
                        &nb_frames, &nb_frames_prev);
 
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 9bf870b615..b6348d7f87 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -1817,8 +1817,12 @@ static int fg_output_step(OutputFilterPriv *ofp, int flush)
 
     if (ost->type == AVMEDIA_TYPE_VIDEO) {
         AVRational fr = av_buffersink_get_frame_rate(filter);
-        if (fr.num > 0 && fr.den > 0)
+        if (fr.num > 0 && fr.den > 0) {
             fd->frame_rate_filter = fr;
+
+            if (!frame->duration)
+                frame->duration = av_rescale_q(1, av_inv_q(fr), frame->time_base);
+        }
     }
 
     ret = enc_frame(ost, frame);
-- 
2.40.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers Anton Khirnov
@ 2023-10-01 13:14   ` Andreas Rheinhardt
  2023-10-02  8:56     ` Anton Khirnov
  0 siblings, 1 reply; 14+ messages in thread
From: Andreas Rheinhardt @ 2023-10-01 13:14 UTC (permalink / raw)
  To: ffmpeg-devel

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

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats Anton Khirnov
@ 2023-10-01 13:18   ` Andreas Rheinhardt
  2023-10-02  8:59     ` Anton Khirnov
  0 siblings, 1 reply; 14+ messages in thread
From: Andreas Rheinhardt @ 2023-10-01 13:18 UTC (permalink / raw)
  To: ffmpeg-devel

Anton Khirnov:
> In this case any timestamps are guessed by compute_pkt_fields() in
> libavformat. Since we are decoding the stream, we have more accurate
> information from the decoder and do not need any guesses.
> 
> Eliminates spurious PTS gaps in a number of FATE tests.
> 
> Also avoids dropping the majority of frames in fate-dirac*

Why did that happen?

- Andreas

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [FFmpeg-devel] [PATCH 4/9] lavc/mpegvideo_parser: reduce variable scopes
  2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 4/9] lavc/mpegvideo_parser: reduce variable scopes Anton Khirnov
@ 2023-10-01 20:28   ` Michael Niedermayer
  0 siblings, 0 replies; 14+ messages in thread
From: Michael Niedermayer @ 2023-10-01 20:28 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 430 bytes --]

On Sun, Oct 01, 2023 at 02:55:47PM +0200, Anton Khirnov wrote:
> Drop some variables only used in a switch().
> ---
>  libavcodec/mpegvideo_parser.c | 33 ++++++++++++++-------------------
>  1 file changed, 14 insertions(+), 19 deletions(-)

should be ok

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

There will always be a question for which you do not know the correct answer.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers
  2023-10-01 13:14   ` Andreas Rheinhardt
@ 2023-10-02  8:56     ` Anton Khirnov
  0 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-02  8:56 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

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.

-- 
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats
  2023-10-01 13:18   ` Andreas Rheinhardt
@ 2023-10-02  8:59     ` Anton Khirnov
  0 siblings, 0 replies; 14+ messages in thread
From: Anton Khirnov @ 2023-10-02  8:59 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Quoting Andreas Rheinhardt (2023-10-01 15:18:30)
> Anton Khirnov:
> > In this case any timestamps are guessed by compute_pkt_fields() in
> > libavformat. Since we are decoding the stream, we have more accurate
> > information from the decoder and do not need any guesses.
> > 
> > Eliminates spurious PTS gaps in a number of FATE tests.
> > 
> > Also avoids dropping the majority of frames in fate-dirac*
> 
> Why did that happen?

lavf generated timestamps that were consecutive integers with a timebase
of 1/1200000

-- 
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-10-02  8:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-01 12:55 [FFmpeg-devel] [PATCH 1/9] lavfi/yadif: update output frame durations Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 2/9] lavf/demux: restrict video parser duration handling to just GIF Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 3/9] lavf/gifdec: do not mark as notimestamps Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 4/9] lavc/mpegvideo_parser: reduce variable scopes Anton Khirnov
2023-10-01 20:28   ` Michael Niedermayer
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 5/9] lavc/mpegvideo_parser: improve exporting field-coding information Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 6/9] lavc/mpeg4videodec: do not invent a framerate from guessed numbers Anton Khirnov
2023-10-01 13:14   ` Andreas Rheinhardt
2023-10-02  8:56     ` Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 7/9] fftools/ffmpeg_dec: disregard demuxer timestamps for NOTIMESTAMPS formats Anton Khirnov
2023-10-01 13:18   ` Andreas Rheinhardt
2023-10-02  8:59     ` Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 8/9] fftools/ffmpeg_enc: do not round frame durations prematurely Anton Khirnov
2023-10-01 12:55 ` [FFmpeg-devel] [PATCH 9/9] fftools/ffmpeg: move derivation of frame duration from filter framerate Anton Khirnov

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git