From patchwork Sun Jan 10 08:57:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 24882 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 D158744A992 for ; Sun, 10 Jan 2021 10:57:47 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A33BB68A9C9; Sun, 10 Jan 2021 10:57:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C8456802C1 for ; Sun, 10 Jan 2021 10:57:39 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1610269053; bh=noGFWYnPwDxFbd7BUkMr3RO+b2qot4bFxtfOSD4gVMc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=KL25oACqeyzPFoWCg65j7LFwlBPow0HfEzfzwtduPkIeOKQKUhlujdDzi/3h5HZe9 gC/EfnrTOtIB7ngQG46kHYNAP2CBhCmPWL8nCAd6/84cMAjuBd8P2FdwCnLwx1I0ZD CRR7XR7QB/c1ONVJZC2NQESBwvcstOJermEzFW+8= Received: from ZHILIZHAO-MB2.tencent.com ([27.46.106.102]) by newxmesmtplogicsvrszc5.qq.com (NewEsmtp) with SMTP id E5F036CD; Sun, 10 Jan 2021 16:57:31 +0800 X-QQ-mid: xmsmtpt1610269051ta0nx24by Message-ID: X-QQ-XMAILINFO: MRR5Jod2qmrXLNSAxgLrUcSJzSztTuzrwEl7/OIgibQuwHPZNnkXMua9vGoRTG AfTMfXl/N89PH6T0BKlU1Tui+TNWMuy9nlS/olwKJnWCZ6pZ9XptXX1lgdI2AqJKPDbGKhtdRvAC jeVBJV/HAx55DPqT6eASEClJjnazse1Kna0rffxC9cFB4qkMJX+73vWV3lA36ydxco2A91/jqTIN etp/PY4w/0Dp+NAkVj5WzXn1vsCc92sRPVLb/M6FTKfLxwhrC/fXSM3lBOESOXAsvYr4/Jv26QsR 2EQ6XtaUSdquGzJFcBjTGvZwEVEZv8gGANmB4LdK8TM5ctYegZqR74oLEMN6UFl0hY9HrTqSoU10 64RLM9Sm5FXLrekXor7Oopuq3Q2knFXL8KdGsNvNepeKcg4KUc023fkGyYujvzMELM4Ac+/luKrC fjBym7S/d+FXRGdASYzE4YPoc4DKLCQeHNVy7X60a0yJe4WvJ9zA2NEer6B3YjpNo46+s/OzgYtX w/Y3o8WIJo9mzZPihxgZFe/2Egey+513aTQIYTU62XAZjst8g7PNG3Ut2jL3/x6rUidmPA0ku5g8 kKCwayugaA0+n58LsIJdG5lcySUp8s+OS4hGQT6zZlhR/SQaSTgZ5Lax6X6s7gwvcpFgS2QuMcAs FVueJVVwwIKXiFP1T1bx1yyPMNTHc47WpqOiMOHd0Fr1+IQ6Kn+MDfh7sYhln0hucTz6OXUt98Su msu55HigZ0iGAZR6+Ta+r2N+/O/0/fcznNNF44+5GWVtizYK1hyro5cseDWj705zv6ikKDf31ARo Tv/O75d2qraYw/jLsgojM6Z2g4HdEIERYEd7roTxyOJw== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sun, 10 Jan 2021 16:57:27 +0800 X-OQ-MSGID: <20210110085727.23617-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] avformat/utils: prevent ts out of [min_ts, max_ts] interval due to rouding 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Rounding min_ts towards +infinity and max_ts towards -infinity can make ts out of the [min_ts, max_ts] interval, and then leads to seek failure. Fix it by using the simple rounding as ts for both min_ts and max_ts. --- libavformat/utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 503e583ad0..88221c5ac4 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2500,10 +2500,10 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, ts = av_rescale_q(ts, AV_TIME_BASE_Q, time_base); min_ts = av_rescale_rnd(min_ts, time_base.den, time_base.num * (int64_t)AV_TIME_BASE, - AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + AV_ROUND_PASS_MINMAX); max_ts = av_rescale_rnd(max_ts, time_base.den, time_base.num * (int64_t)AV_TIME_BASE, - AV_ROUND_DOWN | AV_ROUND_PASS_MINMAX); + AV_ROUND_PASS_MINMAX); stream_index = 0; }