From patchwork Mon Sep 16 21:32:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?RmlsaXAgTWHFoWnEhw==?= X-Patchwork-Id: 51626 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9108:0:b0:48e:c0f8:d0de with SMTP id r8csp20712vqg; Mon, 16 Sep 2024 15:14:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUlS0wWXBF1Fw1uPP7J1Ty0X/SF44I97AUIKgFXozY6njY9cqhg/tYwQQs99c+pKQzcOUnvYo2ToNmy0yCTM4wK@gmail.com X-Google-Smtp-Source: AGHT+IGtGiOFbn7oTVqhNHu35l1D0X5uzb6XMGVMrLC7nukHtaP9Qmpi8/4ssOtUcmlcGF5uBdMS X-Received: by 2002:a05:6512:124b:b0:52e:fd7c:8b9b with SMTP id 2adb3069b0e04-53678fec3eamr2776112e87.7.1726524852621; Mon, 16 Sep 2024 15:14:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1726524852; cv=none; d=google.com; s=arc-20240605; b=gNC8goAr6fLFCnmDRCxDh1Wur3qA8Od87Jk8VmcIKQ7ESeZeYcdZy1d+NMwNPKCygS o9E3leMdNX57zMoHBqmf+OLAYfSgcQiJS45zC2/jfRgtF2qtcNvVY5QbXAq2u+B3fmDk ZaPU4RYLczIft9phzON5TZtsBL7BRbNIuF3bKSCP6z6Eny02HbXKSRy3KDcqj/RnwGt+ dFgc6Du87CJ6UgLlLkzoKFOETQETi7HHu+NaKGYt1h1up6Ef+XuT9s2J6qjQBFqKvyLu 3hhtDu+y0M6nXifmxAwVp/3akj767i562Q95EN0Itv1bq5UDasyxv20nagDL0PhyY+Wl AO+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=J4Gh6eAK2B8MrCrhOsLVH2iBOKz0mzf0OJVdS/IuPlY=; fh=vUG20E56bhII0xGyaMwCR+cO1JMOl7NOj4ka3/90tN8=; b=HzcVIgwJnQdfG0cKmKE4nV+frnMT65xTfP3aDv1SZoNhiGxsu62Ch04pUZgvcoysH4 5mPcqHbyP8q3H12U37EbJ8rxZcw+XGiDFqLlCFhCopUPfRXiZEFOxQAClfzx0xQ4+Pjc kIG8oJguCW9A+RLHtehiA05Wh2RSdfT/0nL+tegSiwqsUpMnv1cT2zuLzxc+zxx2fk8T hC+aQWcQssj2I7lrP8dpz1wEjFB3MC9z5VtuVJpZK9Z2nEqy+pNGMKU60yexdisDiUbh M37rQQMgZB+bZsLAOc6O3QmwFiUTPHf4bpwM0fRLPQv2wvBvNnB36tGsdX3Wo9us2npG +1bg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=kQw4gunn; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 2adb3069b0e04-536870bee61si2093999e87.645.2024.09.16.15.14.12; Mon, 16 Sep 2024 15:14:12 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=kQw4gunn; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A2BBF68DA19; Tue, 17 Sep 2024 00:35:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F288F68DB6A for ; Tue, 17 Sep 2024 00:35:26 +0300 (EEST) Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-374bd059b12so2323892f8f.1 for ; Mon, 16 Sep 2024 14:35:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726522525; x=1727127325; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=spH15YBGl0DFjzs/u51qD7DlNckVWk0VqD84iuS+wPA=; b=kQw4gunno+n2ro9EkWPTFaYCcyua7JIlvJlHgQSM0Drlq435DGkEDhZsqoKWXW0nnJ 1YIont5yoVCgZ5wRsILnjILK+YuoTwwzibX59PUF+Lsn/jiKI2dott/Uh+C8tUJW4ArN k9GvihpzLIGEvAook9wklYZTrQSsiW10evMECYzWBQZrFfbkUrK0bgAT5mTO78l8ZAGj j9xTZ7SoJ2XETeB5fJdRbCzMAvQfvDL7NRcucJeEwxuFczQm/of+CHGoJS191Z6B12Ft zkahMquqQIUne0NbRbzUlrABqmdiF5865moSjB8uuPEpsyr2To5u2fNzjQiZyrTq1ieB b5FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726522525; x=1727127325; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=spH15YBGl0DFjzs/u51qD7DlNckVWk0VqD84iuS+wPA=; b=e/q4jjs+DQqDdBahq8Uc0zHfhvxDD+A6O2PNyoogYgRsnhNJsUr/nifY+FPtw3EEtD P4X4/jG0zneB7e4HJEhHkZMf3FpILltxlhV6Q5hAl/Gh8zHt9Dap+qnXgQOZ3tsnrX/t h1v34QvM7yqTbX6pqExL5/wKyGEabIoVmC7Ad4mHcJkW6qJlibPmDU0Cy1MR6cghemPU OV5uw4bhdE7CBMQOilXGbmhIF5Lxs1J10ofNRYGT/v3Z9QgUwq7NJURegMJrD8znEnoZ BBkuOuZbf8wqhJ4QCVArV9+lvyjsaAThJdS2e+iZ3JQslhnUULGPlYkY5nA7R1YXiSzD 6VDA== X-Gm-Message-State: AOJu0YwU35ee8oqbOoDGKmTDDSJlye86hc4KInVrxrEQKaYthczNW6IN O23mVRK7/uuAreN3gH3ahA5+JLN4Yow/s9AsvR1oWs7y3Ah8mJpU7uBbnA== X-Received: by 2002:adf:ea46:0:b0:374:c712:507a with SMTP id ffacd0b85a97d-378d61f125fmr6458075f8f.32.1726522524783; Mon, 16 Sep 2024 14:35:24 -0700 (PDT) Received: from localhost.localdomain ([2a02:6b6f:f685:d300:49f8:c711:61f8:d69e]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42da22b8b0asm87432615e9.5.2024.09.16.14.35.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Sep 2024 14:35:24 -0700 (PDT) From: =?utf-8?b?RmlsaXAgTWHFoWnEhw==?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 16 Sep 2024 22:32:00 +0100 Message-ID: <20240916213452.1756-1-shoutplenty@gmail.com> X-Mailer: git-send-email 2.46.0.windows.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/utils: added av_get_frame_filename3() (changed parameter int -> int64_t) X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Cc: =?utf-8?b?RmlsaXAgTWHFoWnEhw==?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 31rkrgaAZlWf fix for ticket 11194 (frame_pts codepath requires a larger integer capacity for normal workloads) Signed-off-by: Filip Mašić --- libavformat/avformat.h | 5 ++++- libavformat/img2enc.c | 6 ++---- libavformat/utils.c | 12 +++++++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 4a3fb00529..8a5cfa0582 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -2906,10 +2906,13 @@ void av_dump_format(AVFormatContext *ic, * @param buf destination buffer * @param buf_size destination buffer size * @param path numbered sequence string - * @param number frame number + * @param number frame number (or pts if frame_pts option passed) * @param flags AV_FRAME_FILENAME_FLAGS_* * @return 0 if OK, -1 on format error */ +int av_get_frame_filename3(char *buf, int buf_size, + const char *path, int64_t number, int flags); + int av_get_frame_filename2(char *buf, int buf_size, const char *path, int number, int flags); diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 526a11e5ee..460e6a38bd 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -160,13 +160,11 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR(EINVAL); } } else if (img->frame_pts) { - if (av_get_frame_filename2(filename, sizeof(filename), s->url, pkt->pts, AV_FRAME_FILENAME_FLAGS_MULTIPLE) < 0) { + if (av_get_frame_filename3(filename, sizeof(filename), s->url, pkt->pts, AV_FRAME_FILENAME_FLAGS_MULTIPLE) < 0) { av_log(s, AV_LOG_ERROR, "Cannot write filename by pts of the frames."); return AVERROR(EINVAL); } - } else if (av_get_frame_filename2(filename, sizeof(filename), s->url, - img->img_number, - AV_FRAME_FILENAME_FLAGS_MULTIPLE) < 0) { + } else if (av_get_frame_filename3(filename, sizeof(filename), s->url, img->img_number, AV_FRAME_FILENAME_FLAGS_MULTIPLE) < 0) { if (img->img_number == img->start_img_number) { av_log(s, AV_LOG_WARNING, "The specified filename '%s' does not contain an image sequence pattern or a pattern is invalid.\n", s->url); av_log(s, AV_LOG_WARNING, diff --git a/libavformat/utils.c b/libavformat/utils.c index e9ded627ad..36017805a0 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include "config.h" @@ -280,7 +281,7 @@ uint64_t ff_parse_ntp_time(uint64_t ntp_ts) return (sec * 1000000) + usec; } -int av_get_frame_filename2(char *buf, int buf_size, const char *path, int number, int flags) +int av_get_frame_filename3(char *buf, int buf_size, const char *path, int64_t number, int flags) { const char *p; char *q, buf1[20], c; @@ -313,7 +314,7 @@ int av_get_frame_filename2(char *buf, int buf_size, const char *path, int number percentd_found = 1; if (number < 0) nd += 1; - snprintf(buf1, sizeof(buf1), "%0*d", nd, number); + snprintf(buf1, sizeof(buf1), "%0*"PRId64, nd, number); len = strlen(buf1); if ((q - buf + len) > buf_size - 1) goto fail; @@ -338,9 +339,14 @@ fail: return -1; } +int av_get_frame_filename2(char *buf, int buf_size, const char *path, int number, int flags) +{ + return av_get_frame_filename3(buf, buf_size, path, (int64_t)number, flags); +} + int av_get_frame_filename(char *buf, int buf_size, const char *path, int number) { - return av_get_frame_filename2(buf, buf_size, path, number, 0); + return av_get_frame_filename3(buf, buf_size, path, (int64_t)number, 0); } void av_url_split(char *proto, int proto_size,