From patchwork Fri Oct 13 19:03:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Kucera X-Patchwork-Id: 5557 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.90 with SMTP id m26csp1023936jah; Fri, 13 Oct 2017 12:09:41 -0700 (PDT) X-Received: by 10.223.150.25 with SMTP id b25mr2214851wra.147.1507921781354; Fri, 13 Oct 2017 12:09:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507921781; cv=none; d=google.com; s=arc-20160816; b=i+c8i2h0diz3CbhhwbZJaWz7iZblI8X9FkoI7yiw2RWVR5Uq3+J8CljI36TFgiTrUZ cml4fysG4MOWem/WT5e6ETQynCI5ef6nI4PlMW4iyG2BEoXt3crJpxCbTFPJ2Zg5jyNx UQ5Cbnp7QydSt2POIEoRkrtx2FfQJVxsVzeky+a8B0O7fqH65Ko/fuYWi5B01dUPCcUi vEIpaW4KpeJ4cBzlfj8/iYT9CcTRqOf7LzqNkOEgRYQBYgtsVlmCLigMoummi0JiuZdQ vdauikSliAB7ytG4cgZzF5W8JswkCMSKBbtpjteFubCK8NtNcQZI/4yNS/puTdc2rz+q nB+Q== 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:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=q3mmqew2f22cU9s9MBP21wLV+UHyZ8KK+CQoRBce6XE=; b=pEgtznQPIiBprZShEPaP360+ABfH7BDguSYh5rkIGADdYfA40mWn3dk2vVze9NK8Am YcG6SDwauiK6uoMYx+Dg+GPnoZKFkP7vVUQPXBYsJo6RkB3EwFrMqxG7tA9lKpQpN5s0 EmZcMHGOs0p84IeyMdX4j3lXaoMIAylZyuVF9+CxJmycf73b4l6E+lSgnup5HhxKw86P ic0NtB4/nV76j6uBMY1i3Ba0+wJsmYS0XeNZQViPTptVDdl3nuTeNokZHzh0BN4p7/Aj X+LSdR1iYMyQMEjAr2wWOIRHIrWuRY82wyXA+qBkscZkWh4skNiKf9mHszI/hixaBzxi AIJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=a1GtwyLZ; 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 w206si1357356wmd.185.2017.10.13.12.09.40; Fri, 13 Oct 2017 12:09:41 -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=a1GtwyLZ; 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 9C89E68A10B; Fri, 13 Oct 2017 22:09:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A7A8068A0E8 for ; Fri, 13 Oct 2017 22:09:29 +0300 (EEST) Received: by mail-wm0-f65.google.com with SMTP id l68so23542782wmd.5 for ; Fri, 13 Oct 2017 12:09:33 -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:in-reply-to:references; bh=Zb2zzyo7GFCKL87w3whSactjsBx7+1e4nNj7Pir4tjs=; b=a1GtwyLZYWgO38cy8j1S2dYvGQrAppThyntTuYh8RZk8yq1+FPJDP0NGMvJNCh5qJE pe+NulpC+0MVWL9P9oMtUHmNzeKw7EzL7PXLoFQBzur3tN6dg5+Di99KZpRmVz6itd6g CFTbHksxzFoGYCI8R+zUnbOAXHLvxJOMNmbP25CEGjPd8EwGzfQIkjXm6a1A8ozYGGDR 533g5Y9ZzvCJeRC/HWvuumNHjCadbil5CPOmBVWREJun4dITwQbCgSEP36uDsS+viNan TzGDq8Wrskdj2UIWSSnT3NqdkBIcPAgTtOFZV3tA9CGpAeduzBQyhPVq82s1mmMK6qiZ jurg== 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:in-reply-to :references; bh=Zb2zzyo7GFCKL87w3whSactjsBx7+1e4nNj7Pir4tjs=; b=SiWU1Jb4S/l5hNwzezqi2rPORyHfQCqb23ZNWFuDMpNjrDOoq9Nk272W+fa8X0TU0r k2AV32RVrNicTx/xclY2gJicY4qq9E7ONkiCHBCUPQNPnWNgoLpnbgjSXBfZ78AzAJ1e uOyPWMBbUYTyVwUzHfHrM2a4ESQdrRQ63f+ujkjpRP12U/zcQ8Bw9aIdLEIjGgAGYCYE 9PCk2aQ7usJZlOcmGVRxmwHmcS7tpj0FaV/8tO6ZX4567H9CySssgA5f/fz66GJCBO/y WKTBgBqkjaKIAawNxZ7A/1Zc9YZu6L8VP7lwuebNfD9XaTuMnrOhN8B/hmRrvieMc1J0 5BGA== X-Gm-Message-State: AMCzsaWO2e2hrcjXkWHZw6otz3jWUMJ6Lj/QXDtkACN+61DGha26czYA x9hdVTU3NkJ0xx0TumeLEMf/NA== X-Google-Smtp-Source: ABhQp+TgtZZAqD0IFFk+JFDzNJeOt4TGDfSZjhIvewK5pUpTfAeC895KhdYHfNNPuSU3CDG1pSkojg== X-Received: by 10.28.30.139 with SMTP id e133mr2044172wme.8.1507921442434; Fri, 13 Oct 2017 12:04:02 -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.04.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Oct 2017 12:04:01 -0700 (PDT) From: Daniel Kucera To: ffmpeg-devel@ffmpeg.org Date: Fri, 13 Oct 2017 21:03:49 +0200 Message-Id: <20171013190349.24112-3-daniel.kucera@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171013190349.24112-1-daniel.kucera@gmail.com> References: <20171013190349.24112-1-daniel.kucera@gmail.com> 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 636cb46161..0d4eb051e1 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -572,13 +572,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; @@ -646,13 +647,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;