[FFmpeg-cvslog] lavf: deprecate r_frame_rate.

Anton Khirnov git at videolan.org
Mon Jul 30 01:01:12 CEST 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Jun 26 13:10:01 2012 +0200| [aba232cfa9b193604ed98f3fa505378d006b1b3b] | committer: Anton Khirnov

lavf: deprecate r_frame_rate.

According to its description, it is supposed to be the LCM of all the
frame durations. The usability of such a thing is vanishingly small,
especially since we cannot determine it with any amount of reliability.
Therefore get rid of it after the next bump.

Replace it with the average framerate where it makes sense.

FATE results for the wtv and xmv demux tests change. In the wtv case
this is caused by the file being corrupted (or possibly badly cut) and
containing invalid timestamps. This results in lavf estimating the
framerate wrong and making up wrong frame durations.
In the xmv case the file contains pts jumps, so again the estimated
framerate is far from anything sane and lavf again makes up different
frame durations.

In some other tests lavf starts making up frame durations from different
frame.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=aba232cfa9b193604ed98f3fa505378d006b1b3b
---

 avconv.c                      |    8 ++--
 avprobe.c                     |    3 --
 libavformat/avformat.h        |    4 ++
 libavformat/avisynth.c        |    7 ++-
 libavformat/avs.c             |    6 ++-
 libavformat/electronicarts.c  |    6 ++-
 libavformat/flvenc.c          |    6 +--
 libavformat/matroskadec.c     |    6 ++-
 libavformat/mov.c             |    2 +
 libavformat/nuv.c             |    5 ++-
 libavformat/r3d.c             |   22 +++++----
 libavformat/rawdec.c          |    5 ++-
 libavformat/rmdec.c           |    6 ++-
 libavformat/utils.c           |   18 +++++---
 libavformat/vc1testenc.c      |    4 +-
 libavformat/version.h         |    3 ++
 tests/ref/fate/iv8-demux      |    2 +-
 tests/ref/fate/smjpeg-demux   |    2 +-
 tests/ref/fate/wmv8-drm-nodec |    2 +-
 tests/ref/fate/wtv-demux      |   68 ++++++++++++++--------------
 tests/ref/fate/xmv-demux      |  100 ++++++++++++++++++++---------------------
 21 files changed, 160 insertions(+), 125 deletions(-)

diff --git a/avconv.c b/avconv.c
index 439672a..07de66e 100644
--- a/avconv.c
+++ b/avconv.c
@@ -2196,9 +2196,9 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
             ret = decode_video    (ist, &avpkt, &got_output);
             if (avpkt.duration)
                 ist->next_dts += av_rescale_q(avpkt.duration, ist->st->time_base, AV_TIME_BASE_Q);
