diff mbox

[FFmpeg-devel] ffmpeg.c: fix calculation of input file duration in seek_to_start()

Message ID 20171029110805.8193-1-pegro@friiks.de
State Accepted
Commit 3ddb887c88483ce089b29a30d0d0aa574c8cdc66
Headers show

Commit Message

Peter Große Oct. 29, 2017, 11:08 a.m. UTC
Fixes looping files without audio or when using stream_copy, where
ist->nb_samples is not set since no decoding is done.

This fixes ticket #5719 and also fixes an endless loop with the sample
in ticket #6139.

Signed-off-by: Peter Große <pegro@friiks.de>
---
 fftools/ffmpeg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Moritz Barsnick Oct. 29, 2017, 1:56 p.m. UTC | #1
On Sun, Oct 29, 2017 at 12:08:05 +0100, Peter Große wrote:
>              } else duration = 1;

For style/readability, the statement should be on a new line, perhaps
even with brackets. (Not necessarily as part of this patch though.)

Moritz
diff mbox

Patch

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index cabc6864e7..17b594bac8 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -4144,9 +4144,9 @@  static int seek_to_start(InputFile *ifile, AVFormatContext *is)
                 continue;
         } else {
             if (ist->framerate.num) {
-                duration = av_rescale_q(1, ist->framerate, ist->st->time_base);
+                duration = av_rescale_q(1, av_inv_q(ist->framerate), ist->st->time_base);
             } else if (ist->st->avg_frame_rate.num) {
-                duration = av_rescale_q(1, ist->st->avg_frame_rate, ist->st->time_base);
+                duration = av_rescale_q(1, av_inv_q(ist->st->avg_frame_rate), ist->st->time_base);
             } else duration = 1;
         }
         if (!ifile->duration)