On 27.02.2018 01:12, Michael Niedermayer wrote:
On Mon, Feb 26, 2018 at 05:09:04PM +0100, Tobias Rapp wrote:
Move time string formatting into inline function. Also fixes out_time
sign prefix for progress report.

Signed-off-by: Tobias Rapp <t.r...@noa-archive.com>
---
  fftools/ffmpeg.c | 48 +++++++++++++++++++++++++++++++-----------------
  1 file changed, 31 insertions(+), 17 deletions(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 32caa4b..0097a7d 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -1518,6 +1518,27 @@ static int reap_filters(int flush)
      return 0;
  }
+static inline char *pts_to_hms_str(char *buf, int64_t pts, unsigned int digits)

char buf[AV_TS_MAX_STRING_SIZE]

or the buf size should be passed too, in fact this might be better anyway

Will change.

+{
+    const char *hours_sign;
+    int hours, mins;
+    double secs;
+
+    if (pts == AV_NOPTS_VALUE) {
+        snprintf(buf, AV_TS_MAX_STRING_SIZE, "N/A");
+    } else {
+        hours_sign = (pts < 0) ? "-" : "";
+        secs = (double)FFABS(pts) / AV_TIME_BASE;
+        mins = (int)secs / 60;
+        secs = secs - mins * 60;
+        hours = mins / 60;
+        mins %= 60;

This is not the same code, also with double it can produce inexact
results and results differing between platforms

I changed secs to double to handle the cases with different number of sub-second digits more easily. Would it be OK to output two digits after the decimal point in both cases? The progress report contains the precise out_time_ms value anyway.

Regards,
Tobias

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to