-            else if (ist->st->r_frame_rate.num)
-                ist->next_dts += av_rescale_q(1, (AVRational){ist->st->r_frame_rate.den,
-                                                              ist->st->r_frame_rate.num},
+            else if (ist->st->avg_frame_rate.num)
+                ist->next_dts += av_rescale_q(1, (AVRational){ist->st->avg_frame_rate.den,
+                                                              ist->st->avg_frame_rate.num},
                                               AV_TIME_BASE_Q);
             else if (ist->st->codec->time_base.num != 0) {
                 int ticks      = ist->st->parser ? ist->st->parser->repeat_pict + 1 :
@@ -2526,7 +2526,7 @@ static int transcode_init(void)
                 (video_sync_method ==  VSYNC_CFR ||
                  (video_sync_method ==  VSYNC_AUTO &&
                   !(oc->oformat->flags & (AVFMT_NOTIMESTAMPS | AVFMT_VARIABLE_FPS))))) {
-                ost->frame_rate = ist->st->r_frame_rate.num ? ist->st->r_frame_rate : (AVRational){25, 1};
+                ost->frame_rate = ist->st->avg_frame_rate.num ? ist->st->avg_frame_rate : (AVRational){25, 1};
                 if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) {
                     int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates);
                     ost->frame_rate = ost->enc->supported_framerates[idx];
diff --git a/avprobe.c b/avprobe.c
index aa7dae4..5fe5b89 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -651,9 +651,6 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
 
     if (fmt_ctx->iformat->flags & AVFMT_SHOW_IDS)
         probe_int("id", stream->id);
-    probe_str("r_frame_rate",
-              rational_string(val_str, sizeof(val_str), "/",
-              &stream->r_frame_rate));
     probe_str("avg_frame_rate",
               rational_string(val_str, sizeof(val_str), "/",
               &stream->avg_frame_rate));
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 0e50487..1dbbb10 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -630,6 +630,7 @@ typedef struct AVStream {
      *             not actually used for encoding.
      */
     AVCodecContext *codec;
+#if FF_API_R_FRAME_RATE
     /**
      * Real base framerate of the stream.
      * This is the lowest framerate with which all timestamps can be
@@ -639,6 +640,7 @@ typedef struct AVStream {
      * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1.
      */
     AVRational r_frame_rate;
+#endif
     void *priv_data;
 
     /**
@@ -714,10 +716,12 @@ typedef struct AVStream {
      */
 #define MAX_STD_TIMEBASES (60*12+5)
     struct {
+#if FF_API_R_FRAME_RATE
         int64_t last_dts;
         int64_t duration_gcd;
         int duration_count;
         double duration_error[MAX_STD_TIMEBASES];
+#endif
         int nb_decoded_frames;
         int found_decoder;
 
diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
index c4c523d..d31c427 100644
--- a/libavformat/avisynth.c
+++ b/libavformat/avisynth.c
@@ -120,8 +120,11 @@ static int avisynth_read_header(AVFormatContext *s)
                   st = avformat_new_stream(s, NULL);
                   st->id = id;
                   st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
-                  st->r_frame_rate.num = stream->info.dwRate;
-                  st->r_frame_rate.den = stream->info.dwScale;
+                  st->avg_frame_rate.num = stream->info.dwRate;
+                  st->avg_frame_rate.den = stream->info.dwScale;
+#if FF_API_R_FRAME_RATE
+                  st->r_frame_rate = st->avg_frame_rate;
+#endif
 
                   st->codec->width = imgfmt.bmiHeader.biWidth;
                   st->codec->height = imgfmt.bmiHeader.biHeight;
diff --git a/libavformat/avs.c b/libavformat/avs.c
index 7542ca7..a03f7e3 100644
--- a/libavformat/avs.c
+++ b/libavformat/avs.c
@@ -188,8 +188,10 @@ static int avs_read_packet(AVFormatContext * s, AVPacket * pkt)
                     avs->st_video->codec->height = avs->height;
                     avs->st_video->codec->bits_per_coded_sample=avs->bits_per_sample;
                     avs->st_video->nb_frames = avs->nb_frames;
-                    avs->st_video->r_frame_rate = avs->st_video->avg_frame_rate =
-                                                  (AVRational){avs->fps, 1};
+#if FF_API_R_FRAME_RATE
+                    avs->st_video->r_frame_rate =
+#endif
+                    avs->st_video->avg_frame_rate = (AVRational){avs->fps, 1};
                 }
                 return avs_read_video_packet(s, pkt, type, sub_type, size,
                                              palette, palette_size);
diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index b215547..cc51af6 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -432,8 +432,10 @@ static int ea_read_header(AVFormatContext *s)
         st->codec->width = ea->width;
         st->codec->height = ea->height;
         avpriv_set_pts_info(st, 33, ea->time_base.num, ea->time_base.den);
-        st->r_frame_rate = st->avg_frame_rate = (AVRational){ea->time_base.den,
-                                                             ea->time_base.num};
+#if FF_API_R_FRAME_RATE
+        st->r_frame_rate =
+#endif
+        st->avg_frame_rate = (AVRational){ea->time_base.den, ea->time_base.num};
     }
 
     if (ea->audio_codec) {
diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index ce1a4e4..2222085 100644
--- a/libavformat/flvenc.c
+++ b/libavformat/flvenc.c
@@ -202,9 +202,9 @@ static int flv_write_header(AVFormatContext *s)
         FLVStreamContext *sc;
         switch (enc->codec_type) {
         case AVMEDIA_TYPE_VIDEO:
-            if (s->streams[i]->r_frame_rate.den &&
-                s->streams[i]->r_frame_rate.num) {
-                framerate = av_q2d(s->streams[i]->r_frame_rate);
+            if (s->streams[i]->avg_frame_rate.den &&
+                s->streams[i]->avg_frame_rate.num) {
+                framerate = av_q2d(s->streams[i]->avg_frame_rate);
             } else {
                 framerate = 1 / av_q2d(s->streams[i]->codec->time_base);
             }
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index c454713..da86ed3 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1594,9 +1594,11 @@ static int matroska_read_header(AVFormatContext *s)
             if (st->codec->codec_id != CODEC_ID_H264)
             st->need_parsing = AVSTREAM_PARSE_HEADERS;
             if (track->default_duration) {
-                av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den,
+                av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
                           1000000000, track->default_duration, 30000);
-                st->avg_frame_rate = st->r_frame_rate;
+#if FF_API_R_FRAME_RATE
+                st->r_frame_rate = st->avg_frame_rate;
+#endif
             }
         } else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
             st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 59d7b1a..95acccf 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1984,9 +1984,11 @@ static int mov_read_trak(MOVContext *c, AVIOContext *pb, MOVAtom atom)
         av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den,
                   sc->time_scale*st->nb_frames, st->duration, INT_MAX);
 
+#if FF_API_R_FRAME_RATE
         if (sc->stts_count == 1 || (sc->stts_count == 2 && sc->stts_data[1].count == 1))
             av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den,
                       sc->time_scale, sc->stts_data[0].duration, INT_MAX);
