From patchwork Fri Jun 9 13:49:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Kucera X-Patchwork-Id: 3888 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.10.2 with SMTP id 2csp3339461vsk; Fri, 9 Jun 2017 06:49:20 -0700 (PDT) X-Received: by 10.223.138.194 with SMTP id z2mr32792124wrz.66.1497016160176; Fri, 09 Jun 2017 06:49:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497016160; cv=none; d=google.com; s=arc-20160816; b=CXxxTQ8rbQTQFvOF44TJeUz+hVGu3HLL8YWpercCPwiw7y9EpU98gs2RsTkP7NXwr2 bgX+MnY0MGHBqN1rP8DgzEDqtAHr221dc7QcD7Fe8JETihiXmjoxOyljP5lSNvBumGkA shvyInNvLjet8iUj4aVVk8GIqPxdr5joxR3HOWgYJFlV0eS26IkOqOIITeyMiy2PrH87 8fQQA9cNZQcSRGuxIwQ7lk/3rgZbQs2te7XPj8TUPxDnfvixIE9uJ9+UCy5tYxjx+ONZ mDoG983Pk+SWTCX6CGsZASo+Rxr+oNYo8d4U4zulIcGN8mEejSX0SPkKqnUf7SRqqAVW 2ayg== 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=RrLKrTSgM7q9gaxQFsKOt8srO2LQyumbQZEQlHPf1H4=; b=NGSLX/WdJswe+AWh9MUSC19e7bL2jZg6wUVFfI8+ViqvrBi+ApKaEZm0d5IWyEBHcC adouU8s4uaCM4pZaVZL4uy5mvSVWzqDw85ECkxM/gEv7ukGPhdIwFRNM8Hu6DKuQ5AFG WYr1DOP+UynEONQSv+oV7vgfnSGT3iB5ZedyOD+fXYI4YOy5EHWgkoionTiyarfsPLgW UBNjqTDmqDEQyBlYaY9+HEc2sK+Otda8EJTl59J7Fmdt4mXx7c1XwDJ48rDi4Sv7tphs V/ZVHYN9vJhCaU1pmBnlweZSLkEYkzdw0Q6bneQyv6wgBoetTpr6PO+OmdO3Nu/qwlYH Qt+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; 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 i67si1737877wmc.34.2017.06.09.06.49.19; Fri, 09 Jun 2017 06:49:20 -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; 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 9F099689E67; Fri, 9 Jun 2017 16:49:16 +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 40C54688361 for ; Fri, 9 Jun 2017 16:49:10 +0300 (EEST) Received: by mail-wr0-f196.google.com with SMTP id u101so6961001wrc.1 for ; Fri, 09 Jun 2017 06:49:11 -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=TCRCVPwpHCOUmADqnUTXFVGCgz+ZqBzX01Z0tBcNzJU=; b=kN0ppR20bk2PrW1aHrQhHIJ7Qj2FjTL2dkM9leTuLYZHZEBCW3q321FY7oSfgsKRjU 1MAQSnGTm1qUNOOFkDRB0ZmhR3cBMr4p++141wNUnRq5dnb/C7/zLZO8+A4ebWW1YIFa umkYASp3xtBuxYWMx2nJXz+spwZqTO47rTaBrDHklnVnf79FYIe6pgUcEYcEVFzJJ21f 1futB4nIsgzxjzOLA2ASpAjnw1senfabeRWNRegem166aSfPloddrjDeDAOpbnXqw5gb KWOxQPL/dfRh9Gt3TV18vOcHREpjGcL2T98ZzooGBBEAMbkWAWnWCB6ofCekvyfSKzEa blGQ== 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=TCRCVPwpHCOUmADqnUTXFVGCgz+ZqBzX01Z0tBcNzJU=; b=VF/trjGKdfcV9U2zpBabd3dDFwIcL5kWuF3caMFP312HRemtY/BAxGDu6cQ+66Loxk cDzm4LuyJPlhB3zsZnAlZ4dsTGn77hai0Q25lBlkpDqA9kD9NYs5/rb5aPFdns4VYvqN kWBa8QXQK+k8MCk0q3Jli9TGiW5IjZRHStoD1i+w7vGMbHwXeCQaycUsbYYdRUJYWAln TAqilBE3PcSKF5A3QGCaHDQ/sRz7GYXeyI9ve7yuv41m2blUwxZmY+0+Xm+HTHznqRar 1k9arPD/XgaMoFl0k86ZrP0lqXSWwWbrdNvYJ8EsUwFMEyKakw2YowEZYLIdiageA87n a96A== X-Gm-Message-State: AODbwcDjOW9bFO+hONtMDi4i3gXZuvM0V+zPoklQXg/b2oSz0/eL+3Hd gzfBbFuQeXImfPd5 X-Received: by 10.223.160.219 with SMTP id n27mr33372993wrn.198.1497016150548; Fri, 09 Jun 2017 06:49:10 -0700 (PDT) Received: from speedy.danman.eu ([2a06:cc0::5054:ff:febb:3523]) by smtp.gmail.com with ESMTPSA id i64sm2303533wmd.33.2017.06.09.06.49.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Jun 2017 06:49:09 -0700 (PDT) From: Daniel Kucera To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Jun 2017 15:49:03 +0200 Message-Id: <20170609134903.18069-1-daniel.kucera@gmail.com> X-Mailer: git-send-email 2.11.0 Subject: [FFmpeg-devel] [PATCH 3/3] libavformat/aviobuf: 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" Signed-off-by: Daniel Kucera --- libavformat/aviobuf.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 1667e9f08b..3705e406d9 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -556,13 +556,14 @@ static void fill_buffer(AVIOContext *s) if (s->read_packet) len = s->read_packet(s->opaque, dst, len); else - len = 0; - if (len <= 0) { + len = AVERROR_EOF; + if (len == AVERROR_EOF) { /* do not modify buffer if EOF reached so that a seek back can be done without rereading data */ s->eof_reached = 1; - if (len < 0) - s->error = len; + } else if (len < 0) { + s->eof_reached = 1; + s->error= len; } else { s->pos += len; s->buf_ptr = dst; @@ -630,13 +631,16 @@ int avio_read(AVIOContext *s, unsigned char *buf, int size) // bypass the buffer and read data directly into buf if(s->read_packet) len = s->read_packet(s->opaque, buf, size); - - if (len <= 0) { + else + len = AVERROR_EOF; + if (len == AVERROR_EOF) { /* do not modify buffer if EOF reached so that a seek back can be done without rereading data */ s->eof_reached = 1; - if(len<0) - s->error= len; + break; + } else if (len < 0) { + s->eof_reached = 1; + s->error= len; break; } else { s->pos += len;