From patchwork Thu Apr 9 08:50:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 18789 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 E1EB7449E19 for ; Thu, 9 Apr 2020 11:57:32 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B53F168B6A7; Thu, 9 Apr 2020 11:57:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0710768B688 for ; Thu, 9 Apr 2020 11:57:26 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id i10so4679254wrv.10 for ; Thu, 09 Apr 2020 01:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=5BU0m9+m+LLWCZhqZ6L2DDufYYYoMnvsa0ugrwscWVw=; b=UZnx1wGJ/Ahy20jqpWaxzUZES8yFGsa6F7plAhZFmBiqt+qVHv83rEgYG+rsuqdADC W2dDcGNLADtl7KfVvmqpECT6S+YKBZthC9vgTK42SfIOsn3c8fPv2SpseTOUbETFnHqD a5/U0SJAR8xSv4BtiY/V3LOqwZcvH3YR06EJcDpJ7NnbXjJm/kmKNPAvUuFktm7cCMaL DoZpdhCG2NRaCknbDbl2FCcF6PX+Z1M3yT4zDsi25SpremJfBsdYjRLLqeZ7j5UvYtfo AF48R4nq92sFgOmTAFWk1JDmt8lhHMs5bIh+rX+7/hz45nncxIIv+bC/XglZ/O8EIkV6 +bfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=5BU0m9+m+LLWCZhqZ6L2DDufYYYoMnvsa0ugrwscWVw=; b=qOPulMtj5zYzjIb+jslwfImLN9ocIhyivyJB8uFPLovvWXenx+sRPvVLKarnODaT4E PKxOSReY2XexUYdAlgX2ZZb6dhEwu8EwmgO3p0bF2LOBcQsu/vvAB2fTW9yY/e3Q27zR +ML4l+T1NTdistxgk3CyzpH4D2Um6BoSvTKAQ/SuQAqkN17Eqv6RjX8iJ45T4p/ouZu1 RypaGZKy+WNLAjGN9TaczfEVpSGFBOdEVIeJd7PRi/zLMTfoGiYRsSZIbhqtWW+aBj3t PlXRSK2Np/XiNFiDRP4SC6KOpiLMrLne9rBlq8OMipZaCE3KmAa29jd6gtCdfjPd9GPN jLtQ== X-Gm-Message-State: AGi0Puab/sDVyA/Z3j85Z3a1zeLafo5kQva9zp/P/Uvtorb3W7TcbAHf Gd86cNKxq9OJKZSHEXhLrWyENbv0 X-Google-Smtp-Source: APiQypJLrZNiAI35DNomV7ZWgbpOmZBgPF4arj/WTD6xaC9/ZVtHI8QMN63EYAI2aPbq9hkZWgBT5w== X-Received: by 2002:adf:f5d0:: with SMTP id k16mr12966887wrp.227.1586422264126; Thu, 09 Apr 2020 01:51:04 -0700 (PDT) Received: from localhost.localdomain ([77.237.119.192]) by smtp.gmail.com with ESMTPSA id w7sm39758739wrr.60.2020.04.09.01.51.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Apr 2020 01:51:03 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Apr 2020 10:50:52 +0200 Message-Id: <20200409085053.26045-1-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/zerocodec: implement flushing 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: Paul B Mahol --- libavcodec/zerocodec.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/zerocodec.c b/libavcodec/zerocodec.c index e67eee4f7d..b0fab91004 100644 --- a/libavcodec/zerocodec.c +++ b/libavcodec/zerocodec.c @@ -139,6 +139,13 @@ static av_cold int zerocodec_decode_init(AVCodecContext *avctx) return 0; } +static void zerocodec_decode_flush(AVCodecContext *avctx) +{ + ZeroCodecContext *zc = avctx->priv_data; + + av_frame_unref(zc->previous_frame); +} + AVCodec ff_zerocodec_decoder = { .type = AVMEDIA_TYPE_VIDEO, .name = "zerocodec", @@ -147,6 +154,7 @@ AVCodec ff_zerocodec_decoder = { .priv_data_size = sizeof(ZeroCodecContext), .init = zerocodec_decode_init, .decode = zerocodec_decode_frame, + .flush = zerocodec_decode_flush, .close = zerocodec_decode_close, .capabilities = AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, From patchwork Thu Apr 9 08:50:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 18790 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 D301A44A84D for ; Thu, 9 Apr 2020 12:21:07 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AEB3268B716; Thu, 9 Apr 2020 12:21:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f67.google.com (mail-ed1-f67.google.com [209.85.208.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 867CE68B4CB for ; Thu, 9 Apr 2020 12:21:01 +0300 (EEST) Received: by mail-ed1-f67.google.com with SMTP id a43so12450515edf.6 for ; Thu, 09 Apr 2020 02:21:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=8zyfK+shrsXu4Sh403nrOzvfYVj+X3NFcTFHvpkUvCA=; b=t9k0beyI6UHbymVydx5mOHB2Nbz6zgBc4pxuD8G52W1y740vE6Q03edf7RobKtjPYx rFXkeSHqCVLQRNoKR65fYjXhcMUmMfqzpkdrmaNjCIhS7jQRIT7Gyb3Cjb9U8g2JraWQ dJlxN4boZ4r+WnS4pZcCqwJ4ICcf7UqhyPaAs82SUDJ28QX+/sHUfcxAU0iKK+ItPwJj 9tgId6UqZ+mCOK/znGmaCUv9Ga10fgiqevONLMC/1sGG3ge1XZG8/kujbf4XFdz5mTuy T53KMmt6WAnsim47f1uemT3TM63GgW7zHKR6jslefVEAe6vci/fFhLYSFZkapVe1/4WS HWcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=8zyfK+shrsXu4Sh403nrOzvfYVj+X3NFcTFHvpkUvCA=; b=g2jMV2oLu8FHRwO5tK8We7eWC3tam4jTP8JDtgjGuWBPNXvrFzdUmBQlcmnliAEUE8 sCsVIZ1tbX9cHGDwF4S/6HpcwCYwfpczOTa+SQOu6FDgOWmFMpCSaQInzfTQgDWGnCY9 OMpxJTso5FBjmZ395iKuRsqfUCpLl1VJ+AJ+d0wtHJylVbymlwJOAvUT7o12VUrrSPIh UaMAYf/EyB88gjyuv18PhzcUpM6E7IUCFSai4flUF6HKpV/QBWGfZ+NWW+7P2AkfDBun z3ozxVb/nI1HnaIEcYXR4HZoT+RyorLvuS5TXXhGOtQSbdYnIZHUy8ZMXJqh2OANu8X0 fBYQ== X-Gm-Message-State: AGi0PuaYW7cHvkaUas2J/AzR5YjbeIbxy6CH59EqCnMvgyKhEiq2BeIU 8Sqy9eHYCRybgYihVyIlYue7LAgc X-Google-Smtp-Source: APiQypLQOaJQnTyCnozvhHbJZtzSGN9TlVPrgr2UuKF3Vi5ctFzDxEghZ7cnfha7ofD8B6OJV81nsg== X-Received: by 2002:adf:f187:: with SMTP id h7mr3828325wro.331.1586422265298; Thu, 09 Apr 2020 01:51:05 -0700 (PDT) Received: from localhost.localdomain ([77.237.119.192]) by smtp.gmail.com with ESMTPSA id w7sm39758739wrr.60.2020.04.09.01.51.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Apr 2020 01:51:04 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Apr 2020 10:50:53 +0200 Message-Id: <20200409085053.26045-2-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200409085053.26045-1-onemda@gmail.com> References: <20200409085053.26045-1-onemda@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/zerocodec: use init cleanup internal cap 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: Paul B Mahol --- libavcodec/zerocodec.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/zerocodec.c b/libavcodec/zerocodec.c index b0fab91004..1051fdaa45 100644 --- a/libavcodec/zerocodec.c +++ b/libavcodec/zerocodec.c @@ -131,10 +131,8 @@ static av_cold int zerocodec_decode_init(AVCodecContext *avctx) } zc->previous_frame = av_frame_alloc(); - if (!zc->previous_frame) { - zerocodec_decode_close(avctx); + if (!zc->previous_frame) return AVERROR(ENOMEM); - } return 0; } @@ -157,5 +155,6 @@ AVCodec ff_zerocodec_decoder = { .flush = zerocodec_decode_flush, .close = zerocodec_decode_close, .capabilities = AV_CODEC_CAP_DR1, - .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, };