+#endif
     }
 
     switch (st->codec->codec_id) {
diff --git a/libavformat/nuv.c b/libavformat/nuv.c
index c1dc07f..3939828 100644
--- a/libavformat/nuv.c
+++ b/libavformat/nuv.c
@@ -163,7 +163,10 @@ static int nuv_header(AVFormatContext *s) {
         vst->codec->height = height;
         vst->codec->bits_per_coded_sample = 10;
         vst->sample_aspect_ratio = av_d2q(aspect * height / width, 10000);
-        vst->r_frame_rate = av_d2q(fps, 60000);
+#if FF_API_R_FRAME_RATE
+        vst->r_frame_rate =
+#endif
+        vst->avg_frame_rate = av_d2q(fps, 60000);
         avpriv_set_pts_info(vst, 32, 1, 1000);
     } else
         ctx->v_id = -1;
diff --git a/libavformat/r3d.c b/libavformat/r3d.c
index f67d10e..1795631 100644
--- a/libavformat/r3d.c
+++ b/libavformat/r3d.c
@@ -87,8 +87,12 @@ static int r3d_read_red1(AVFormatContext *s)
 
     framerate.num = avio_rb16(s->pb);
     framerate.den = avio_rb16(s->pb);
-    if (framerate.num && framerate.den)
-        st->r_frame_rate = st->avg_frame_rate = framerate;
+    if (framerate.num && framerate.den) {
+#if FF_API_R_FRAME_RATE
+        st->r_frame_rate =
+#endif
+        st->avg_frame_rate = framerate;
+    }
 
     tmp = avio_r8(s->pb); // audio channels
     av_dlog(s, "audio channels %d\n", tmp);
@@ -135,10 +139,10 @@ static int r3d_read_rdvo(AVFormatContext *s, Atom *atom)
         av_dlog(s, "video offset %d: %#x\n", i, r3d->video_offsets[i]);
     }
 
-    if (st->r_frame_rate.num)
+    if (st->avg_frame_rate.num)
         st->duration = av_rescale_q(r3d->video_offsets_count,
-                                    (AVRational){st->r_frame_rate.den,
-                                                 st->r_frame_rate.num},
+                                    (AVRational){st->avg_frame_rate.den,
+                                                 st->avg_frame_rate.num},
                                     st->time_base);
     av_dlog(s, "duration %"PRId64"\n", st->duration);
 
@@ -262,9 +266,9 @@ static int r3d_read_redv(AVFormatContext *s, AVPacket *pkt, Atom *atom)
 
     pkt->stream_index = 0;
     pkt->dts = dts;
-    if (st->r_frame_rate.num)
+    if (st->avg_frame_rate.num)
         pkt->duration = (uint64_t)st->time_base.den*
-            st->r_frame_rate.den/st->r_frame_rate.num;
+            st->avg_frame_rate.den/st->avg_frame_rate.num;
     av_dlog(s, "pkt dts %"PRId64" duration %d\n", pkt->dts, pkt->duration);
 
     return 0;
@@ -362,11 +366,11 @@ static int r3d_seek(AVFormatContext *s, int stream_index, int64_t sample_time, i
     R3DContext *r3d = s->priv_data;
     int frame_num;
 
-    if (!st->r_frame_rate.num)
+    if (!st->avg_frame_rate.num)
         return -1;
 
     frame_num = av_rescale_q(sample_time, st->time_base,
-                             (AVRational){st->r_frame_rate.den, st->r_frame_rate.num});
+                             (AVRational){st->avg_frame_rate.den, st->avg_frame_rate.num});
     av_dlog(s, "seek frame num %d timestamp %"PRId64"\n",
             frame_num, sample_time);
 
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 1ef780b..d81fa42 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -158,7 +158,10 @@ int ff_raw_video_read_header(AVFormatContext *s)
         goto fail;
     }
 
-    st->r_frame_rate = st->avg_frame_rate = framerate;
+#if FF_API_R_FRAME_RATE
+    st->r_frame_rate =
+#endif
+    st->avg_frame_rate = framerate;
     avpriv_set_pts_info(st, 64, framerate.den, framerate.num);
 
 fail:
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index 0113251..05a7c59 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -344,9 +344,11 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
         if ((ret = rm_read_extradata(pb, st->codec, codec_data_size - (avio_tell(pb) - codec_pos))) < 0)
             return ret;
 
-        av_reduce(&st->r_frame_rate.den, &st->r_frame_rate.num,
+        av_reduce(&st->avg_frame_rate.den, &st->avg_frame_rate.num,
                   0x10000, fps, (1 << 30) - 1);
-        st->avg_frame_rate = st->r_frame_rate;
+#if FF_API_R_FRAME_RATE
+        st->r_frame_rate = st->avg_frame_rate;
+#endif
     }
 
 skip:
