diff --git a/ffmpeg.c b/ffmpeg.c index 2d979c9160..ecf9aca7c4 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3188,7 +3188,7 @@ static int transcode_init(void) } if(ost->frame_rate.num) - codec->time_base = (AVRational){ost->frame_rate.den, ost->frame_rate.num}; + codec->time_base = av_inv_q(ost->frame_rate); av_reduce(&codec->time_base.num, &codec->time_base.den, codec->time_base.num, codec->time_base.den, INT_MAX); @@ -3281,7 +3281,7 @@ static int transcode_init(void) codec->time_base = (AVRational){ 1, codec->sample_rate }; break; case AVMEDIA_TYPE_VIDEO: - codec->time_base = (AVRational){ost->frame_rate.den, ost->frame_rate.num}; + codec->time_base = av_inv_q(ost->frame_rate); if (ost->filter && !(codec->time_base.num && codec->time_base.den)) codec->time_base = ost->filter->filter->inputs[0]->time_base; if ( av_q2d(codec->time_base) < 0.001 && video_sync_method != VSYNC_PASSTHROUGH diff --git a/libavdevice/fbdev.c b/libavdevice/fbdev.c index 93f7ce3763..6d6bff5d0a 100644 --- a/libavdevice/fbdev.c +++ b/libavdevice/fbdev.c @@ -164,7 +164,7 @@ static av_cold int fbdev_read_header(AVFormatContext *avctx) st->codec->width = fbdev->width; st->codec->height = fbdev->height; st->codec->pix_fmt = pix_fmt; - st->codec->time_base = (AVRational){fbdev->framerate_q.den, fbdev->framerate_q.num}; + st->codec->time_base = av_inv_q(fbdev->framerate_q); st->codec->bit_rate = fbdev->width * fbdev->height * fbdev->bytes_per_pixel * av_q2d(fbdev->framerate_q) * 8; diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c index d8e32cec41..2809c56702 100644 --- a/libavdevice/vfwcap.c +++ b/libavdevice/vfwcap.c @@ -372,7 +372,7 @@ static int vfw_read_header(AVFormatContext *s) goto fail; codec = st->codec; - codec->time_base = (AVRational){framerate_q.den, framerate_q.num}; + codec->time_base = av_inv_q(framerate_q); codec->codec_type = AVMEDIA_TYPE_VIDEO; codec->width = bi->bmiHeader.biWidth; codec->height = bi->bmiHeader.biHeight; diff --git a/libavdevice/x11grab.c b/libavdevice/x11grab.c index 6202bbc3f4..566889cb16 100644 --- a/libavdevice/x11grab.c +++ b/libavdevice/x11grab.c @@ -302,7 +302,7 @@ x11grab_read_header(AVFormatContext *s1) x11grab->frame_size = x11grab->width * x11grab->height * image->bits_per_pixel/8; x11grab->dpy = dpy; - x11grab->time_base = (AVRational){framerate.den, framerate.num}; + x11grab->time_base = av_inv_q(framerate); x11grab->time_frame = av_gettime() / av_q2d(x11grab->time_base); x11grab->x_off = x_off; x11grab->y_off = y_off; diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c index 3fdac4f267..09b7393fe2 100644 --- a/libavfilter/vf_fps.c +++ b/libavfilter/vf_fps.c @@ -114,7 +114,7 @@ static int config_props(AVFilterLink* link) { FPSContext *s = link->src->priv; - link->time_base = (AVRational){ s->framerate.den, s->framerate.num }; + link->time_base = av_inv_q(s->framerate); link->frame_rate= s->framerate; link->w = link->src->inputs[0]->w; link->h = link->src->inputs[0]->h; diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index 7c54ab6a97..3d51c70a64 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -440,7 +440,7 @@ static int ea_read_header(AVFormatContext *s) if (ea->time_base.num) avpriv_set_pts_info(st, 64, 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}; + st->avg_frame_rate = av_inv_q(ea->time_base); } if (ea->audio_codec) { diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 987f27022b..11283b098e 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -1706,7 +1706,7 @@ static int mxf_write_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "unsupported video frame rate\n"); return -1; } - rate = (AVRational){mxf->time_base.den, mxf->time_base.num}; + rate = av_inv_q(mxf->time_base); avpriv_set_pts_info(st, 64, mxf->time_base.num, mxf->time_base.den); if (!tcr) tcr = av_dict_get(st->metadata, "timecode", NULL, 0); diff --git a/libavformat/r3d.c b/libavformat/r3d.c index bd456baaab..f95f940dd7 100644 --- a/libavformat/r3d.c +++ b/libavformat/r3d.c @@ -141,8 +141,7 @@ static int r3d_read_rdvo(AVFormatContext *s, Atom *atom) if (st->avg_frame_rate.num) st->duration = av_rescale_q(r3d->video_offsets_count, - (AVRational){st->avg_frame_rate.den, - st->avg_frame_rate.num}, + av_inv_q(st->avg_frame_rate), st->time_base); av_dlog(s, "duration %"PRId64"\n", st->duration); @@ -370,7 +369,7 @@ static int r3d_seek(AVFormatContext *s, int stream_index, int64_t sample_time, i return -1; frame_num = av_rescale_q(sample_time, st->time_base, - (AVRational){st->avg_frame_rate.den, st->avg_frame_rate.num}); + av_inv_q(st->avg_frame_rate)); 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 1f28ffbeea..25d17b6c1e 100644 --- a/libavformat/rawdec.c +++ b/libavformat/rawdec.c @@ -165,7 +165,7 @@ int ff_raw_video_read_header(AVFormatContext *s) goto fail; } - st->codec->time_base = (AVRational){framerate.den, framerate.num}; + st->codec->time_base = av_inv_q(framerate); avpriv_set_pts_info(st, 64, 1, 1200000); fail: diff --git a/libavformat/utils.c b/libavformat/utils.c index af2575aa51..a8fbbe1ac6 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2670,7 +2670,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) if (st->time_base.den > 0) t = av_rescale_q(st->info->codec_info_duration, st->time_base, AV_TIME_BASE_Q); if (st->avg_frame_rate.num > 0) - t = FFMAX(t, av_rescale_q(st->codec_info_nb_frames, (AVRational){st->avg_frame_rate.den, st->avg_frame_rate.num}, AV_TIME_BASE_Q)); + t = FFMAX(t, av_rescale_q(st->codec_info_nb_frames, av_inv_q(st->avg_frame_rate), AV_TIME_BASE_Q)); if (t >= ic->max_analyze_duration) { av_log(ic, AV_LOG_WARNING, "max_analyze_duration %d reached at %"PRId64"\n", ic->max_analyze_duration, t);