From patchwork Sun Feb 7 13:18:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 25479 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 1EBB144AE1F for ; Sun, 7 Feb 2021 15:19:07 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EFA47689C5C; Sun, 7 Feb 2021 15:19:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from qq.com (out203-205-221-231.mail.qq.com [203.205.221.231]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8D718680279 for ; Sun, 7 Feb 2021 15:18:59 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1612703934; bh=fQozHfpLylBTxhL6zsLYr5gUjFSNXmNw4hPKjfccm3o=; h=From:To:Cc:Subject:Date; b=XIOmnPDtwFe+XIyQXwL7R1IQa2lWMB15Vis44ZHRtkeWYE2Xrie8iB84piXPz93fW yQVnPmTOJPMrXAXli8h0wLjQkGw4rK81Wn3Q9bWg0WSAPYsvXMfWeVt9jcSrg3Nj3E 6Ilzzomq/lD5y3ISVOPzhQ9c74NueHdiBNs8zhnE= Received: from ZHILIZHAO-MB2.tencent.com ([59.37.125.48]) by newxmesmtplogicsvrsza9.qq.com (NewEsmtp) with SMTP id 4B3B4AFE; Sun, 07 Feb 2021 21:18:51 +0800 X-QQ-mid: xmsmtpt1612703931tiac2lo1p Message-ID: X-QQ-XMAILINFO: OcgnK9E1+HVLAOuCY8yXsUStCZwUVsjg/jDTed3j7+C3DHa+F4DkrTAD3Mcrt2 Mu+E6B2fNYxhbsTAZldRz7hiwyuMYKuJ7xXlLOJuJhCVOe6PYoRUJJHcIUgfgD/+oq6vqK7zuNrm y2JbiBfrDlfcXCOjNDjpRKf8EsTCaAAH39OaOYi1xuz6kt1Jmq7mVXMZxj0jPu3dn3N588Hd9Evj FB7yJSloI82P7O8DQqBv/y4Q7IpzaNClUdrBxRtUqmR3erI44L27pEMBNY07fhfm4xXJkRpHb987 +DRQ7BdMizZbDhM4WpiH9h2Bvr0CqQ4D8nNyQckIW0uT8BRCulweTAdVBeJwedD8UZzttEjGT0xL 2qkAA/ax3BRA4HYiBXAsoV/UTliEM5Djgyyos4IYJWVGdzEEo2UhcTpXY6Jarus1rAxy8873XjJb VeIqJogt+BOLGHpP0vNdHQkSNrvVVhSp55x9w0+CUmMu84Ur9YHI4uus9gnuIFNZbQRGV/eRcTzt PTFsE+eCByD4h5HRfTD4X7w9omTN3VlY0KoMWHpRXwP6V8EjLaAemAf7Qo3asw6Jj8qNzSfvFEe+ pXelSVakI1ivtv4ppJ9xh8eXQQsvfBq1QQ9lAOaCsigWKeiiz27Nfzm5itzWzSLbNwdmSMMM0j9g EPqU/tOxOfB2k8aCYHXxncjR4gIm89xbN+BFY/Z7aZTVv10zCIcFymA0/EXrxvBG/2ry9lKXufk6 2Z6zs+fFEMcNMqKm62Xc9nM5bynFfnPPQMCV+kQ0DitnSNhoE+bYUjG/R4TRcdYNDDsmWqraCTFc n2PMJiKj8KSXdER9inl1vd From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Feb 2021 21:18:49 +0800 X-OQ-MSGID: <20210207131850.44995-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/network: fix timeout inaccurate in wait_fd_timeout 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" The wait_start was about POLLING_TIME larger which leads to timeout 100ms late than the option setting. --- libavformat/network.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index 0f5a575f77..7a9a4be5bb 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -78,7 +78,10 @@ int ff_network_wait_fd(int fd, int write) int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterruptCB *int_cb) { int ret; - int64_t wait_start = 0; + int64_t wait_start; + + if (timeout > 0) + wait_start = av_gettime_relative(); while (1) { if (ff_check_interrupt(int_cb)) @@ -86,12 +89,8 @@ int ff_network_wait_fd_timeout(int fd, int write, int64_t timeout, AVIOInterrupt ret = ff_network_wait_fd(fd, write); if (ret != AVERROR(EAGAIN)) return ret; - if (timeout > 0) { - if (!wait_start) - wait_start = av_gettime_relative(); - else if (av_gettime_relative() - wait_start > timeout) - return AVERROR(ETIMEDOUT); - } + if (timeout > 0 && (av_gettime_relative() - wait_start > timeout)) + return AVERROR(ETIMEDOUT); } }