diff --git a/libavformat/utils.c b/libavformat/utils.c
index d358c32..3630c6f 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -758,9 +758,9 @@ static void compute_frame_duration(int *pnum, int *pden, AVStream *st,
     *pden = 0;
     switch(st->codec->codec_type) {
     case AVMEDIA_TYPE_VIDEO:
-        if (st->r_frame_rate.num) {
-            *pnum = st->r_frame_rate.den;
-            *pden = st->r_frame_rate.num;
+        if (st->avg_frame_rate.num) {
+            *pnum = st->avg_frame_rate.den;
+            *pden = st->avg_frame_rate.num;
         } else if(st->time_base.num*1000LL > st->time_base.den) {
             *pnum = st->time_base.num;
             *pden = st->time_base.den;
@@ -2287,7 +2287,9 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
     }
 
     for (i=0; i<ic->nb_streams; i++) {
+#if FF_API_R_FRAME_RATE
         ic->streams[i]->info->last_dts = AV_NOPTS_VALUE;
+#endif
         ic->streams[i]->info->fps_first_dts = AV_NOPTS_VALUE;
         ic->streams[i]->info->fps_last_dts  = AV_NOPTS_VALUE;
     }
@@ -2316,8 +2318,8 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
             if (ic->fps_probe_size >= 0)
                 fps_analyze_framecount = ic->fps_probe_size;
             /* variable fps and no guess at the real fps */
-            if(   tb_unreliable(st->codec) && !(st->r_frame_rate.num && st->avg_frame_rate.num)
-               && st->info->duration_count < fps_analyze_framecount
+            if(   tb_unreliable(st->codec) && !st->avg_frame_rate.num
+               && st->codec_info_nb_frames < fps_analyze_framecount
                && st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
                 break;
             if(st->parser && st->parser->parser->split && !st->codec->extradata)
@@ -2423,6 +2425,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
                 break;
             }
         }
+#if FF_API_R_FRAME_RATE
         {
             int64_t last = st->info->last_dts;
 
@@ -2446,6 +2449,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
             if (last == AV_NOPTS_VALUE || st->info->duration_count <= 1)
                 st->info->last_dts = pkt->dts;
         }
+#endif
         if(st->parser && st->parser->parser->split && !st->codec->extradata){
             int i= st->parser->parser->split(st->codec, pkt->data, pkt->size);
             if (i > 0 && i < FF_MAX_EXTRADATA_SIZE) {
@@ -2508,6 +2512,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
                               best_fps, 12*1001, INT_MAX);
                 }
             }
+#if FF_API_R_FRAME_RATE
             // the check for tb_unreliable() is not completely correct, since this is not about handling
             // a unreliable/inexact time base, but a time base that is finer than necessary, as e.g.
             // ipmovie.c produces.
@@ -2530,6 +2535,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
                 if (num && (!st->r_frame_rate.num || (double)num/(12*1001) < 1.01 * av_q2d(st->r_frame_rate)))
                     av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den, num, 12*1001, INT_MAX);
             }
+#endif
         }else if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
             if(!st->codec->bits_per_coded_sample)
                 st->codec->bits_per_coded_sample= av_get_bits_per_sample(st->codec->codec_id);
