From patchwork Fri Sep 27 01:44:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 51886 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:d8ca:0:b0:48e:c0f8:d0de with SMTP id dy10csp789275vqb; Fri, 27 Sep 2024 20:31:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXjpIuq1RQEyuPtWZR6zeJHCg8a/L8JFl43VUgFezEq7XDAktbLfsnGm5rxfc/P+n3GZ4UCZI2/VEJRTsNbthJN@gmail.com X-Google-Smtp-Source: AGHT+IHDhw9uaZ2cmQgBXXcUEwcpQMRvmhoRvx3jkQHvtb3W32xvDjnQ3cd9UsFcQ9zs4nHMFCuB X-Received: by 2002:a05:6402:4009:b0:5c5:c2a7:d535 with SMTP id 4fb4d7f45d1cf-5c88248325fmr6081998a12.16.1727494272998; Fri, 27 Sep 2024 20:31:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727494272; cv=none; d=google.com; s=arc-20240605; b=RJUhGIcLf+Ux3f6y71QvNFsBPsS98s3mXPyyyL9O7a0B5Kr0EqCgukXbqXFeB0V05L pPRrMLDHcS8E3XBjQlPpF7tlqirewcf303436i76Ayzc1DKH3Qk58kbtcwWV2o1gGDYa EgKjlDA2tz6QkBAYxq+DgH+iSZ7silcQpKN4XWAqiECLr39fvx0ugLmn2F3BmKghksmy ASCtLz9+FWdWN6wkMYoAZiesuPAb95Wagiy9Yk/QoyFC1Ec9Vz3hzpiAk5Yf4ox1v3o9 YjrejO8guJ0tGK3tOcdKmxI+mOppzWYtf5tpmEn9QtFM2ANS+mSy9/7aMZBi9NIN/5jZ 2ndQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=ZM2O+EN0Jv+XpPaFlDbCDRHM8rw1Ld8IFvh8BcBXRfs=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=kP+f8obxaN6b9mGOZdlT0sWfTwKnH6Hn52f2OHv1QzeyXxHGOFPYcc3tZ6dkw4YQLd VmfwUi+Mh7+kygSL6Rsy6uD2Zg+gEPOIy9+Ny7nxOb5qckaguyf4XNqSmTROVDKY1bvl Bpli6tqr2m2qO8UB97xy39r0rRMvYQUSpNPy2EXAQVVBm5A4ymyfvhaKniyg/L3hPmKU k50NIGeuALHrCGO6gkPW7CQ+tKQJPyjY9pz5Mx7y0+ha8hybnrhPlkZ3H19PPu93sjNT Yhv0fOA/AQCRDL8spq5G2EqAWobsu1Un4vAkg6eaLY6CmQGYcN1YGQed6BS4r7nXRdbo Ddnw==; 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=fDfB7NXU; 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 4fb4d7f45d1cf-5c88249c016si2460871a12.418.2024.09.27.20.31.12; Fri, 27 Sep 2024 20:31: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=fDfB7NXU; 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 870C768DA9B; Fri, 27 Sep 2024 04:44:30 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ECAD868DAEC for ; Fri, 27 Sep 2024 04:44:22 +0300 (EEST) Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-718d606726cso1186111b3a.3 for ; Thu, 26 Sep 2024 18:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727401461; x=1728006261; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=nkK8ACmBL6X3Ev//HxmawDcjwXAEm0CJV27B8N4LxBM=; b=fDfB7NXUy6SeEC3UMU2SIpt6UZW/gKIEnr1sPfpu76Y6a217rm0Vlu9q19gqvuJzIn kPSLbWwXa+Jbl6x+0aAsX2gXk9lstMhDNGtWmg5aWITD2CIek3Pc3LJAMAHS972uWjPe ETD96b+OZ+mLMVlLtGt0aPZeo/gYUOnQUBVAMwAfwqoR2A1Wh/8N0Fu/dBLoiGbN1/Rt ffQugiKTbQa5tY1zWBGuBagdXAmvp4L3IMpP5QOLhXUUMil4EDnFjrytW9CkOdfOE4Ot LG1C9XKqgtgrVQFgCeAMLPWc+a0qntX+GK6fRjTPQo07JEhWQjvJv2cZjLr8aS2yCK7+ 0bAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727401461; x=1728006261; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nkK8ACmBL6X3Ev//HxmawDcjwXAEm0CJV27B8N4LxBM=; b=Cm/5CRqnVJrvi5W8D2mVQEq5sX+hkyxMXRwqTpXgIFmHSxtVHEAbycd7lLfJ8kR6Ly HA+GRtiQIzzwDGKNJ6De3dPMFjXUezdXjT3C8AalTx9ianN+8JnVHUxImGgEjlF3xayj 4p7pRtVz8cEdRU2OuH3Pvg0dz/KRoMzzdWD78QPg5uy8D98xX20p7MKU24y6BkpXV7df uAyeswKaqPQ2ZojD2Zyqlc0w8KpH+C9Fra5DC3Y8qj5PVPdR/LpmnvK1LuGOEprVVfGE H65xrzVJf7BXW/bxSR2kYiGz60yBV67elh80P8cVTKS6zuf2Ql/w+h9WZ5BnYQpO1E8D rP0Q== X-Gm-Message-State: AOJu0YzICuhzg2BEWFA8mDzeha2YzuMJjnfSuQYnTer1qPm+y0dEbOtb RuvmiundOIopim2Go6wTwoRwc1iNiWqmV8NnDC5wSSKQqU4pgUacrXKHmw== X-Received: by 2002:a05:6a00:988:b0:710:6f54:bc9c with SMTP id d2e1a72fcca58-71b25f237aemr2652903b3a.2.1727401460666; Thu, 26 Sep 2024 18:44:20 -0700 (PDT) Received: from localhost.localdomain ([181.92.233.116]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71b2649c6a1sm541928b3a.44.2024.09.26.18.44.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Sep 2024 18:44:20 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 26 Sep 2024 22:44:36 -0300 Message-ID: <20240927014436.15622-5-jamrial@gmail.com> X-Mailer: git-send-email 2.46.1 In-Reply-To: <20240927014436.15622-1-jamrial@gmail.com> References: <20240927014436.15622-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] avformat/mov: use checked arithmetic functions in mov_read_stts() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: AFhgjAwmFYLK Signed-off-by: James Almer --- libavformat/mov.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index a2333ac1fd..bfb6d8d72c 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "libavutil/attributes.h" #include "libavutil/bprint.h" @@ -3521,15 +3522,15 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom) sc->stts_data[i].duration = 1; corrected_dts += (delta_magnitude < 0 ? (int64_t)delta_magnitude : 1) * sample_count; } else { - corrected_dts += sample_duration * (int64_t)sample_count; + ckd_add(&corrected_dts, sample_duration * (int64_t)sample_count, corrected_dts); } - current_dts += sc->stts_data[i].duration * (int64_t)sample_count; + ckd_add(¤t_dts, current_dts, sc->stts_data[i].duration * (int64_t)sample_count); if (current_dts > corrected_dts) { int64_t drift = (current_dts - corrected_dts)/FFMAX(sample_count, 1); uint32_t correction = (sc->stts_data[i].duration > drift) ? drift : sc->stts_data[i].duration - 1; - current_dts -= correction * (uint64_t)sample_count; + ckd_sub(¤t_dts, correction * (int64_t)sample_count, current_dts); sc->stts_data[i].duration -= correction; }