From patchwork Fri Nov 2 08:47:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hwren X-Patchwork-Id: 10891 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 1271744DE38 for ; Fri, 2 Nov 2018 11:17:54 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8192168A9D7; Fri, 2 Nov 2018 11:17:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from m15-111.126.com (m15-111.126.com [220.181.15.111]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 452AA68A99B for ; Fri, 2 Nov 2018 11:17:15 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=rpVjQEv9paM4AJo+jD 8/iYfhuUPytiSL+yxTd7kcCvE=; b=d1mNsoDAN57TJi6ffCsNXq2PxmOfSiJDg0 qiLNV1efOEl9iJSBEKOGYvp/hPukxHb6C/SmGoi913jQllk2Pqv4sXT2B3azznyH VgUuyC+Ln+s/MpOrzTo/wtLzmyYK//eNLdYkhYsVPPiG7+49T31C4i+bHcEEu6mZ 0rctBli+0= Received: from localhost.localdomain (unknown [223.71.83.94]) by smtp1 (Coremail) with SMTP id C8mowAD3+owaD9xbnsQdLw--.30782S6; Fri, 02 Nov 2018 16:47:23 +0800 (CST) From: hwren To: ffmpeg-devel@ffmpeg.org Date: Fri, 2 Nov 2018 16:47:20 +0800 Message-Id: <1541148440-3603-4-git-send-email-hwrenx@126.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1541148440-3603-1-git-send-email-hwrenx@126.com> References: <1541148440-3603-1-git-send-email-hwrenx@126.com> X-CM-TRANSID: C8mowAD3+owaD9xbnsQdLw--.30782S6 X-Coremail-Antispam: 1Uf129KBjvJXoW7Ar47tw1DAFy7GF4kWFyfZwb_yoW8XFyfpw 42yFn0qF17JFs3Aw18Jr4Fva95JrWkGF4xKr47Aw10934UAryjqryIyFyruasavFWkJ3W7 CF4Dtr1UuF1vgaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j3l1gUUUUU= X-Originating-IP: [223.71.83.94] X-CM-SenderInfo: pkzuv0b06rjloofrz/1tbiqBvy6VpD6QbCPgABsj Subject: [FFmpeg-devel] [PATCH v4 4/4] lavc/libdavs2: fix wrong return value 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: hwren --- libavcodec/libdavs2.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libavcodec/libdavs2.c b/libavcodec/libdavs2.c index 4dbce73..d912dd8 100644 --- a/libavcodec/libdavs2.c +++ b/libavcodec/libdavs2.c @@ -147,14 +147,15 @@ static int davs2_decode_frame(AVCodecContext *avctx, void *data, if (!buf_size) { ret = davs2_decoder_flush(cad->decoder, &cad->headerset, &cad->out_frame); if (ret == DAVS2_END) { - return 0; + ret = 0; } else if (ret == DAVS2_GOT_FRAME) { - *got_frame = davs2_dump_frames(avctx, &cad->out_frame, &cad->headerset, ret, frame); + ret = davs2_dump_frames(avctx, &cad->out_frame, &cad->headerset, ret, frame); davs2_decoder_frame_unref(cad->decoder, &cad->out_frame); - return ret; - } else { - return AVERROR_EXTERNAL; + if (ret == 0 || ret == 1) { + *got_frame = ret; + } } + return ret; } cad->packet.data = buf_ptr; @@ -173,8 +174,13 @@ static int davs2_decode_frame(AVCodecContext *avctx, void *data, ret = davs2_decoder_recv_frame(cad->decoder, &cad->headerset, &cad->out_frame); if (ret != DAVS2_DEFAULT) { - *got_frame = davs2_dump_frames(avctx, &cad->out_frame, &cad->headerset, ret, frame); + ret = davs2_dump_frames(avctx, &cad->out_frame, &cad->headerset, ret, frame); davs2_decoder_frame_unref(cad->decoder, &cad->out_frame); + if (ret == 0 || ret == 1) { + *got_frame = ret; + } else { + return ret; + } } return buf_size;