diff options
-rw-r--r-- | avconv.c | 8 | ||||
-rw-r--r-- | avprobe.c | 3 | ||||
-rw-r--r-- | libavformat/avformat.h | 4 | ||||
-rw-r--r-- | libavformat/avisynth.c | 7 | ||||
-rw-r--r-- | libavformat/avs.c | 6 | ||||
-rw-r--r-- | libavformat/electronicarts.c | 6 | ||||
-rw-r--r-- | libavformat/flvenc.c | 6 | ||||
-rw-r--r-- | libavformat/matroskadec.c | 6 | ||||
-rw-r--r-- | libavformat/mov.c | 2 | ||||
-rw-r--r-- | libavformat/nuv.c | 5 | ||||
-rw-r--r-- | libavformat/r3d.c | 22 | ||||
-rw-r--r-- | libavformat/rawdec.c | 5 | ||||
-rw-r--r-- | libavformat/rmdec.c | 6 | ||||
-rw-r--r-- | libavformat/utils.c | 18 | ||||
-rw-r--r-- | libavformat/vc1testenc.c | 4 | ||||
-rw-r--r-- | libavformat/version.h | 3 | ||||
-rw-r--r-- | tests/ref/fate/iv8-demux | 2 | ||||
-rw-r--r-- | tests/ref/fate/smjpeg-demux | 2 | ||||
-rw-r--r-- | tests/ref/fate/wmv8-drm-nodec | 2 | ||||
-rw-r--r-- | tests/ref/fate/wtv-demux | 68 | ||||
-rw-r--r-- | tests/ref/fate/xmv-demux | 100 |
21 files changed, 160 insertions, 125 deletions
@@ -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]; @@ -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 |