From patchwork Fri Oct 13 19:03:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Kucera X-Patchwork-Id: 5558 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.90 with SMTP id m26csp1026644jah; Fri, 13 Oct 2017 12:12:26 -0700 (PDT) X-Received: by 10.223.199.137 with SMTP id l9mr2368475wrg.113.1507921946195; Fri, 13 Oct 2017 12:12:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507921946; cv=none; d=google.com; s=arc-20160816; b=f4XxrZy4KhSFWV5DsN1LjOPpF3iTZCg7imym1ICjpk3iMlzONs9hDNT+voyI0KgOiC aLb6iKrCsCgvhvVcUWOA30NwSK3b5ir4iS/uPeCVSIkoWBp5nRYb0yRu7fDgiUs0QYdC a1dGUy1GTOEAnZcm3/9EcyiaAtjk31B5QtC3JW32AdsHucRgSWCMemc8cpkUJL+hYHSX Y800rupx/QsLOhOxJD0sJZDI0UwME5VUCZkC8l6SnRdqV+v5iVmSFkfcdbDa5mcuCktc /gMKwzuGRxDGLFwUOUL4frDz/shNeoNspLvGAMHcLSn3HODEAH3akr6vOgDdE+a86kuK Jz2A== 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=X7ZZdHmye4LHWs5AXo3sLGpsO2WOriIehVpSS2b0Vns=; b=JoiupqwDPwDCrNgcAQV0Z9g0N3wbH1Wq5YcD+aHjyLTrK/rjZKnBSWda0tiKfiLu05 KGI9TC8fb3gYl1fwyZ8WBqbbPs4fSMT2mQJu3oL2fDO+djTVNN/45cmQhZPxc1pDnblH QcBLL0j6xNWcvYWytAK9XPMheZQpYW77njdcthBBnEWAk3gmRfXITeGMng7UzJHgj680 WUbb3J/vvtMi0djvcqHTT2lii1DV3w2mBguftNFrfrlbJNwFnIixRKwx8q2M3Clgm1R4 FhHjJwTvJeOCgqayppPpDCwq+PEGsefDHkQVYJemhcUXUNUdpC5n6ZPHL4XqtMjV7/S8 Jo1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=pHQFJhWI; 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 p14si1242748wre.148.2017.10.13.12.12.25; Fri, 13 Oct 2017 12:12:26 -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=20161025 header.b=pHQFJhWI; 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 AD91268A115; Fri, 13 Oct 2017 22:12:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55FD468A114 for ; Fri, 13 Oct 2017 22:12:15 +0300 (EEST) Received: by mail-wr0-f195.google.com with SMTP id l1so1392052wrc.1 for ; Fri, 13 Oct 2017 12:12:18 -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=g3shC31JIrtLeYeoT5rkKtsj1X8jZseTMmvjukdknyM=; b=pHQFJhWIItPIZc+FZ67FFtaEk5t3TQ9k4aOcLAX1S5u3FUFmjubqHSUChKiisrXPsH UWkn9BMXEJTJcDDE2osME2qvWaRjnvi/8OI0NjUlra8g4DwcUAp3qam3YyP6tLcrMTdW o8W0C9m6LHoq0bnUWOwSN2NyCsXxYNaoD7Qm0wUndw8ZpmgXeqNELQrju+Bn6hXLeQSo 8CMb/mbaTO2S9WBfSpIgH+Q4TPTGahWTyQ+HBs48CR7DwGEd82/Mg/xZDYrN3DJoBUlf acQcw5ikLAyxMUqg/MXG8K5iMsXRpJtacyxTwOAa4ywHLZ4dxtLVYoGEYgRBl5zxOZZ8 eV9A== 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=g3shC31JIrtLeYeoT5rkKtsj1X8jZseTMmvjukdknyM=; b=KmCh5iNUE+i5NYmB1laQ+nafRe5cB+249EOkkjFXFAF3FNv0j33quY4qXr5jB0y7rs ajxKmzuCmhxJh/ok/K7/SgUMGG7fudB8Nv1Wh33GiMyb1uN+k6hFiMsIdNYbzbBDyCtq 69AOSjD7nArGcay/KPL+Uxj3A6/4RdJ7uDcV9gHTPgaQbcnicVhZ0B9Kn42mTImZByZ6 la/kGxWj9qFF0yvAiWvjhu2GtSbeWHxcvIyKLOgEg78mib6KqAHIbD4TKqW8UBDOw39a ZS4AOGYdOTrd4M/BWAP2Nm4IXXCtjrBK33csRuIcH4gEpOrJYW4cKaxe0ZvaGBLscZNV 8ipQ== X-Gm-Message-State: AMCzsaXGCXQBDvYl6GxYYm62JJIu3SLIpai5QgcAREFXHTws4d8SE10O P6YkcOHjUDwig78iCW+WSN264g== X-Google-Smtp-Source: AOwi7QAFfET8uRSmzMyp7Ptj7sD5l+N0UOh8atg63pnBHdLT1LTZACFd6qr5z/WHWdXhYexEejVK5w== X-Received: by 10.223.132.135 with SMTP id 7mr2363198wrg.74.1507921440809; Fri, 13 Oct 2017 12:04:00 -0700 (PDT) Received: from speedy.danman.eu (mail.danman.eu. [185.98.208.20]) by smtp.gmail.com with ESMTPSA id p77sm2176890wmd.28.2017.10.13.12.03.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Oct 2017 12:04:00 -0700 (PDT) From: Daniel Kucera To: ffmpeg-devel@ffmpeg.org Date: Fri, 13 Oct 2017 21:03:47 +0200 Message-Id: <20171013190349.24112-1-daniel.kucera@gmail.com> X-Mailer: git-send-email 2.11.0 Subject: [FFmpeg-devel] [PATCH 1/3] 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. 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 64248e098b..d3004c007f 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -391,8 +391,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 > 0) ? len : AVERROR_EOF; + else if (ret < 0) + return ret; if (ret) { fast_retries = FFMAX(fast_retries, 2); wait_since = 0;