From patchwork Fri Mar 24 21:50:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 40811 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp949814pzb; Fri, 24 Mar 2023 14:50:48 -0700 (PDT) X-Google-Smtp-Source: AKy350YZEr8V0P0yCW6ZYec7gP72fdVOuOMO7iUOK7wQ5I3B8ZpFPv1JxInG779n2LVqyHh1U+zZ X-Received: by 2002:a05:6402:4402:b0:502:367:d5b8 with SMTP id y2-20020a056402440200b005020367d5b8mr5488502eda.4.1679694648779; Fri, 24 Mar 2023 14:50:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679694648; cv=none; d=google.com; s=arc-20160816; b=I+kuw7pVyy5VMdSX9mSrbxIQrnMUdWqpp2POepD23XiyEg1FM6I3uqIs2E6y2PftmJ U6IDhvP1dQYAtPN1BoiqPBkEabuzx63gjIf1n22NGsiAq9elINha9qF+ih8ELZrzIZuf 3ghj8p/R5k+XwrGCJ97YVYnUdbSkUUKRaAdakrl+HF4Tk8lMtcF2t1wu0Mk5uLnarS7Z VbAxAnBm2tBYqHhlpMzeSEvimcsZJUKrFKrRTCsWTR5K/K+s52xuuFutGwi0EP/LmXg6 0OUA/sIPNdhSlLPM0TL/0ILya58P7+terfj06KdimPA/Unjn5g+Ev380XdupY4LkqOOG jwMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; 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:message-id:date:to:from :dkim-signature:delivered-to; bh=/serPnOmF6qy3Rw/qtjai5LIRmaIYqnSPlcWEYPLWss=; b=bCWkVwlJV3kM/EGnFheAFEEQ93zYBNogTH/+x79n1bqJ/Wz+tJByExOV4uWR22QQk3 s+nnj1uMAV7dQKn6Zh7Za6q1KJbmaLxprj3/qO5Hi4HZ5qYHL3xRcwdliRIpDRAKlfn0 6gtlguQ5zP9WlQidUR+QFBDNEexvC8ctz6soTeBaOpEieDKdDyYHfABwsSrfYjAtckyB uhKbJMqRTSCMfGDaUigHHNfGrYFoKOWlwyY4gX5LooP6QySqiFYAywAoVOtj1/6S7QSQ P0YhUrEjudK5gEJ23kRUUEXdyWMVLkUf3zG3P7/+OuTONsPQ7Tol1B30TB/UcSkL+W8f n06Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=oUGECbth; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e16-20020aa7d7d0000000b00501db4ea3e9si10826986eds.173.2023.03.24.14.50.48; Fri, 24 Mar 2023 14:50:48 -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=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=oUGECbth; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B015A68C8AD; Fri, 24 Mar 2023 23:50:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9FB0C68C80F for ; Fri, 24 Mar 2023 23:50:39 +0200 (EET) Received: by mail-lj1-f169.google.com with SMTP id z42so3085844ljq.13 for ; Fri, 24 Mar 2023 14:50:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; t=1679694639; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=M4Y9lQw+5ze5Bdy/AKQJ/rEWrpnXguYVrIRGg4r8DHs=; b=oUGECbth68PVc+UETJag31Oamakg1DPwl6SoSu5Ch6sjZZpdw57NbLDtdAdPvMKI8m khKZ2lbXkNqj8Xg7d5UPJ+7u924/9C8lvlV+UrQBa8nSFJzY95NQ8iHBmHYHEtp1bKb/ 1d6KYf/VzJIXn/wKSkzqq8KcMQmOFyZmePlz5blG9QRQzUpwiGS0/7tx9HBOtcajo40t 2OHBE/ve2GhOlZl5SzXZ+DT0MBcX8HycqT81WCMptuxZi7gI1VQbrXc/efeQDmhsfTFA l4cNg/AxCqMeRu5+s5v2BhkVCk4zL9WisvDSGYrIfZlzkdJI0ucqio9hoFDGUegZx2rk ij8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679694639; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=M4Y9lQw+5ze5Bdy/AKQJ/rEWrpnXguYVrIRGg4r8DHs=; b=tky6wMWVBXPp4lWPB//eeqr0VPfCBFO/HdoteHPTectM3+f82VLoDNZuslOvhsIsoO RV83oDBt1lV2eR+75KjIsj2pZVGU3DSoePeaTGTxG9IXEHDQrIxgJwk/VNpXzGI+14sy nRVq5uhIFMmzEsWWnGTa5VZDxhUEGdqlTWgJWNxdUqpSH9tr7/F77bmMjRsKfMjuTkDH 8LhyDHEZhNDnbNM5uXjMX7y20pxeIbCzZ4OWVsDkXemUj14Rr3WbOML5yw5RPZ8mCIro QSNVqhy+cygxV0Vbe7sFqUko+cyUHanuLNAX9poHaYnhUW5B2uFItYyxgYYTIVItKYmc jyQg== X-Gm-Message-State: AAQBX9dppnV+1S7Zj3ktZqRo2RnjeitG3U75IuhbdHBcEtD1F4g81Fuc CO4+sBr35Cblv+BjuITNraAMcF7Bn4KpAQS8JJ3Aqg== X-Received: by 2002:a2e:3816:0:b0:299:d0b5:cdcd with SMTP id f22-20020a2e3816000000b00299d0b5cdcdmr1381851lja.35.1679694638766; Fri, 24 Mar 2023 14:50:38 -0700 (PDT) Received: from localhost (host-97-187.parnet.fi. [77.234.97.187]) by smtp.gmail.com with ESMTPSA id r2-20020a2eb602000000b0029a1ccdc560sm3593046ljn.118.2023.03.24.14.50.38 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 24 Mar 2023 14:50:38 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 23:50:37 +0200 Message-Id: <20230324215037.48396-1-martin@martin.st> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] libavformat: Account for negative position differences in ff_configure_buffers_for_index 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: vbgTB5ld6bdR When scanning through the index, account for the fact that the compared samples may be located in an unexpected order in the file; this function is mainly interested in the absolute difference between file locations. Signed-off-by: Martin Storsjö --- v2: Use FFABS instead of llabs, avoid expanding the abs() operation twice in the FFMAX arguments. --- libavformat/seek.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/seek.c b/libavformat/seek.c index 818549dfef..23fbcb8d84 100644 --- a/libavformat/seek.c +++ b/libavformat/seek.c @@ -210,7 +210,8 @@ void ff_configure_buffers_for_index(AVFormatContext *s, int64_t time_tolerance) int64_t e2_pts = av_rescale_q(e2->timestamp, st2->time_base, AV_TIME_BASE_Q); if (e2_pts < e1_pts || e2_pts - (uint64_t)e1_pts < time_tolerance) continue; - pos_delta = FFMAX(pos_delta, e1->pos - e2->pos); + int64_t cur_delta = FFABS(e1->pos - e2->pos); + pos_delta = FFMAX(pos_delta, cur_delta); break; } }