This allows simplifying a few expressions.

Signed-off-by: Mans Rullgard <m...@mansr.com>
---
 avconv.c             |  6 ++----
 libavutil/rational.h | 11 +++++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/avconv.c b/avconv.c
index 07de66e..b20dbec 100644
--- a/avconv.c
+++ b/avconv.c
@@ -797,8 +797,7 @@ static int configure_input_video_filter(FilterGraph *fg, 
InputFilter *ifilter,
     AVFilterContext *first_filter = in->filter_ctx;
     AVFilter *filter = avfilter_get_by_name("buffer");
     InputStream *ist = ifilter->ist;
-    AVRational tb = ist->framerate.num ? (AVRational){ist->framerate.den,
-                                                      ist->framerate.num} :
+    AVRational tb = ist->framerate.num ? av_inv_q(ist->framerate) :
                                          ist->st->time_base;
     AVRational sar;
     char args[255], name[255];
@@ -2197,8 +2196,7 @@ static int output_packet(InputStream *ist, const AVPacket 
*pkt)
             if (avpkt.duration)
                 ist->next_dts += av_rescale_q(avpkt.duration, 
ist->st->time_base, AV_TIME_BASE_Q);
             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},
+                ist->next_dts += av_rescale_q(1, 
av_inv_q(ist->st->avg_frame_rate),
                                               AV_TIME_BASE_Q);
             else if (ist->st->codec->time_base.num != 0) {
                 int ticks      = ist->st->parser ? 
ist->st->parser->repeat_pict + 1 :
diff --git a/libavutil/rational.h b/libavutil/rational.h
index 0ec18ec..5d7dab7 100644
--- a/libavutil/rational.h
+++ b/libavutil/rational.h
@@ -115,6 +115,17 @@ AVRational av_add_q(AVRational b, AVRational c) av_const;
 AVRational av_sub_q(AVRational b, AVRational c) av_const;
 
 /**
+ * Invert a rational.
+ * @param q value
+ * @return 1 / q
+ */
+static av_always_inline AVRational av_inv_q(AVRational q)
+{
+    AVRational r = { q.den, q.num };
+    return r;
+}
+
+/**
  * Convert a double precision floating point number to a rational.
  * inf is expressed as {1,0} or {-1,0} depending on the sign.
  *
-- 
1.7.11.1

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to