From patchwork Thu Mar 21 01:58:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hwren X-Patchwork-Id: 12377 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 09E67446E8B for ; Thu, 21 Mar 2019 04:30:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E3E2C68AB37; Thu, 21 Mar 2019 04:30:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from m50-112.126.com (m50-112.126.com [123.125.50.112]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1E79268084A for ; Thu, 21 Mar 2019 04:30:11 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=GPN1nekchGpyVsnAfL BHadCJKIOpHKaMnLCymFKIVIg=; b=XemsWT77U3dHu47NvWl8hnVf1vYtG2MsDu g9QwgWi5WLIXGZpkRXYYNrX5abATJ/NXdgl5TI+YqNz8hvZRDWcAnN7BC+0czRV4 DTrxoVb8w2ZFD4HNmgkAC2+Fp5hKHtiRH8/z9m6XSkG0HPlzczqI7zOvm+VTJW42 Kym0wH/8I= Received: from localhost.localdomain (unknown [210.22.22.131]) by smtp6 (Coremail) with SMTP id j9KowACHqWjo75JchWT3AA--.105S3; Thu, 21 Mar 2019 09:59:06 +0800 (CST) From: hwrenx To: ffmpeg-devel@ffmpeg.org Date: Thu, 21 Mar 2019 09:58:18 +0800 Message-Id: <1553133499-30357-1-git-send-email-hwrenx@126.com> X-Mailer: git-send-email 2.7.4 X-CM-TRANSID: j9KowACHqWjo75JchWT3AA--.105S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7KFWDKw4DGr17KFy7GF4fAFb_yoW8JFy3pr 17Jrs8tFy3JFs7A3s3JrsYq3Z8JrWvgF4jgws7Aw18u34rAryqgrZ7Jryjg3Z2gFWvya47 Ga1qgFyDur1DKa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07UCoGLUUUUU= X-Originating-IP: [210.22.22.131] X-CM-SenderInfo: pkzuv0b06rjloofrz/1tbiZgt+6VpD5uzsTQAAsI Subject: [FFmpeg-devel] [PATCH v1 1/2] lavc/libdavs2: add davs2_flush 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: hwrenx --- libavcodec/libdavs2.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libavcodec/libdavs2.c b/libavcodec/libdavs2.c index 0808721..b0eb4fd 100644 --- a/libavcodec/libdavs2.c +++ b/libavcodec/libdavs2.c @@ -129,6 +129,21 @@ static int davs2_dump_frames(AVCodecContext *avctx, davs2_picture_t *pic, int *g return 0; } +static void davs2_flush(AVCodecContext *avctx) +{ + DAVS2Context *cad = avctx->priv_data; + int ret = DAVS2_GOT_FRAME; + + while (ret == DAVS2_GOT_FRAME) { + ret = davs2_decoder_flush(cad->decoder, &cad->headerset, &cad->out_frame); + davs2_decoder_frame_unref(cad->decoder, &cad->out_frame); + } + + if (ret == DAVS2_ERROR) { + av_log(avctx, AV_LOG_WARNING, "Decoder flushing failed.\n"); + } +} + static int send_delayed_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame) { DAVS2Context *cad = avctx->priv_data; @@ -205,6 +220,7 @@ AVCodec ff_libdavs2_decoder = { .init = davs2_init, .close = davs2_end, .decode = davs2_decode_frame, + .flush = davs2_flush, .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_AUTO_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },