diff --git a/ffmpeg.c b/ffmpeg.c
index 2d979c9160ad2c79657867485e5965860ca9796f..ecf9aca7c42a58ad85857b088d7ca6ae63b4e569 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 93f7ce376395d1848e727664266a4ac7ff8a1f75..6d6bff5d0a267ed3dc396b65fe314b56a73c863a 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 d8e32cec414a12b6c62734224b4ab46ad5ae6829..2809c567029945754e609ec01118dcc8d973b4ec 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 6202bbc3f48c2a67c13f18fc0b5ab2f49917d7c1..566889cb1605f44b06d0ac666695b5b3f01cb91e 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 3fdac4f267d797a901f7f22b92f7398467a5d1d3..09b7393fe2fd428b4c71c424ae3028caf379a275 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 7c54ab6a9748f764f22589d30f635083e157bafb..3d51c70a6430a696d590c1c32dddfe3ad6e571de 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 987f27022bc9b85d02b13dee7e9f51b6e2aeb2ed..11283b098edfaf71a2ab20f5a45347d214d91798 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 bd456baaab586911cd6f07d68e5dac4694b39a70..f95f940dd7bb4430ee5a6501afa5eb1aeed953c9 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 1f28ffbeeaf575ff5863d930615eb25ca80aa259..25d17b6c1e32695a8cbadaee4334926a644756e5 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 af2575aa51b5425e895e6967c71a112f183ba69a..a8fbbe1ac60660facb8a8d6dfb8cf03d2aa9d303 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);