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.tags/n1.0
| @@ -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)); | |||
| @@ -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; | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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) { | |||
| @@ -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); | |||
| } | |||
| @@ -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; | |||
| @@ -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) { | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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: | |||
| @@ -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: | |||
| @@ -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) | |||
| @@ -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); | |||
| @@ -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 */ | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||