From patchwork Wed May 27 04:10:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 19887 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 D13DF4495CE for ; Wed, 27 May 2020 07:10:53 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 903356882F5; Wed, 27 May 2020 07:10:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A3A6680879 for ; Wed, 27 May 2020 07:10:47 +0300 (EEST) Received: by mail-pf1-f193.google.com with SMTP id 131so2883501pfv.13 for ; Tue, 26 May 2020 21:10:46 -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=O8CCpXCw1c1I3gMQjQY4k2tnsR47EcxCPq7nFuaDO+w=; b=Xl4f+DeCDtPmD6Scf7ghbm4wOJXaLR/kF6jfBuqxQB4tmGbo1VIuf6Oc9F8CGDjpXf 67VMIBg6fWBU/xoVIfvco3ueuqNWupDsFXQs8iaKfB3aoDHMFyQeBK5o5RaJK9rx0WJE O5mRrauChJFV/8NRA7uOs8powsQod6FHThB1meKULvx/tHg7xsarMSWBoos0nRRRB3NE 0OKwhbdwG0RSmMAW9g9bTHiP5rCA7ZUpSpppOPP/Ija17VVOb7RxcreAHyurI/oIzwqc FuwyLOD1NC1zesiQHwS4omuslhSfxwN/fZalztZVyHt7ufAr9lPNEUKmKkjPySpowM1v A6EQ== 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=O8CCpXCw1c1I3gMQjQY4k2tnsR47EcxCPq7nFuaDO+w=; b=U7+ZoWDnWEcO4oQL7a1lODLNEl+rlitWU+yyVO3O3o2onUybT+zEFc9rAEvISP9+An cXANzlrFCJNgrwaKC8/kyTfEN1aooJ0pzXf9ZRy+/yYaQw9DUpP7wIrDVbKEgdFuApoW pPnNIRgcWwhlQ6ZTWf8pB49jKh35DEzGkAvaW8bAp3lEfXyG6GQjdCB/pOiY6KPkNqEz 8GDSKCj+lHnpqrSlY58i3i5AOPeHef2MwN/PGrlaUTJ/WT/GOqcwER3ynJSdOfxnLLj6 clrO2N6aZ3yw9J6tuILC+6u31J38QVmLDjnk0FEIoTvuoSi7Ad1THhSx9Kahna5rPOxh xfhA== X-Gm-Message-State: AOAM531JSEJAQ9DiFD7fs/CQuptFk+BP/YVytzo70/41OpGpHYcPfymI 4y9nOthbwncKqmsoqMpciSEeKar5 X-Google-Smtp-Source: ABdhPJw1+lulqfhSiFXlcDfHfXRjguRfb4Hs53oouMqOCNsw3KUJ1KTpmeqBmkxTjWeRdJYOSuQ5Ww== X-Received: by 2002:a05:6a00:1490:: with SMTP id v16mr1955174pfu.173.1590552644838; Tue, 26 May 2020 21:10:44 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id 131sm871988pgf.49.2020.05.26.21.10.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 May 2020 21:10:44 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 May 2020 12:10:32 +0800 Message-Id: <1590552634-15101-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1589800269-30359-1-git-send-email-lance.lmwang@gmail.com> References: <1589800269-30359-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 1/3] avcodec/adpcmenc: Add FF_CODEC_CAP_INIT_CLEANUP 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang then we can remove adpcm_encode_close() in adpcm_encode_init() if have failed. so the goto error lable will be unnecessary and can be removed later. Signed-off-by: Limin Wang --- libavcodec/adpcmenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index 668939c..1c84561 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -146,7 +146,6 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) return 0; error: - adpcm_encode_close(avctx); return ret; } @@ -717,6 +716,7 @@ AVCodec ff_ ## name_ ## _encoder = { \ .encode2 = adpcm_encode_frame, \ .close = adpcm_encode_close, \ .sample_fmts = sample_fmts_, \ + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, \ } ADPCM_ENCODER(AV_CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt, sample_fmts_p, "ADPCM IMA QuickTime"); From patchwork Wed May 27 04:10:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 19889 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 0A0FE44B7CD for ; Wed, 27 May 2020 07:16:20 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DA9AB68A935; Wed, 27 May 2020 07:16:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f65.google.com (mail-qv1-f65.google.com [209.85.219.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2F9DE689AB3 for ; Wed, 27 May 2020 07:16:13 +0300 (EEST) Received: by mail-qv1-f65.google.com with SMTP id x13so10604558qvr.2 for ; Tue, 26 May 2020 21:16:13 -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=0RS+OinDHK0nfoSlNPv/vxIHO/qG6YmiDvmwxLETRx0=; b=JqzDdRaRBWvYd1QiAdy9EaNO8FMrNgRmB95PzXxgyJbsQFEK0+t+rp32CzSvy2k0Lw uChMVnmrjuf+yA9miXgLT50mPNI5qpgSsi50XsD6Anzfu1cT9zzvRzdwP3Mr1oELeZCT +IMTH2sWHe2ad1DZG1JPPpfeK0Yjx1gXFhv9NwJFkXFSG9nzWf6AcYFv2r9POL+Sp1Pk O+gruZtCrp7Ni3RxpEBcxlLWhV9Tb9mE0qIujNvJHw72YiYt/dsJzwWv9rXEsI7oC7Df g3RWWaudvOHg9yNXNSailX6k6ETh8Z8tD2jwbuGu6iDvk94O7MlJvH5BuiAARmX4na9e RZOw== 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=0RS+OinDHK0nfoSlNPv/vxIHO/qG6YmiDvmwxLETRx0=; b=JBY6Fr8sslowmQ2+F2W8ctHZwB7Iz/+HP2yqh8HCkFAyCfONaxNHeIRdA3J+1OQq5L sP+TiAOL8dKcwKh3JBaeYcoNbT5L5rV0X91744o1ao5WORNam3kAt/UI6rwgM6QysrJp 1/SUHGRB+aMPjiFOPH6AsH9pflSnEps/oFC/7K6R/gkEtMH4Y+6xysjYikcZnONUt1yG woiMhZMjmwBowVYPiiD7pQD5mnTqB8v4whWI8RYoww1xpz/wUlsFhP79znvqbBwTzIiQ TnhcKCbt/cRAEkB8XXsDs8jkDSSPZE7ugYInydzeG76F3NDizJ6DWstFEUox2MKyc1Wj rBVg== X-Gm-Message-State: AOAM533PSeCKIdGp8M54Cnf6fRJNIwaG5r6LWjwIF48m/dATaIVoT+jU hpsGp5uUDstwjB5URbpGWfjeO9gx X-Google-Smtp-Source: ABdhPJy9dJY1jNGIDHL+Xt4bS1Uj92rRx/rHmV0VHFm/CO0MlVZPlf3+T8NpH+LUWez4JcDhNgwLww== X-Received: by 2002:a17:902:ab8d:: with SMTP id f13mr4239541plr.58.1590552646569; Tue, 26 May 2020 21:10:46 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id 131sm871988pgf.49.2020.05.26.21.10.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 May 2020 21:10:46 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 May 2020 12:10:33 +0800 Message-Id: <1590552634-15101-2-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1590552634-15101-1-git-send-email-lance.lmwang@gmail.com> References: <1589800269-30359-1-git-send-email-lance.lmwang@gmail.com> <1590552634-15101-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 2/3] avcodec: Add FF_CODEC_CAP_INIT_CLEANUP 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang then ff_mpv_encode_end() will be unnecessary in ff_mpv_encode_init() if it's failed. The FF_CODEC_CAP_INIT_CLEANUP flag is need for single thread, For multithread, it'll be cleanup still by AV_CODEC_CAP_FRAME_THREADS flag if have. Signed-off-by: Limin Wang --- libavcodec/flvenc.c | 1 + libavcodec/h261enc.c | 1 + libavcodec/mjpegenc.c | 2 ++ libavcodec/mpeg4videoenc.c | 1 + libavcodec/mpegvideo_enc.c | 6 +++++- libavcodec/rv10enc.c | 1 + libavcodec/rv20enc.c | 1 + libavcodec/wmv2enc.c | 1 + 8 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libavcodec/flvenc.c b/libavcodec/flvenc.c index 15f794e..c122727 100644 --- a/libavcodec/flvenc.c +++ b/libavcodec/flvenc.c @@ -107,6 +107,7 @@ AVCodec ff_flv_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE}, .priv_class = &flv_class, diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c index 315762c..196c37b 100644 --- a/libavcodec/h261enc.c +++ b/libavcodec/h261enc.c @@ -394,6 +394,7 @@ AVCodec ff_h261_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &h261_class, diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 7bf4de2..56ccbc5 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -415,6 +415,7 @@ AVCodec ff_mjpeg_encoder = { .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE }, @@ -440,6 +441,7 @@ AVCodec ff_amv_encoder = { .init = ff_mpv_encode_init, .encode2 = amv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE }, diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 2e0b119..a6a15e3 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1399,5 +1399,6 @@ AVCodec ff_mpeg4_encoder = { .close = ff_mpv_encode_end, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .priv_class = &mpeg4enc_class, }; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index d49185c..5a499fb 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1060,7 +1060,6 @@ FF_ENABLE_DEPRECATION_WARNINGS return 0; fail: - ff_mpv_encode_end(avctx); return AVERROR_UNKNOWN; } @@ -4743,6 +4742,7 @@ AVCodec ff_h263_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts= (const enum AVPixelFormat[]){AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE}, .priv_class = &h263_class, }; @@ -4772,6 +4772,7 @@ AVCodec ff_h263p_encoder = { .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, .capabilities = AV_CODEC_CAP_SLICE_THREADS, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &h263p_class, }; @@ -4792,6 +4793,7 @@ AVCodec ff_msmpeg4v2_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &msmpeg4v2_class, }; @@ -4812,6 +4814,7 @@ AVCodec ff_msmpeg4v3_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &msmpeg4v3_class, }; @@ -4832,6 +4835,7 @@ AVCodec ff_wmv1_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &wmv1_class, }; diff --git a/libavcodec/rv10enc.c b/libavcodec/rv10enc.c index 8691d18..5553814 100644 --- a/libavcodec/rv10enc.c +++ b/libavcodec/rv10enc.c @@ -79,6 +79,7 @@ AVCodec ff_rv10_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &rv10_class, }; diff --git a/libavcodec/rv20enc.c b/libavcodec/rv20enc.c index 81fb4fc..d9d63d4 100644 --- a/libavcodec/rv20enc.c +++ b/libavcodec/rv20enc.c @@ -76,6 +76,7 @@ AVCodec ff_rv20_encoder = { .init = ff_mpv_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &rv20_class, }; diff --git a/libavcodec/wmv2enc.c b/libavcodec/wmv2enc.c index 74ae12b..312dbc0 100644 --- a/libavcodec/wmv2enc.c +++ b/libavcodec/wmv2enc.c @@ -231,6 +231,7 @@ AVCodec ff_wmv2_encoder = { .init = wmv2_encode_init, .encode2 = ff_mpv_encode_picture, .close = ff_mpv_encode_end, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, }; From patchwork Wed May 27 04:10:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 19888 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 A3B294495CE for ; Wed, 27 May 2020 07:10:56 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9072B68AB65; Wed, 27 May 2020 07:10:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1A7BC68AA08 for ; Wed, 27 May 2020 07:10:50 +0300 (EEST) Received: by mail-pf1-f194.google.com with SMTP id y198so11264719pfb.4 for ; Tue, 26 May 2020 21:10:50 -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=HrRHME01xcEYLq0lCS/TSKVMNoUbso7uo6rNvrX1cCI=; b=NABxXD9TBJ68JzxqHMXlLB28uiIex/KIHMwl//gt+cw72l9ic/bT+Jym3lS2F1aTox yIJTGFhMDV9MWA2IKqBGhDoXYczvXA0e6zlp5f4/yZhdZwE2XQuCcXriFObYnjGK0gku kLAnuKWCSX+ZLQzDlvIUhBvvieNy4HwahrSpvPLp5kTjvypLCUdWMivO+RWXKauMzHL6 iI8BCZT18I3shdr9Wg8KlATlp2jakQyni2n0jdVA9tMUdi5a6dtUSFzUjArhgK/9ZtbF 3oFPWXIEGC7Fm26ftXjW2XPsLJr4nCVqhVL0BxusKpwmyYJHcI1Ty31y7tPyO9lYZswu Jirg== 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=HrRHME01xcEYLq0lCS/TSKVMNoUbso7uo6rNvrX1cCI=; b=Gl4LN+Lx4d1YIChscCTT6QTaykWjd4jMmQwQQLCGDqLjvcYbiQrCTHAFFWQ2QAfCPU QyBr+44rMeGO8pEqq3BxZz5dNOqzt7CfZ97MYzS7dYC+V5cC0Y4p1I9FuP30nSPcZ5jG gwVfK1Y+nt1j1JlO9/XHA7m/20C368HYtwL0Je6ZVid92T0U2SqeZciS9vulzszsszIe yHxRtq3cnqjCuM+ySvMYFuhZBmem483Yvc12upOXfT6tcVji3E4eWCH3qmn9Rk4R5AMz adMkOwzaHh34sBLC8/52GOLKSk0o9X2ztE4N+HNWe8wSv/RtZTmf7VoLuI4eCFe+FYuw RxOQ== X-Gm-Message-State: AOAM530i7PKtrxlbJo3UKtBISyqcjREKKM8ZWkv7OYzAfTi4nbOqfYsn B9o3UChINWZhs8nv8m3YXa5I5w6U X-Google-Smtp-Source: ABdhPJwhcHjasnLzbhlgs45Qi7jCHZrFJffDLxUjL8aetjHBLVsVFlmWypR5rPh5neixO+rij/j4+A== X-Received: by 2002:a62:a518:: with SMTP id v24mr1869679pfm.295.1590552648208; Tue, 26 May 2020 21:10:48 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id 131sm871988pgf.49.2020.05.26.21.10.46 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 May 2020 21:10:47 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 May 2020 12:10:34 +0800 Message-Id: <1590552634-15101-3-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1590552634-15101-1-git-send-email-lance.lmwang@gmail.com> References: <1589800269-30359-1-git-send-email-lance.lmwang@gmail.com> <1590552634-15101-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 3/3] avcodec/h264dec: Add FF_CODEC_CAP_INIT_CLEANUP 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang then ff_h264_free_tables() and h264_decode_end() can be removed in h264_decode_init() if it's failed. The FF_CODEC_CAP_INIT_CLEANUP flag is need for single thread, For multithread, it'll be cleanup still by AV_CODEC_CAP_FRAME_THREADS flag if have. Signed-off-by: Limin Wang --- libavcodec/h264dec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 47d7cbf..1b46660 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -228,7 +228,6 @@ int ff_h264_alloc_tables(H264Context *h) return 0; fail: - ff_h264_free_tables(h); return AVERROR(ENOMEM); } @@ -420,7 +419,6 @@ static av_cold int h264_decode_init(AVCodecContext *avctx) av_log(avctx, explode ? AV_LOG_ERROR: AV_LOG_WARNING, "Error decoding the extradata\n"); if (explode) { - h264_decode_end(avctx); return ret; } ret = 0; @@ -1082,6 +1080,7 @@ AVCodec ff_h264_decoder = { .capabilities = /*AV_CODEC_CAP_DRAW_HORIZ_BAND |*/ AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .hw_configs = (const AVCodecHWConfigInternal*[]) { #if CONFIG_H264_DXVA2_HWACCEL HWACCEL_DXVA2(h264),