@@ -3343,8 +3349,10 @@ static void dump_stream_format(AVFormatContext *ic, int i, int index, int is_out
     if(st->codec->codec_type == AVMEDIA_TYPE_VIDEO){
         if(st->avg_frame_rate.den && st->avg_frame_rate.num)
             print_fps(av_q2d(st->avg_frame_rate), "fps");
+#if FF_API_R_FRAME_RATE
         if(st->r_frame_rate.den && st->r_frame_rate.num)
             print_fps(av_q2d(st->r_frame_rate), "tbr");
+#endif
         if(st->time_base.den && st->time_base.num)
             print_fps(1/av_q2d(st->time_base), "tbn");
         if(st->codec->time_base.den && st->codec->time_base.num)
diff --git a/libavformat/vc1testenc.c b/libavformat/vc1testenc.c
index a1228d8..9c4eea2 100644
--- a/libavformat/vc1testenc.c
+++ b/libavformat/vc1testenc.c
@@ -44,8 +44,8 @@ static int vc1test_write_header(AVFormatContext *s)
     avio_wl24(pb, 0); // hrd_buffer
     avio_w8(pb, 0x80); // level|cbr|res1
     avio_wl32(pb, 0); // hrd_rate
-    if (s->streams[0]->r_frame_rate.den && s->streams[0]->r_frame_rate.num == 1)
-        avio_wl32(pb, s->streams[0]->r_frame_rate.den);
+    if (s->streams[0]->avg_frame_rate.den && s->streams[0]->avg_frame_rate.num == 1)
+        avio_wl32(pb, s->streams[0]->avg_frame_rate.den);
     else
         avio_wl32(pb, 0xFFFFFFFF); //variable framerate
     avpriv_set_pts_info(s->streams[0], 32, 1, 1000);
diff --git a/libavformat/version.h b/libavformat/version.h
index 6b7ada8..6a11bf9 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -64,5 +64,8 @@
 #ifndef FF_API_AV_GETTIME
 #define FF_API_AV_GETTIME              (LIBAVFORMAT_VERSION_MAJOR < 55)
 #endif
+#ifndef FF_API_R_FRAME_RATE
+#define FF_API_R_FRAME_RATE            (LIBAVFORMAT_VERSION_MAJOR < 55)
+#endif
 
 #endif /* AVFORMAT_VERSION_H */
diff --git a/tests/ref/fate/iv8-demux b/tests/ref/fate/iv8-demux
index fab4bb0..56a54a1 100644
--- a/tests/ref/fate/iv8-demux
+++ b/tests/ref/fate/iv8-demux
@@ -19,7 +19,7 @@
 0,      57600,      61200,        0,    20874, 0xed0b91ec
 0,      61200,      64799,        0,    20877, 0xe1623e01
 0,      64799,      68399,        0,    20933, 0x19906564
-0,      68399,      72000,        0,    20891, 0x3d064fd3
+0,      68399,      72000,     3600,    20891, 0x3d064fd3
 0,      72000,      75600,     3600,    20834, 0xcb774dbc
 0,      75600,      79200,     3600,    20870, 0xbc536589
 0,      79200,      82800,     3600,    21421, 0xc99a68e4
diff --git a/tests/ref/fate/smjpeg-demux b/tests/ref/fate/smjpeg-demux
index 637f28c..4fcd614 100644
--- a/tests/ref/fate/smjpeg-demux
+++ b/tests/ref/fate/smjpeg-demux
@@ -232,7 +232,7 @@
 1,       4388,       4388,       23,      260, 0x06ad6a93
 1,       4411,       4411,       23,      260, 0xdd1b6c91
 1,       4435,       4435,       23,      260, 0x05b94d27
-0,       4444,       4444,        0,     7121, 0x913d5bd6
+0,       4444,       4444,      111,     7121, 0x913d5bd6
 1,       4458,       4458,       23,      260, 0x12cc5062
 1,       4481,       4481,       23,      260, 0x44526d0f
 1,       4504,       4504,       23,      260, 0xf2ac6d95
diff --git a/tests/ref/fate/wmv8-drm-nodec b/tests/ref/fate/wmv8-drm-nodec
index 9067c6a..d6bf15e 100644
--- a/tests/ref/fate/wmv8-drm-nodec
+++ b/tests/ref/fate/wmv8-drm-nodec
@@ -48,7 +48,7 @@
 0,       2708,       2708,        0,     1108, 0x9a6019a8
 0,       2750,       2750,        0,     1205, 0xccba4d22
 0,       2791,       2791,        0,     1306, 0xde708c19
-0,       2833,       2833,        0,     1724, 0xa70b521e
+0,       2833,       2833,       41,     1724, 0xa70b521e
 0,       2875,       2875,       41,     1336, 0xdf3974b9
 0,       2916,       2916,       41,     1259, 0x1f6b4307
 0,       2958,       2958,       41,     1194, 0x635f5a43
diff --git a/tests/ref/fate/wtv-demux b/tests/ref/fate/wtv-demux
index ae44958..bdd6c20 100644
--- a/tests/ref/fate/wtv-demux
+++ b/tests/ref/fate/wtv-demux
@@ -59,83 +59,83 @@
 0,   11486331,   11486331,   400000,     6156, 0xe168394b
 1,   11519998,   11519998,   240000,      576, 0x1fea1448
 1,   11759998,   11759998,   240000,      576, 0x55840a01
-0,   11886331,   13086442,   400000,    23364, 0x53164f1e
+0,   11886331,   13086442,   449438,    23364, 0x53164f1e
 1,   11999998,   11999998,   240000,      576, 0x6c9c24ce
 1,   12239998,   12239998,   240000,      576, 0x955f1e97
-0,   12286442,   12286442,   400000,     6708, 0x89877269
+0,   12286442,   12286442,   449438,     6708, 0x89877269
 1,   12479998,   12479998,   240000,      576, 0x2827134f
-0,   12686442,   12686442,   400000,     6908, 0x8d62a249
+0,   12686442,   12686442,   449438,     6908, 0x8d62a249
 1,   12719998,   12719998,   240000,      576, 0x34a01c29
 1,   12959998,   12959998,   240000,      576, 0x7d351e52
-0,   13086442,   14286442,   400000,    38156, 0xec41f682
+0,   13086442,   14286442,   449438,    38156, 0xec41f682
 1,   13199998,   13199998,   240000,      576, 0x00c91d9e
 1,   13439998,   13439998,   240000,      576, 0x57ea1a97
-0,   13486331,   13486331,   400000,     5764, 0xcc04534b
+0,   13486331,   13486331,   449438,     5764, 0xcc04534b
 1,   13679998,   13679998,   240000,      576, 0xef3a1c74
-0,   13886331,   13886331,   400000,     5388, 0xb8a1c3c5
+0,   13886331,   13886331,   449438,     5388, 0xb8a1c3c5
 1,   13919998,   13919998,   240000,      576, 0x11fc217d
 1,   14159998,   14159998,   240000,      576, 0x59ce20e5
-0,   14286442,   15486331,   400000,    16764, 0x59460d96
+0,   14286442,   15486331,   449438,    16764, 0x59460d96
 1,   14399998,   14399998,   240000,      576, 0xaafc1dbf
 1,   14639998,   14639998,   240000,      576, 0xdd941609
-0,   14686331,   14686331,   400000,     5548, 0x5c91e93d
+0,   14686331,   14686331,   449438,     5548, 0x5c91e93d
 1,   14879998,   14879998,   240000,      576, 0x900420b0
-0,   15086331,   15086331,   400000,     5652, 0x5e321aed
+0,   15086331,   15086331,   449438,     5652, 0x5e321aed
 1,   15119998,   15119998,   240000,      576, 0x5f4f1aa1
 1,   15359998,   15359998,   240000,      576, 0x7d7e18de
-0,   15486331,   16686331,   400000,    15564, 0xefdf5080
+0,   15486331,   16686331,   449438,    15564, 0xefdf5080
 1,   15599998,   15599998,   240000,      576, 0x986c0d9d
 1,   15839998,   15839998,   240000,      576, 0xcb4c21c0
-0,   15886331,   15886331,   400000,     6492, 0xd1d5c5f8
+0,   15886331,   15886331,   449438,     6492, 0xd1d5c5f8
 1,   16079998,   16079998,   240000,      576, 0xbcfb1e8b
-0,   16286331,   16286331,   400000,     5604, 0xf9472b44
+0,   16286331,   16286331,   449438,     5604, 0xf9472b44
 1,   16319998,   16319998,   240000,      576, 0xcb541b4c
 1,   16559998,   16559998,   240000,      576, 0x980426e9
-0,   16686331,   17886331,   400000,    17924, 0x45815b7b
+0,   16686331,   17886331,   449438,    17924, 0x45815b7b
 1,   16799998,   16799998,   240000,      576, 0x09d00aa0
 1,   17039998,   17039998,   240000,      576, 0xad591374
-0,   17086442,   17086442,   400000,     5020, 0x3cc5e554
+0,   17086442,   17086442,   449438,     5020, 0x3cc5e554
 1,   17279998,   17279998,   240000,      576, 0x97bf1461
-0,   17486442,   17486442,   400000,     5276, 0xa0554c12
+0,   17486442,   17486442,   449438,     5276, 0xa0554c12
 1,   17519998,   17519998,   240000,      576, 0xdc871cc4
 1,   17759998,   17759998,   240000,      576, 0x56781896
-0,   17886331,   19086442,   400000,    31460, 0x5765eb5f
+0,   17886331,   19086442,   449438,    31460, 0x5765eb5f
 1,   17999998,   17999998,   240000,      576, 0xc77714e3
 1,   18239998,   18239998,   240000,      576, 0x280e18d4
-0,   18286331,   18286331,   400000,     4972, 0x91adbab7
+0,   18286331,   18286331,   449438,     4972, 0x91adbab7
 1,   18479998,   18479998,   240000,      576, 0xbc0d2302
-0,   18686442,   18686442,   400000,     5580, 0xfea707cb
+0,   18686442,   18686442,   449438,     5580, 0xfea707cb
 1,   18719998,   18719998,   240000,      576, 0x79191384
 1,   18959998,   18959998,   240000,      576, 0x65481c97
-0,   19086442,   20286331,   400000,    17412, 0x0afe4d27
+0,   19086442,   20286331,   449438,    17412, 0x0afe4d27
 1,   19199998,   19199998,   240000,      576, 0xc94d227d
 1,   19439998,   19439998,   240000,      576, 0xa68a1f14
-0,   19486442,   19486442,   400000,     5236, 0x03f55309
+0,   19486442,   19486442,   449438,     5236, 0x03f55309
 1,   19679998,   19679998,   240000,      576, 0x6af11a5c
-0,   19886331,   19886331,   400000,     4924, 0x558e753c
+0,   19886331,   19886331,   449438,     4924, 0x558e753c
 1,   19919998,   19919998,   240000,      576, 0x4d1019ef
 1,   20159998,   20159998,   240000,      576, 0x3b1b17b5
-0,   20286331,   21486331,   400000,    15396, 0xf145d121
+0,   20286331,   21486331,   449438,    15396, 0xf145d121
 1,   20399998,   20399998,   240000,      576, 0xcdd8159f
 1,   20639998,   20639998,   240000,      576, 0x97cd1d06
-0,   20686331,   20686331,   400000,     4708, 0x43066a92
+0,   20686331,   20686331,   449438,     4708, 0x43066a92
 1,   20879998,   20879998,   240000,      576, 0x5d1b1123
-0,   21086442,   21086442,   400000,     4332, 0x9e22bcba
+0,   21086442,   21086442,   449438,     4332, 0x9e22bcba
 1,   21119998,   21119998,   240000,      576, 0x888d0cb0
 1,   21359998,   21359998,   240000,      576, 0x556e1dad
-0,   21486331,   22686442,   400000,    12876, 0x46ff9ef4
+0,   21486331,   22686442,   449438,    12876, 0x46ff9ef4
 1,   21599998,   21599998,   240000,      576, 0xf7af0bce
 1,   21839998,   21839998,   240000,      576, 0xb5da160a
-0,   21886442,   21886442,   400000,     5940, 0x27cba62e
+0,   21886442,   21886442,   449438,     5940, 0x27cba62e
 1,   22079998,   22079998,   240000,      576, 0x4a8d0e98
-0,   22286442,   22286442,   400000,     6124, 0x6bab0a6d
+0,   22286442,   22286442,   449438,     6124, 0x6bab0a6d
 1,   22319998,   22319998,   240000,      576, 0x183b1c7e
 1,   22559998,   22559998,   240000,      576, 0xc47120e6
-0,   22686442,   23886442,   400000,    36428, 0x942f9648
+0,   22686442,   23886442,   449438,    36428, 0x942f9648
 1,   22799998,   22799998,   240000,      576, 0xb1f31346
-0,   23086331,   23086331,   400000,     6660, 0x545a0db7
-0,   23486331,   23486331,   400000,     6780, 0x2d1d4189
-0,   23886442,   25086331,   400000,    16460, 0x7c3b3ca4
-0,   24286442,   24286442,   400000,     6724, 0x8538cc6f
-0,   24686442,   24686442,   400000,     7068, 0x69574fd0
-0,   25086331,   26286331,   400000,    19552, 0xf230e854
+0,   23086331,   23086331,   449438,     6660, 0x545a0db7
+0,   23486331,   23486331,   449438,     6780, 0x2d1d4189
+0,   23886442,   25086331,   449438,    16460, 0x7c3b3ca4
+0,   24286442,   24286442,   449438,     6724, 0x8538cc6f
+0,   24686442,   24686442,   449438,     7068, 0x69574fd0
+0,   25086331,   26286331,   449438,    19552, 0xf230e854
diff --git a/tests/ref/fate/xmv-demux b/tests/ref/fate/xmv-demux
index 841ba9c..20c6ac1 100644
--- a/tests/ref/fate/xmv-demux
+++ b/tests/ref/fate/xmv-demux
@@ -82,102 +82,102 @@
 1,       3183,       3183,      124,     8928, 0x4a9b2d42
 0,       4640,       4640,        0,      100, 0x45023894
 0,       4680,       4680,        0,      948, 0xa65ed345
-0,       4720,       4720,        0,     2808, 0xd7285746
-0,       4760,       4760,       40,     5372, 0x05794175
+0,       4720,       4720,      108,     2808, 0xd7285746
+0,       4760,       4760,      108,     5372, 0x05794175
 1,       3307,       3307,       21,     1512, 0xed8b3f4b
-0,       4800,       4800,       40,    11596, 0x8636eca7
+0,       4800,       4800,      108,    11596, 0x8636eca7
 1,       3328,       3328,       21,     1512, 0xa27d3891
-0,       4840,       4840,       40,    11524, 0xe1f39be3
+0,       4840,       4840,      108,    11524, 0xe1f39be3
 1,       3349,       3349,       21,     1512, 0xb0f13eb6
-0,       4880,       4880,       40,    23392, 0xab053f05
+0,       4880,       4880,      108,    23392, 0xab053f05
 1,       3370,       3370,       23,     1656, 0xe5a98324
-0,       4920,       4920,       40,     4560, 0x03197d07
+0,       4920,       4920,      108,     4560, 0x03197d07
 1,       3393,       3393,       31,     2232, 0x15445433
-0,       4960,       4960,       40,     4440, 0x1cc361a2
+0,       4960,       4960,      108,     4440, 0x1cc361a2
 1,       3424,       3424,       31,     2232, 0x5cb348a9
-0,       5000,       5000,       40,    23688, 0x16030634
+0,       5000,       5000,      108,    23688, 0x16030634
 1,       3455,       3455,       31,     2232, 0xf10347da
-0,       5040,       5040,       40,    16132, 0xf0eca799
+0,       5040,       5040,      108,    16132, 0xf0eca799
 1,       3486,       3486,       34,     2448, 0x3e16a175
-0,       5080,       5080,       40,    29896, 0x0c0988ea
+0,       5080,       5080,      108,    29896, 0x0c0988ea
 1,       3520,       3520,       35,     2520, 0x17e3ca2b
-0,       5120,       5120,       40,    19956, 0x0093aa0b
+0,       5120,       5120,      108,    19956, 0x0093aa0b
 1,       3555,       3555,       27,     1944, 0x35c2de84
-0,       5160,       5160,       40,    16392, 0x8829a9ca
+0,       5160,       5160,      108,    16392, 0x8829a9ca
 1,       3582,       3582,       27,     1944, 0x55b4db40
-0,       5200,       5200,       40,    16772, 0x9a4a546d
+0,       5200,       5200,      108,    16772, 0x9a4a546d
 1,       3609,       3609,       29,     2088, 0xdaae14b2
-0,       5240,       5240,       40,     8920, 0xcd8ca203
+0,       5240,       5240,      108,     8920, 0xcd8ca203
 1,       3638,       3638,       27,     1944, 0x92ccd37f
-0,       5280,       5280,       40,     9632, 0x53c1d37b
+0,       5280,       5280,      108,     9632, 0x53c1d37b
 1,       3665,       3665,       27,     1944, 0x70efede1
-0,       5320,       5320,       40,     8976, 0xfe4da2cc
+0,       5320,       5320,      108,     8976, 0xfe4da2cc
 1,       3692,       3692,       27,     1944, 0x7601d304
-0,       5360,       5360,       40,     6680, 0x35348fe0
+0,       5360,       5360,      108,     6680, 0x35348fe0
 1,       3719,       3719,       27,     1944, 0x3922ebc2
-0,       5400,       5400,       40,     9228, 0xcbf62b0c
+0,       5400,       5400,      108,     9228, 0xcbf62b0c
 1,       3746,       3746,       30,     2160, 0xde462f2e
-0,       5440,       5440,       40,     5108, 0xd1d88511
+0,       5440,       5440,      108,     5108, 0xd1d88511
 1,       3776,       3776,       26,     1872, 0x467ac1d2
-0,       5480,       5480,       40,    10016, 0xaff4b2b2
+0,       5480,       5480,      108,    10016, 0xaff4b2b2
 1,       3802,       3802,       26,     1872, 0xa1e4cd43
-0,       5520,       5520,       40,     7468, 0x23e81ab8
+0,       5520,       5520,      108,     7468, 0x23e81ab8
 1,       3828,       3828,       26,     1872, 0x1dceccc6
-0,       5560,       5560,       40,     4172, 0x253cd05b
+0,       5560,       5560,      108,     4172, 0x253cd05b
 1,       3854,       3854,       26,     1872, 0x2bbad2a5
-0,       5600,       5600,       40,     8188, 0x7ede743f
+0,       5600,       5600,      108,     8188, 0x7ede743f
 1,       3880,       3880,       26,     1872, 0xc603d44d
-0,       5640,       5640,       40,     2884, 0x2dec55a3
+0,       5640,       5640,      108,     2884, 0x2dec55a3
 1,       3906,       3906,       26,     1872, 0x1b4cc261
-0,       5680,       5680,       40,     3900, 0xd0666a18
+0,       5680,       5680,      108,     3900, 0xd0666a18
 1,       3932,       3932,       26,     1872, 0x10edd6cf
-0,       5720,       5720,       40,     2996, 0x9cc99b8c
+0,       5720,       5720,      108,     2996, 0x9cc99b8c
 1,       3958,       3958,       33,     2376, 0xecdb9d61
-0,       5760,       5760,       40,     2156, 0xae612776
+0,       5760,       5760,      108,     2156, 0xae612776
 1,       3991,       3991,       36,     2592, 0x5559eced
-0,       5800,       5800,       40,     3988, 0x0d2c9992
-0,       5840,       5840,       40,     1512, 0x6281fc00
+0,       5800,       5800,      108,     3988, 0x0d2c9992
+0,       5840,       5840,      108,     1512, 0x6281fc00
 1,       4027,       4027,       36,     2592, 0x8848dfc7
-0,       5880,       5880,       40,     6544, 0xb75c2562
+0,       5880,       5880,      108,     6544, 0xb75c2562
 1,       4063,       4063,       36,     2592, 0x4ca2d7da
-0,       5920,       5920,       40,     4108, 0xfb21efc9
+0,       5920,       5920,      108,     4108, 0xfb21efc9
 1,       4099,       4099,       36,     2592, 0x285fd7e6
-0,       5960,       5960,       40,     1096, 0x85922a37
-0,       6000,       6000,       40,     9740, 0xe57d7647
+0,       5960,       5960,      108,     1096, 0x85922a37
+0,       6000,       6000,      108,     9740, 0xe57d7647
 1,       4135,       4135,       36,     2592, 0x2717e404
-0,       6040,       6040,       40,      416, 0x61c2ea02
+0,       6040,       6040,      108,      416, 0x61c2ea02
 1,       4171,       4171,       36,     2592, 0xf106111a
-0,       6080,       6080,       40,      336, 0x1dc5ac1c
+0,       6080,       6080,      108,      336, 0x1dc5ac1c
 1,       4207,       4207,       36,     2592, 0xd7d01119
-0,       6120,       6120,       40,      204, 0x16f57017
+0,       6120,       6120,      108,      204, 0x16f57017
 1,       4243,       4243,       36,     2592, 0x550cfeda
-0,       6160,       6160,       40,      112, 0x78374234
-0,       6200,       6200,       40,       40, 0x6cb21985
+0,       6160,       6160,      108,      112, 0x78374234
+0,       6200,       6200,      108,       40, 0x6cb21985
 1,       4279,       4279,       36,     2592, 0x47ad00c4
 1,       4315,       4315,       36,     2592, 0x39bbf306
 1,       4351,       4351,       45,     3240, 0x69addfce
 1,       4396,       4396,      297,    21384, 0x254f63e0
 1,       4693,       4693,      298,    21456, 0x2f7a9859
-0,       6840,       6840,       40,    14420, 0x53324ca4
-0,       6880,       6880,       40,       40, 0x10971420
+0,       6840,       6840,      108,    14420, 0x53324ca4
+0,       6880,       6880,      108,       40, 0x10971420
 1,       4991,       4991,      521,    37512, 0x6e962928
 1,       5512,       5512,       38,     2736, 0x1dc91c69
-0,       8000,       8000,       40,    24904, 0x15574f7e
+0,       8000,       8000,      108,    24904, 0x15574f7e
 1,       5550,       5550,       38,     2736, 0x023434fd
 1,       5588,       5588,       38,     2736, 0x906f1541
-0,       8160,       8160,       40,     1908, 0xccb2dd3c
+0,       8160,       8160,      108,     1908, 0xccb2dd3c
 1,       5626,       5626,       38,     2736, 0x85a31102
-0,       8200,       8200,       40,     4676, 0xbfa42b7e
+0,       8200,       8200,      108,     4676, 0xbfa42b7e
 1,       5664,       5664,       42,     3024, 0x9296a5f3
-0,       8240,       8240,       40,     3600, 0x87c9dc58
-0,       8280,       8280,       40,     8184, 0x504a8e65
+0,       8240,       8240,      108,     3600, 0x87c9dc58
+0,       8280,       8280,      108,     8184, 0x504a8e65
 1,       5706,       5706,       27,     1944, 0x7bf4dedc
-0,       8320,       8320,       40,     9636, 0x2efb3006
+0,       8320,       8320,      108,     9636, 0x2efb3006
 1,       5733,       5733,       27,     1944, 0x4196c404
 1,       5760,       5760,       27,     1944, 0xcda97c7a
-0,       8360,       8360,       40,     9580, 0x0fb6f4e8
+0,       8360,       8360,      108,     9580, 0x0fb6f4e8
 1,       5787,       5787,       27,     1944, 0x5f4922b2
-0,       8400,       8400,       40,     7840, 0xe996f564
+0,       8400,       8400,      108,     7840, 0xe996f564
 1,       5814,       5814,       29,     2088, 0x37dfc157
-0,       8440,       8440,       40,     4208, 0xe9c2fba2
-0,       8480,       8480,       40,      556, 0x3f1e077c
+0,       8440,       8440,      108,     4208, 0xe9c2fba2
+0,       8480,       8480,      108,      556, 0x3f1e077c



More information about the ffmpeg-cvslog mailing list