From patchwork Mon Jun 19 20:34:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Kucera X-Patchwork-Id: 4048 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.22.4 with SMTP id 4csp1084805vsw; Mon, 19 Jun 2017 13:41:43 -0700 (PDT) X-Received: by 10.223.170.193 with SMTP id i1mr16499634wrc.143.1497904903781; Mon, 19 Jun 2017 13:41:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497904903; cv=none; d=google.com; s=arc-20160816; b=BEe4R1EcTe0YYoMloOTrnU7GVNBHnNFXKIpE1ctohM+qgAwyZv14KGXPGkHWZ1h0hZ 8XDCy+hIu15FZM8nNNCBEMXGD+8ssHUSHJ1ENk7Wsg4bI+dCIt5cm5bC5osHe8j82WF0 EAOW80Irs5Hj0HruiCjC+zjGvuD0gkdc1qbYy23S1iW/81bKbeHfs7tlAUNOngvGhNRp ViTH6CCJ37mUbQTCCMVz3YB2nsDAbcJEmL2jQFm8aPnc5KbbdLAcDQYATGDXQFq8zL+o fa3ok98QLHFR3myKtCuTMPRLZXkEzpeqCe6DASr8wb+2rEUNsrIvl7oc0dwauwu1vacD VQXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=Th/1bTfR8RTX5AD9UhTIIIDvev90Lm8WgohGydZb0MM=; b=RvCIt5tVF20rEjYOIt4T0sNlNRf0HmUKGrPuauTba6fWRa722MyJ/4oOxWL3gTET7b zlCxW2YHZnp6nXOgb+nmNoX1JfV7sL885duZ3gUlnu1lXjC4V3JE2L4CXqGXSyD70z90 pUG88vPQDCnSJzY0bXjGI1Xml24WgOoUUu6al8lPv/rG4gUlr/Nuy93aOM0f60JH37wy BkwkkAcoQpLobuU5JCs3i6U5EqruP1GVVn26RZw9kI+/ayQeVXQ0mAJoe0NmQd7XybPD ewDHFzt5Rn93ODudHy3MXB8bJ7sp8lEJVJ+caxvsHX0O3anYnmV8NavAVM3AvbyQopue gOhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=NY08JGm5; 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=NONE dis=NONE) header.from=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 197si7780149wmo.18.2017.06.19.13.41.43; Mon, 19 Jun 2017 13:41:43 -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.b=NY08JGm5; 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=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B1EC068A5EB; Mon, 19 Jun 2017 23:41:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com [209.85.128.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DDA7368A5DA for ; Mon, 19 Jun 2017 23:41:28 +0300 (EEST) Received: by mail-wr0-f196.google.com with SMTP id z45so15113213wrb.2 for ; Mon, 19 Jun 2017 13:41:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=u1iCf494e6ZVi0Sgk/6e9CkB94GDZalBXuY8Xp0yBRU=; b=NY08JGm5vKcSNZ2d2hUO5/xF3g584H+nI+6MPU2x9qz+D8DCNQ/BH/8BsUDbQ/tMWN i00DpE6m8dSGnFsiQdT4fDtwIaE0RHwFaEIH1Ptk+fEMvcXgqdmqjwsYkd7zwdEkVvo/ JB1U6Z3dPQhJjDkoAxlKtoaHAcHqtzo8SPgq5F0oeepwj3ORdWk0i5vRUAAprTJvM7u6 tOJzOLGSYJ0BbcOSo5GrA2SEnM6SuAyrWybf4Hv69C6bTwfPa2La7VT+FgC3wwOkvyyV 6CHWLnu2MAEaxcb6D65AMlwHa6PdWQwusMOTEjHj5uigyOftRW/WOXyejXxEV6YMzJa/ iv+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=u1iCf494e6ZVi0Sgk/6e9CkB94GDZalBXuY8Xp0yBRU=; b=XGeO3s5q7S4OUXmtMpNikGKjYVlIAgoVJ4U4YkMmG7WmlE59eC1t5nop+1rSJhfxPX F4n3H8dFVuAWoXNdwKWQOKc9LWtR6tg2lGnLnpOdtmiY0pqcyChPjlTF7IuWRiYiCBCD n5ZxyI88+RzrozXfGj67mwHv4fdZDWsGXxrAYslT3g+zlLJqZ9KQeb5L3ol95mHSDn1b dB0Sb7zM/rFKqMPlH+Bx0o3716LEHtV9djKNk2zydFCIYJjXhEQYPzal5NbuA2zxYibC uYB0JYpGAzFbVbqAE35P6GGIPI6uP0SPO2gi/H8T6CVrAZRjSU0kuODz+P7kw0Zbrm+c NEqg== X-Gm-Message-State: AKS2vOzDguvULIHP6TIuRPJlec0Q5n98DQXPqGxVekconh0OccdWQm4B jiZx2i0abpxQ8NYr X-Received: by 10.223.169.203 with SMTP id b69mr19454888wrd.1.1497904481584; Mon, 19 Jun 2017 13:34:41 -0700 (PDT) Received: from speedy.danman.eu ([2a06:cc0::5054:ff:febb:3523]) by smtp.gmail.com with ESMTPSA id t70sm18436569wmd.1.2017.06.19.13.34.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2017 13:34:40 -0700 (PDT) From: Daniel Kucera To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Jun 2017 22:34:34 +0200 Message-Id: <20170619203434.7672-1-daniel.kucera@gmail.com> X-Mailer: git-send-email 2.11.0 Subject: [FFmpeg-devel] [PATCH] libavformat/avio: retry_transfer_wrapper: don't treat 0 as EOF 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: Daniel Kucera MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" transfer_func variable passed to retry_transfer_wrapper are h->prot->url_read and h->prot->url_write functions. These need to return EOF or other error properly. In case of returning >= 0, url_read/url_write is retried until error is returned. requires patch: libavformat/cache: don't treat 0 as EOF Signed-off-by: Daniel Kucera --- libavformat/avio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index 1e79c9dd5c..d0cee42c39 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -393,8 +393,10 @@ static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, } av_usleep(1000); } - } else if (ret < 1) - return (ret < 0 && ret != AVERROR_EOF) ? ret : len; + } else if (ret == AVERROR_EOF) + return len; + else if (ret < 0) + return ret; if (ret) { fast_retries = FFMAX(fast_retries, 2); wait_since = 0;