From patchwork Sat May 16 14:14:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 19711 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 888A544BA2D for ; Sat, 16 May 2020 17:21:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 65A4E68824C; Sat, 16 May 2020 17:21:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 650C8687F2C for ; Sat, 16 May 2020 17:21:13 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id l18so6689100wrn.6 for ; Sat, 16 May 2020 07:21:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=gtyJvnCfNPqyVDfrQK4lkYPywDxrWJ/Xf+qjAroHUbM=; b=BYMydos4Ri7H4APrAzA0HLRjiYhlIsH9tjYxOM7jrvIeJcIZ7qiTY1oVQRAikxPAQw sfbIp+hTJVDhdrd4xXO5geLk9VRKOjZ9sr5klEhUVbQHshOb2nbZn0JX3E/Ljp0T07xB gxkI5kvdrMAzk+YNAsoB7fp40lWPV9Eb39+A1W5BQ2DLyC/q0MgqyjUDNXb8ASHtgReo In7a8N2HXO1qsDn8IadXbJg7OW7VVqCaEHmFR3VkccskwljNQqRH2amo7RmRgiTb4SKw 1Ou4FfPS4j08dkXq40pOFbunLaAzOF1wnUcr1bhy48th9yHkPubiJHIn6O0TvZWDrgvW foDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=gtyJvnCfNPqyVDfrQK4lkYPywDxrWJ/Xf+qjAroHUbM=; b=GGHvWYdjQb1FgusRjE6jkmb0AOUpgskhdHDQsvzi+2NlcRTiLv7La7hAV1MANHIc1/ 1zx1cnfcyDdjuRn86Udvq/j+cWT3Vg6Gkhxo+WnYWp6umXzx0DBGy7j6gOL31k01ZR5v wg4th85NhESe9O3gBjUkPxfpzlNDalzHCoHqHHMMCLbhoJbyHqcmMBrK24uGeCIJj3pA Vt7zpdyab70J5TKoQMMAXm8bARKE+v0MgxRAdNCx5i2dmwaIdbYL2F9yMaFpI8Z9KqDF +BsLgOprWqfodxiEYouz/GHbopAdrv7kwl7AVZncz/AN3Fgap+DerdZK4AUn0mHZLook wL/w== X-Gm-Message-State: AOAM532vEEDz0KJooUkVAKvEIFu/FjprStbsNoKW/QnH9sBsho/2fdPJ mCjCk9zR8JdHje1pLtppTrLmGMwC X-Google-Smtp-Source: ABdhPJyn1icUAHgyUGO2GHyTehP2LxMAkhhOD0DAqdS2gjei2oYIzAwV6eyWLsK5vAuBdPNMdhvSWQ== X-Received: by 2002:a5d:46c6:: with SMTP id g6mr10124833wrs.139.1589638486334; Sat, 16 May 2020 07:14:46 -0700 (PDT) Received: from localhost.localdomain ([82.129.83.65]) by smtp.gmail.com with ESMTPSA id i4sm3467327wrv.23.2020.05.16.07.14.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 May 2020 07:14:45 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Sat, 16 May 2020 15:14:37 +0100 Message-Id: <20200516141437.485459-1-derek.buitenhuis@gmail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/dump: Use int64_t for intermediate time values X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Prevents wrap-around to negative values while calculating the duration string. Before: Duration: -411422:-59:-42.17, start: 0.000000, bitrate: 0 kb/s After: Duration: 781623:28:34.17, start: 0.000000, bitrate: 0 kb/s Signed-off-by: Derek Buitenhuis --- Minimal example file: http://chromashift.org/s/long3.mp4` --- libavformat/dump.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/dump.c b/libavformat/dump.c index 5e9a03185f..06bafc272d 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -615,7 +615,7 @@ void av_dump_format(AVFormatContext *ic, int index, if (!is_output) { av_log(NULL, AV_LOG_INFO, " Duration: "); if (ic->duration != AV_NOPTS_VALUE) { - int hours, mins, secs, us; + int64_t hours, mins, secs, us; int64_t duration = ic->duration + (ic->duration <= INT64_MAX - 5000 ? 5000 : 0); secs = duration / AV_TIME_BASE; us = duration % AV_TIME_BASE; @@ -623,7 +623,7 @@ void av_dump_format(AVFormatContext *ic, int index, secs %= 60; hours = mins / 60; mins %= 60; - av_log(NULL, AV_LOG_INFO, "%02d:%02d:%02d.%02d", hours, mins, secs, + av_log(NULL, AV_LOG_INFO, "%02"PRId64":%02"PRId64":%02"PRId64".%02"PRId64"", hours, mins, secs, (100 * us) / AV_TIME_BASE); } else { av_log(NULL, AV_LOG_INFO, "N/A");