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); | ret = decode_video (ist, &avpkt, &got_output); | ||||
| if (avpkt.duration) | if (avpkt.duration) | ||||
| ist->next_dts += av_rescale_q(avpkt.duration, ist->st->time_base, AV_TIME_BASE_Q); | 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); | AV_TIME_BASE_Q); | ||||
| else if (ist->st->codec->time_base.num != 0) { | else if (ist->st->codec->time_base.num != 0) { | ||||
| int ticks = ist->st->parser ? ist->st->parser->repeat_pict + 1 : | 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_CFR || | ||||
| (video_sync_method == VSYNC_AUTO && | (video_sync_method == VSYNC_AUTO && | ||||
| !(oc->oformat->flags & (AVFMT_NOTIMESTAMPS | AVFMT_VARIABLE_FPS))))) { | !(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) { | if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) { | ||||
| int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates); | int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates); | ||||
| ost->frame_rate = ost->enc->supported_framerates[idx]; | 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) | if (fmt_ctx->iformat->flags & AVFMT_SHOW_IDS) | ||||
| probe_int("id", stream->id); | 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", | probe_str("avg_frame_rate", | ||||
| rational_string(val_str, sizeof(val_str), "/", | rational_string(val_str, sizeof(val_str), "/", | ||||
| &stream->avg_frame_rate)); | &stream->avg_frame_rate)); | ||||
| @@ -630,6 +630,7 @@ typedef struct AVStream { | |||||
| * not actually used for encoding. | * not actually used for encoding. | ||||
| */ | */ | ||||
| AVCodecContext *codec; | AVCodecContext *codec; | ||||
| #if FF_API_R_FRAME_RATE | |||||
| /** | /** | ||||
| * Real base framerate of the stream. | * Real base framerate of the stream. | ||||
| * This is the lowest framerate with which all timestamps can be | * 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. | * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1. | ||||
| */ | */ | ||||
| AVRational r_frame_rate; | AVRational r_frame_rate; | ||||
| #endif | |||||
| void *priv_data; | void *priv_data; | ||||
| /** | /** | ||||
| @@ -714,10 +716,12 @@ typedef struct AVStream { | |||||
| */ | */ | ||||
| #define MAX_STD_TIMEBASES (60*12+5) | #define MAX_STD_TIMEBASES (60*12+5) | ||||
| struct { | struct { | ||||
| #if FF_API_R_FRAME_RATE | |||||
| int64_t last_dts; | int64_t last_dts; | ||||
| int64_t duration_gcd; | int64_t duration_gcd; | ||||
| int duration_count; | int duration_count; | ||||
| double duration_error[MAX_STD_TIMEBASES]; | double duration_error[MAX_STD_TIMEBASES]; | ||||
| #endif | |||||
| int nb_decoded_frames; | int nb_decoded_frames; | ||||
| int found_decoder; | int found_decoder; | ||||
| @@ -120,8 +120,11 @@ static int avisynth_read_header(AVFormatContext *s) | |||||
| st = avformat_new_stream(s, NULL); | st = avformat_new_stream(s, NULL); | ||||
| st->id = id; | st->id = id; | ||||
| st->codec->codec_type = AVMEDIA_TYPE_VIDEO; | 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->width = imgfmt.bmiHeader.biWidth; | ||||
| st->codec->height = imgfmt.bmiHeader.biHeight; | 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->height = avs->height; | ||||
| avs->st_video->codec->bits_per_coded_sample=avs->bits_per_sample; | avs->st_video->codec->bits_per_coded_sample=avs->bits_per_sample; | ||||
| avs->st_video->nb_frames = avs->nb_frames; | 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, | return avs_read_video_packet(s, pkt, type, sub_type, size, | ||||
| palette, palette_size); | palette, palette_size); | ||||
| @@ -432,8 +432,10 @@ static int ea_read_header(AVFormatContext *s) | |||||
| st->codec->width = ea->width; | st->codec->width = ea->width; | ||||
| st->codec->height = ea->height; | st->codec->height = ea->height; | ||||
| avpriv_set_pts_info(st, 33, ea->time_base.num, ea->time_base.den); | 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) { | if (ea->audio_codec) { | ||||
| @@ -202,9 +202,9 @@ static int flv_write_header(AVFormatContext *s) | |||||
| FLVStreamContext *sc; | FLVStreamContext *sc; | ||||
| switch (enc->codec_type) { | switch (enc->codec_type) { | ||||
| case AVMEDIA_TYPE_VIDEO: | 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 { | } else { | ||||
| framerate = 1 / av_q2d(s->streams[i]->codec->time_base); | 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) | if (st->codec->codec_id != CODEC_ID_H264) | ||||
| st->need_parsing = AVSTREAM_PARSE_HEADERS; | st->need_parsing = AVSTREAM_PARSE_HEADERS; | ||||
| if (track->default_duration) { | 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); | 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) { | } else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) { | ||||
| st->codec->codec_type = AVMEDIA_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, | av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den, | ||||
| sc->time_scale*st->nb_frames, st->duration, INT_MAX); | 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)) | 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, | av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den, | ||||
| sc->time_scale, sc->stts_data[0].duration, INT_MAX); | sc->time_scale, sc->stts_data[0].duration, INT_MAX); | ||||
| #endif | |||||
| } | } | ||||
| switch (st->codec->codec_id) { | switch (st->codec->codec_id) { | ||||
| @@ -163,7 +163,10 @@ static int nuv_header(AVFormatContext *s) { | |||||
| vst->codec->height = height; | vst->codec->height = height; | ||||
| vst->codec->bits_per_coded_sample = 10; | vst->codec->bits_per_coded_sample = 10; | ||||
| vst->sample_aspect_ratio = av_d2q(aspect * height / width, 10000); | 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); | avpriv_set_pts_info(vst, 32, 1, 1000); | ||||
| } else | } else | ||||
| ctx->v_id = -1; | ctx->v_id = -1; | ||||
| @@ -87,8 +87,12 @@ static int r3d_read_red1(AVFormatContext *s) | |||||
| framerate.num = avio_rb16(s->pb); | framerate.num = avio_rb16(s->pb); | ||||
| framerate.den = 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 | tmp = avio_r8(s->pb); // audio channels | ||||
| av_dlog(s, "audio channels %d\n", tmp); | 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]); | 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, | 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); | st->time_base); | ||||
| av_dlog(s, "duration %"PRId64"\n", st->duration); | 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->stream_index = 0; | ||||
| pkt->dts = dts; | pkt->dts = dts; | ||||
| if (st->r_frame_rate.num) | |||||
| if (st->avg_frame_rate.num) | |||||
| pkt->duration = (uint64_t)st->time_base.den* | 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); | av_dlog(s, "pkt dts %"PRId64" duration %d\n", pkt->dts, pkt->duration); | ||||
| return 0; | 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; | R3DContext *r3d = s->priv_data; | ||||
| int frame_num; | int frame_num; | ||||
| if (!st->r_frame_rate.num) | |||||
| if (!st->avg_frame_rate.num) | |||||
| return -1; | return -1; | ||||
| frame_num = av_rescale_q(sample_time, st->time_base, | 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", | av_dlog(s, "seek frame num %d timestamp %"PRId64"\n", | ||||
| frame_num, sample_time); | frame_num, sample_time); | ||||
| @@ -158,7 +158,10 @@ int ff_raw_video_read_header(AVFormatContext *s) | |||||
| goto fail; | 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); | avpriv_set_pts_info(st, 64, framerate.den, framerate.num); | ||||
| fail: | 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) | if ((ret = rm_read_extradata(pb, st->codec, codec_data_size - (avio_tell(pb) - codec_pos))) < 0) | ||||
| return ret; | 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); | 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: | skip: | ||||
| @@ -758,9 +758,9 @@ static void compute_frame_duration(int *pnum, int *pden, AVStream *st, | |||||
| *pden = 0; | *pden = 0; | ||||
| switch(st->codec->codec_type) { | switch(st->codec->codec_type) { | ||||
| case AVMEDIA_TYPE_VIDEO: | 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) { | } else if(st->time_base.num*1000LL > st->time_base.den) { | ||||
| *pnum = st->time_base.num; | *pnum = st->time_base.num; | ||||
| *pden = st->time_base.den; | *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++) { | for (i=0; i<ic->nb_streams; i++) { | ||||
| #if FF_API_R_FRAME_RATE | |||||
| ic->streams[i]->info->last_dts = AV_NOPTS_VALUE; | 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_first_dts = AV_NOPTS_VALUE; | ||||
| ic->streams[i]->info->fps_last_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) | if (ic->fps_probe_size >= 0) | ||||
| fps_analyze_framecount = ic->fps_probe_size; | fps_analyze_framecount = ic->fps_probe_size; | ||||
| /* variable fps and no guess at the real fps */ | /* 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) | && st->codec->codec_type == AVMEDIA_TYPE_VIDEO) | ||||
| break; | break; | ||||
| if(st->parser && st->parser->parser->split && !st->codec->extradata) | if(st->parser && st->parser->parser->split && !st->codec->extradata) | ||||
| @@ -2423,6 +2425,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) | |||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| #if FF_API_R_FRAME_RATE | |||||
| { | { | ||||
| int64_t last = st->info->last_dts; | 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) | if (last == AV_NOPTS_VALUE || st->info->duration_count <= 1) | ||||
| st->info->last_dts = pkt->dts; | st->info->last_dts = pkt->dts; | ||||
| } | } | ||||
| #endif | |||||
| if(st->parser && st->parser->parser->split && !st->codec->extradata){ | if(st->parser && st->parser->parser->split && !st->codec->extradata){ | ||||
| int i= st->parser->parser->split(st->codec, pkt->data, pkt->size); | int i= st->parser->parser->split(st->codec, pkt->data, pkt->size); | ||||
| if (i > 0 && i < FF_MAX_EXTRADATA_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); | 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 | // 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. | // a unreliable/inexact time base, but a time base that is finer than necessary, as e.g. | ||||
| // ipmovie.c produces. | // 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))) | 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); | 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) { | }else if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO) { | ||||
| if(!st->codec->bits_per_coded_sample) | if(!st->codec->bits_per_coded_sample) | ||||
| st->codec->bits_per_coded_sample= av_get_bits_per_sample(st->codec->codec_id); | 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->codec->codec_type == AVMEDIA_TYPE_VIDEO){ | ||||
| if(st->avg_frame_rate.den && st->avg_frame_rate.num) | if(st->avg_frame_rate.den && st->avg_frame_rate.num) | ||||
| print_fps(av_q2d(st->avg_frame_rate), "fps"); | 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) | if(st->r_frame_rate.den && st->r_frame_rate.num) | ||||
| print_fps(av_q2d(st->r_frame_rate), "tbr"); | print_fps(av_q2d(st->r_frame_rate), "tbr"); | ||||
| #endif | |||||
| if(st->time_base.den && st->time_base.num) | if(st->time_base.den && st->time_base.num) | ||||
| print_fps(1/av_q2d(st->time_base), "tbn"); | print_fps(1/av_q2d(st->time_base), "tbn"); | ||||
| if(st->codec->time_base.den && st->codec->time_base.num) | 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_wl24(pb, 0); // hrd_buffer | ||||
| avio_w8(pb, 0x80); // level|cbr|res1 | avio_w8(pb, 0x80); // level|cbr|res1 | ||||
| avio_wl32(pb, 0); // hrd_rate | 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 | else | ||||
| avio_wl32(pb, 0xFFFFFFFF); //variable framerate | avio_wl32(pb, 0xFFFFFFFF); //variable framerate | ||||
| avpriv_set_pts_info(s->streams[0], 32, 1, 1000); | avpriv_set_pts_info(s->streams[0], 32, 1, 1000); | ||||
| @@ -64,5 +64,8 @@ | |||||
| #ifndef FF_API_AV_GETTIME | #ifndef FF_API_AV_GETTIME | ||||
| #define FF_API_AV_GETTIME (LIBAVFORMAT_VERSION_MAJOR < 55) | #define FF_API_AV_GETTIME (LIBAVFORMAT_VERSION_MAJOR < 55) | ||||
| #endif | #endif | ||||
| #ifndef FF_API_R_FRAME_RATE | |||||
| #define FF_API_R_FRAME_RATE (LIBAVFORMAT_VERSION_MAJOR < 55) | |||||
| #endif | |||||
| #endif /* AVFORMAT_VERSION_H */ | #endif /* AVFORMAT_VERSION_H */ | ||||
| @@ -19,7 +19,7 @@ | |||||
| 0, 57600, 61200, 0, 20874, 0xed0b91ec | 0, 57600, 61200, 0, 20874, 0xed0b91ec | ||||
| 0, 61200, 64799, 0, 20877, 0xe1623e01 | 0, 61200, 64799, 0, 20877, 0xe1623e01 | ||||
| 0, 64799, 68399, 0, 20933, 0x19906564 | 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, 72000, 75600, 3600, 20834, 0xcb774dbc | ||||
| 0, 75600, 79200, 3600, 20870, 0xbc536589 | 0, 75600, 79200, 3600, 20870, 0xbc536589 | ||||
| 0, 79200, 82800, 3600, 21421, 0xc99a68e4 | 0, 79200, 82800, 3600, 21421, 0xc99a68e4 | ||||
| @@ -232,7 +232,7 @@ | |||||
| 1, 4388, 4388, 23, 260, 0x06ad6a93 | 1, 4388, 4388, 23, 260, 0x06ad6a93 | ||||
| 1, 4411, 4411, 23, 260, 0xdd1b6c91 | 1, 4411, 4411, 23, 260, 0xdd1b6c91 | ||||
| 1, 4435, 4435, 23, 260, 0x05b94d27 | 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, 4458, 4458, 23, 260, 0x12cc5062 | ||||
| 1, 4481, 4481, 23, 260, 0x44526d0f | 1, 4481, 4481, 23, 260, 0x44526d0f | ||||
| 1, 4504, 4504, 23, 260, 0xf2ac6d95 | 1, 4504, 4504, 23, 260, 0xf2ac6d95 | ||||
| @@ -48,7 +48,7 @@ | |||||
| 0, 2708, 2708, 0, 1108, 0x9a6019a8 | 0, 2708, 2708, 0, 1108, 0x9a6019a8 | ||||
| 0, 2750, 2750, 0, 1205, 0xccba4d22 | 0, 2750, 2750, 0, 1205, 0xccba4d22 | ||||
| 0, 2791, 2791, 0, 1306, 0xde708c19 | 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, 2875, 2875, 41, 1336, 0xdf3974b9 | ||||
| 0, 2916, 2916, 41, 1259, 0x1f6b4307 | 0, 2916, 2916, 41, 1259, 0x1f6b4307 | ||||
| 0, 2958, 2958, 41, 1194, 0x635f5a43 | 0, 2958, 2958, 41, 1194, 0x635f5a43 | ||||
| @@ -59,83 +59,83 @@ | |||||
| 0, 11486331, 11486331, 400000, 6156, 0xe168394b | 0, 11486331, 11486331, 400000, 6156, 0xe168394b | ||||
| 1, 11519998, 11519998, 240000, 576, 0x1fea1448 | 1, 11519998, 11519998, 240000, 576, 0x1fea1448 | ||||
| 1, 11759998, 11759998, 240000, 576, 0x55840a01 | 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, 11999998, 11999998, 240000, 576, 0x6c9c24ce | ||||
| 1, 12239998, 12239998, 240000, 576, 0x955f1e97 | 1, 12239998, 12239998, 240000, 576, 0x955f1e97 | ||||
| 0, 12286442, 12286442, 400000, 6708, 0x89877269 | |||||
| 0, 12286442, 12286442, 449438, 6708, 0x89877269 | |||||
| 1, 12479998, 12479998, 240000, 576, 0x2827134f | 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, 12719998, 12719998, 240000, 576, 0x34a01c29 | ||||
| 1, 12959998, 12959998, 240000, 576, 0x7d351e52 | 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, 13199998, 13199998, 240000, 576, 0x00c91d9e | ||||
| 1, 13439998, 13439998, 240000, 576, 0x57ea1a97 | 1, 13439998, 13439998, 240000, 576, 0x57ea1a97 | ||||
| 0, 13486331, 13486331, 400000, 5764, 0xcc04534b | |||||
| 0, 13486331, 13486331, 449438, 5764, 0xcc04534b | |||||
| 1, 13679998, 13679998, 240000, 576, 0xef3a1c74 | 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, 13919998, 13919998, 240000, 576, 0x11fc217d | ||||
| 1, 14159998, 14159998, 240000, 576, 0x59ce20e5 | 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, 14399998, 14399998, 240000, 576, 0xaafc1dbf | ||||
| 1, 14639998, 14639998, 240000, 576, 0xdd941609 | 1, 14639998, 14639998, 240000, 576, 0xdd941609 | ||||
| 0, 14686331, 14686331, 400000, 5548, 0x5c91e93d | |||||
| 0, 14686331, 14686331, 449438, 5548, 0x5c91e93d | |||||
| 1, 14879998, 14879998, 240000, 576, 0x900420b0 | 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, 15119998, 15119998, 240000, 576, 0x5f4f1aa1 | ||||
| 1, 15359998, 15359998, 240000, 576, 0x7d7e18de | 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, 15599998, 15599998, 240000, 576, 0x986c0d9d | ||||
| 1, 15839998, 15839998, 240000, 576, 0xcb4c21c0 | 1, 15839998, 15839998, 240000, 576, 0xcb4c21c0 | ||||
| 0, 15886331, 15886331, 400000, 6492, 0xd1d5c5f8 | |||||
| 0, 15886331, 15886331, 449438, 6492, 0xd1d5c5f8 | |||||
| 1, 16079998, 16079998, 240000, 576, 0xbcfb1e8b | 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, 16319998, 16319998, 240000, 576, 0xcb541b4c | ||||
| 1, 16559998, 16559998, 240000, 576, 0x980426e9 | 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, 16799998, 16799998, 240000, 576, 0x09d00aa0 | ||||
| 1, 17039998, 17039998, 240000, 576, 0xad591374 | 1, 17039998, 17039998, 240000, 576, 0xad591374 | ||||
| 0, 17086442, 17086442, 400000, 5020, 0x3cc5e554 | |||||
| 0, 17086442, 17086442, 449438, 5020, 0x3cc5e554 | |||||
| 1, 17279998, 17279998, 240000, 576, 0x97bf1461 | 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, 17519998, 17519998, 240000, 576, 0xdc871cc4 | ||||
| 1, 17759998, 17759998, 240000, 576, 0x56781896 | 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, 17999998, 17999998, 240000, 576, 0xc77714e3 | ||||
| 1, 18239998, 18239998, 240000, 576, 0x280e18d4 | 1, 18239998, 18239998, 240000, 576, 0x280e18d4 | ||||
| 0, 18286331, 18286331, 400000, 4972, 0x91adbab7 | |||||
| 0, 18286331, 18286331, 449438, 4972, 0x91adbab7 | |||||
| 1, 18479998, 18479998, 240000, 576, 0xbc0d2302 | 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, 18719998, 18719998, 240000, 576, 0x79191384 | ||||
| 1, 18959998, 18959998, 240000, 576, 0x65481c97 | 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, 19199998, 19199998, 240000, 576, 0xc94d227d | ||||
| 1, 19439998, 19439998, 240000, 576, 0xa68a1f14 | 1, 19439998, 19439998, 240000, 576, 0xa68a1f14 | ||||
| 0, 19486442, 19486442, 400000, 5236, 0x03f55309 | |||||
| 0, 19486442, 19486442, 449438, 5236, 0x03f55309 | |||||
| 1, 19679998, 19679998, 240000, 576, 0x6af11a5c | 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, 19919998, 19919998, 240000, 576, 0x4d1019ef | ||||
| 1, 20159998, 20159998, 240000, 576, 0x3b1b17b5 | 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, 20399998, 20399998, 240000, 576, 0xcdd8159f | ||||
| 1, 20639998, 20639998, 240000, 576, 0x97cd1d06 | 1, 20639998, 20639998, 240000, 576, 0x97cd1d06 | ||||
| 0, 20686331, 20686331, 400000, 4708, 0x43066a92 | |||||
| 0, 20686331, 20686331, 449438, 4708, 0x43066a92 | |||||
| 1, 20879998, 20879998, 240000, 576, 0x5d1b1123 | 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, 21119998, 21119998, 240000, 576, 0x888d0cb0 | ||||
| 1, 21359998, 21359998, 240000, 576, 0x556e1dad | 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, 21599998, 21599998, 240000, 576, 0xf7af0bce | ||||
| 1, 21839998, 21839998, 240000, 576, 0xb5da160a | 1, 21839998, 21839998, 240000, 576, 0xb5da160a | ||||
| 0, 21886442, 21886442, 400000, 5940, 0x27cba62e | |||||
| 0, 21886442, 21886442, 449438, 5940, 0x27cba62e | |||||
| 1, 22079998, 22079998, 240000, 576, 0x4a8d0e98 | 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, 22319998, 22319998, 240000, 576, 0x183b1c7e | ||||
| 1, 22559998, 22559998, 240000, 576, 0xc47120e6 | 1, 22559998, 22559998, 240000, 576, 0xc47120e6 | ||||
| 0, 22686442, 23886442, 400000, 36428, 0x942f9648 | |||||
| 0, 22686442, 23886442, 449438, 36428, 0x942f9648 | |||||
| 1, 22799998, 22799998, 240000, 576, 0xb1f31346 | 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 | 1, 3183, 3183, 124, 8928, 0x4a9b2d42 | ||||
| 0, 4640, 4640, 0, 100, 0x45023894 | 0, 4640, 4640, 0, 100, 0x45023894 | ||||
| 0, 4680, 4680, 0, 948, 0xa65ed345 | 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 | 1, 3307, 3307, 21, 1512, 0xed8b3f4b | ||||
| 0, 4800, 4800, 40, 11596, 0x8636eca7 | |||||
| 0, 4800, 4800, 108, 11596, 0x8636eca7 | |||||
| 1, 3328, 3328, 21, 1512, 0xa27d3891 | 1, 3328, 3328, 21, 1512, 0xa27d3891 | ||||
| 0, 4840, 4840, 40, 11524, 0xe1f39be3 | |||||
| 0, 4840, 4840, 108, 11524, 0xe1f39be3 | |||||
| 1, 3349, 3349, 21, 1512, 0xb0f13eb6 | 1, 3349, 3349, 21, 1512, 0xb0f13eb6 | ||||
| 0, 4880, 4880, 40, 23392, 0xab053f05 | |||||
| 0, 4880, 4880, 108, 23392, 0xab053f05 | |||||
| 1, 3370, 3370, 23, 1656, 0xe5a98324 | 1, 3370, 3370, 23, 1656, 0xe5a98324 | ||||
| 0, 4920, 4920, 40, 4560, 0x03197d07 | |||||
| 0, 4920, 4920, 108, 4560, 0x03197d07 | |||||
| 1, 3393, 3393, 31, 2232, 0x15445433 | 1, 3393, 3393, 31, 2232, 0x15445433 | ||||
| 0, 4960, 4960, 40, 4440, 0x1cc361a2 | |||||
| 0, 4960, 4960, 108, 4440, 0x1cc361a2 | |||||
| 1, 3424, 3424, 31, 2232, 0x5cb348a9 | 1, 3424, 3424, 31, 2232, 0x5cb348a9 | ||||
| 0, 5000, 5000, 40, 23688, 0x16030634 | |||||
| 0, 5000, 5000, 108, 23688, 0x16030634 | |||||
| 1, 3455, 3455, 31, 2232, 0xf10347da | 1, 3455, 3455, 31, 2232, 0xf10347da | ||||
| 0, 5040, 5040, 40, 16132, 0xf0eca799 | |||||
| 0, 5040, 5040, 108, 16132, 0xf0eca799 | |||||
| 1, 3486, 3486, 34, 2448, 0x3e16a175 | 1, 3486, 3486, 34, 2448, 0x3e16a175 | ||||
| 0, 5080, 5080, 40, 29896, 0x0c0988ea | |||||
| 0, 5080, 5080, 108, 29896, 0x0c0988ea | |||||
| 1, 3520, 3520, 35, 2520, 0x17e3ca2b | 1, 3520, 3520, 35, 2520, 0x17e3ca2b | ||||
| 0, 5120, 5120, 40, 19956, 0x0093aa0b | |||||
| 0, 5120, 5120, 108, 19956, 0x0093aa0b | |||||
| 1, 3555, 3555, 27, 1944, 0x35c2de84 | 1, 3555, 3555, 27, 1944, 0x35c2de84 | ||||
| 0, 5160, 5160, 40, 16392, 0x8829a9ca | |||||
| 0, 5160, 5160, 108, 16392, 0x8829a9ca | |||||
| 1, 3582, 3582, 27, 1944, 0x55b4db40 | 1, 3582, 3582, 27, 1944, 0x55b4db40 | ||||
| 0, 5200, 5200, 40, 16772, 0x9a4a546d | |||||
| 0, 5200, 5200, 108, 16772, 0x9a4a546d | |||||
| 1, 3609, 3609, 29, 2088, 0xdaae14b2 | 1, 3609, 3609, 29, 2088, 0xdaae14b2 | ||||
| 0, 5240, 5240, 40, 8920, 0xcd8ca203 | |||||
| 0, 5240, 5240, 108, 8920, 0xcd8ca203 | |||||
| 1, 3638, 3638, 27, 1944, 0x92ccd37f | 1, 3638, 3638, 27, 1944, 0x92ccd37f | ||||
| 0, 5280, 5280, 40, 9632, 0x53c1d37b | |||||
| 0, 5280, 5280, 108, 9632, 0x53c1d37b | |||||
| 1, 3665, 3665, 27, 1944, 0x70efede1 | 1, 3665, 3665, 27, 1944, 0x70efede1 | ||||
| 0, 5320, 5320, 40, 8976, 0xfe4da2cc | |||||
| 0, 5320, 5320, 108, 8976, 0xfe4da2cc | |||||
| 1, 3692, 3692, 27, 1944, 0x7601d304 | 1, 3692, 3692, 27, 1944, 0x7601d304 | ||||
| 0, 5360, 5360, 40, 6680, 0x35348fe0 | |||||
| 0, 5360, 5360, 108, 6680, 0x35348fe0 | |||||
| 1, 3719, 3719, 27, 1944, 0x3922ebc2 | 1, 3719, 3719, 27, 1944, 0x3922ebc2 | ||||
| 0, 5400, 5400, 40, 9228, 0xcbf62b0c | |||||
| 0, 5400, 5400, 108, 9228, 0xcbf62b0c | |||||
| 1, 3746, 3746, 30, 2160, 0xde462f2e | 1, 3746, 3746, 30, 2160, 0xde462f2e | ||||
| 0, 5440, 5440, 40, 5108, 0xd1d88511 | |||||
| 0, 5440, 5440, 108, 5108, 0xd1d88511 | |||||
| 1, 3776, 3776, 26, 1872, 0x467ac1d2 | 1, 3776, 3776, 26, 1872, 0x467ac1d2 | ||||
| 0, 5480, 5480, 40, 10016, 0xaff4b2b2 | |||||
| 0, 5480, 5480, 108, 10016, 0xaff4b2b2 | |||||
| 1, 3802, 3802, 26, 1872, 0xa1e4cd43 | 1, 3802, 3802, 26, 1872, 0xa1e4cd43 | ||||
| 0, 5520, 5520, 40, 7468, 0x23e81ab8 | |||||
| 0, 5520, 5520, 108, 7468, 0x23e81ab8 | |||||
| 1, 3828, 3828, 26, 1872, 0x1dceccc6 | 1, 3828, 3828, 26, 1872, 0x1dceccc6 | ||||
| 0, 5560, 5560, 40, 4172, 0x253cd05b | |||||
| 0, 5560, 5560, 108, 4172, 0x253cd05b | |||||
| 1, 3854, 3854, 26, 1872, 0x2bbad2a5 | 1, 3854, 3854, 26, 1872, 0x2bbad2a5 | ||||
| 0, 5600, 5600, 40, 8188, 0x7ede743f | |||||
| 0, 5600, 5600, 108, 8188, 0x7ede743f | |||||
| 1, 3880, 3880, 26, 1872, 0xc603d44d | 1, 3880, 3880, 26, 1872, 0xc603d44d | ||||
| 0, 5640, 5640, 40, 2884, 0x2dec55a3 | |||||
| 0, 5640, 5640, 108, 2884, 0x2dec55a3 | |||||
| 1, 3906, 3906, 26, 1872, 0x1b4cc261 | 1, 3906, 3906, 26, 1872, 0x1b4cc261 | ||||
| 0, 5680, 5680, 40, 3900, 0xd0666a18 | |||||
| 0, 5680, 5680, 108, 3900, 0xd0666a18 | |||||
| 1, 3932, 3932, 26, 1872, 0x10edd6cf | 1, 3932, 3932, 26, 1872, 0x10edd6cf | ||||
| 0, 5720, 5720, 40, 2996, 0x9cc99b8c | |||||
| 0, 5720, 5720, 108, 2996, 0x9cc99b8c | |||||
| 1, 3958, 3958, 33, 2376, 0xecdb9d61 | 1, 3958, 3958, 33, 2376, 0xecdb9d61 | ||||
| 0, 5760, 5760, 40, 2156, 0xae612776 | |||||
| 0, 5760, 5760, 108, 2156, 0xae612776 | |||||
| 1, 3991, 3991, 36, 2592, 0x5559eced | 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 | 1, 4027, 4027, 36, 2592, 0x8848dfc7 | ||||
| 0, 5880, 5880, 40, 6544, 0xb75c2562 | |||||
| 0, 5880, 5880, 108, 6544, 0xb75c2562 | |||||
| 1, 4063, 4063, 36, 2592, 0x4ca2d7da | 1, 4063, 4063, 36, 2592, 0x4ca2d7da | ||||
| 0, 5920, 5920, 40, 4108, 0xfb21efc9 | |||||
| 0, 5920, 5920, 108, 4108, 0xfb21efc9 | |||||
| 1, 4099, 4099, 36, 2592, 0x285fd7e6 | 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 | 1, 4135, 4135, 36, 2592, 0x2717e404 | ||||
| 0, 6040, 6040, 40, 416, 0x61c2ea02 | |||||
| 0, 6040, 6040, 108, 416, 0x61c2ea02 | |||||
| 1, 4171, 4171, 36, 2592, 0xf106111a | 1, 4171, 4171, 36, 2592, 0xf106111a | ||||
| 0, 6080, 6080, 40, 336, 0x1dc5ac1c | |||||
| 0, 6080, 6080, 108, 336, 0x1dc5ac1c | |||||
| 1, 4207, 4207, 36, 2592, 0xd7d01119 | 1, 4207, 4207, 36, 2592, 0xd7d01119 | ||||
| 0, 6120, 6120, 40, 204, 0x16f57017 | |||||
| 0, 6120, 6120, 108, 204, 0x16f57017 | |||||
| 1, 4243, 4243, 36, 2592, 0x550cfeda | 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, 4279, 4279, 36, 2592, 0x47ad00c4 | ||||
| 1, 4315, 4315, 36, 2592, 0x39bbf306 | 1, 4315, 4315, 36, 2592, 0x39bbf306 | ||||
| 1, 4351, 4351, 45, 3240, 0x69addfce | 1, 4351, 4351, 45, 3240, 0x69addfce | ||||
| 1, 4396, 4396, 297, 21384, 0x254f63e0 | 1, 4396, 4396, 297, 21384, 0x254f63e0 | ||||
| 1, 4693, 4693, 298, 21456, 0x2f7a9859 | 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, 4991, 4991, 521, 37512, 0x6e962928 | ||||
| 1, 5512, 5512, 38, 2736, 0x1dc91c69 | 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, 5550, 5550, 38, 2736, 0x023434fd | ||||
| 1, 5588, 5588, 38, 2736, 0x906f1541 | 1, 5588, 5588, 38, 2736, 0x906f1541 | ||||
| 0, 8160, 8160, 40, 1908, 0xccb2dd3c | |||||
| 0, 8160, 8160, 108, 1908, 0xccb2dd3c | |||||
| 1, 5626, 5626, 38, 2736, 0x85a31102 | 1, 5626, 5626, 38, 2736, 0x85a31102 | ||||
| 0, 8200, 8200, 40, 4676, 0xbfa42b7e | |||||
| 0, 8200, 8200, 108, 4676, 0xbfa42b7e | |||||
| 1, 5664, 5664, 42, 3024, 0x9296a5f3 | 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 | 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, 5733, 5733, 27, 1944, 0x4196c404 | ||||
| 1, 5760, 5760, 27, 1944, 0xcda97c7a | 1, 5760, 5760, 27, 1944, 0xcda97c7a | ||||
| 0, 8360, 8360, 40, 9580, 0x0fb6f4e8 | |||||
| 0, 8360, 8360, 108, 9580, 0x0fb6f4e8 | |||||
| 1, 5787, 5787, 27, 1944, 0x5f4922b2 | 1, 5787, 5787, 27, 1944, 0x5f4922b2 | ||||
| 0, 8400, 8400, 40, 7840, 0xe996f564 | |||||
| 0, 8400, 8400, 108, 7840, 0xe996f564 | |||||
| 1, 5814, 5814, 29, 2088, 0x37dfc157 | 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 | |||||