From patchwork Tue Sep 15 07:39:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22404 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 AA1FF44937C for ; Tue, 15 Sep 2020 10:43:30 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 12E9468BC92; Tue, 15 Sep 2020 10:40:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D5C6668BC5A for ; Tue, 15 Sep 2020 10:40:49 +0300 (EEST) Received: by mail-wr1-f65.google.com with SMTP id k15so2133714wrn.10 for ; Tue, 15 Sep 2020 00:40:49 -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 :mime-version:content-transfer-encoding; bh=WejM53azaIK6uc4+VsJpETle8Z0iSZaVQXoagux97fA=; b=Xv4jdrsLOoJKq8CfTxJGJ2LLHA5T+bhaFuzOWIXU49/Bj2U5yyPZUezTp+356SGMGx v0DaYUSQ+EJ4rqIXq2Bzz5SuX5MC8ujShRiOstc2RXLvW76FO1skeXdXrBdh+yn+I6f4 XwtnhbVhynp7lTOBVoo0/rOi50gvyVGMkKt7KeyuJJTGJ637q/6mWxGU8NpXnfi83guz 5tgxe7d7BUKUV8WioRVugp8RFfpB3fd60drF3HaPNbffxBMYDZRPRaZmgwMAofmixS8A ra8i8z2Fc2dVRQhDeRpVyi1SNkoyrsPFabzS0FUdq/0Fkh6gsiEyKS9/DBewFVbBm+5c Q3Nw== 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:mime-version:content-transfer-encoding; bh=WejM53azaIK6uc4+VsJpETle8Z0iSZaVQXoagux97fA=; b=jcrt2dy7aIFxSLZGweCHFUQzlN+8vJYX+04jVWnZqRGq+CD6E41FnwlETXKNQelo63 KX9o07RIpK945MdQh+pZ/C+fDcgFPEhJILqVfiGUEn1E5lo6RapleSwZKfzeRs+F8beg R+qX1bZn4yDRL8TnAu9K8SXpQgxu0RkMsHtJhUprwyrtW5dtdpajpsq6uxC6j8rsWbYc SbZ36aEzXwNNZE63CIjpPGdS1B2SdSpM89SL1r9V/74uvGwDlg3TuEVHTQAb5teoQeIW vRzqCydO5QwrRescMgk9jC93Fu5eeUYHtFMlkhfL3GkVmrtxl/WzBu7jomnOMCZYhdeC MV1A== X-Gm-Message-State: AOAM530mdD0nxqfe6SbLDElraRIuIJiBIijY/bFDW+92lW8gvPhMaexm RnFLoiOlSB5TODZ0LrKsnXNqPVnxxpQ= X-Google-Smtp-Source: ABdhPJy9m0kOzSixncZfF6Gf3rTwKl5Zda1eiDuYeVAm/T+r/X0f5nstLG2aJsxHVpOR5iyZwo8aeQ== X-Received: by 2002:a5d:4cc1:: with SMTP id c1mr19841363wrt.122.1600155649036; Tue, 15 Sep 2020 00:40:49 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:48 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:53 +0200 Message-Id: <20200915074000.102622-23-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 23/30] avcodec/motionpixels: Cleanup generically after init failure 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- libavcodec/motionpixels.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libavcodec/motionpixels.c b/libavcodec/motionpixels.c index 6cb444a703..b48200b017 100644 --- a/libavcodec/motionpixels.c +++ b/libavcodec/motionpixels.c @@ -81,19 +81,13 @@ static av_cold int mp_decode_init(AVCodecContext *avctx) mp->offset_bits_len = av_log2(avctx->width * avctx->height) + 1; mp->vpt = av_mallocz_array(avctx->height, sizeof(YuvPixel)); mp->hpt = av_mallocz_array(h4 / 4, w4 / 4 * sizeof(YuvPixel)); - if (!mp->changes_map || !mp->vpt || !mp->hpt) { - av_freep(&mp->changes_map); - av_freep(&mp->vpt); - av_freep(&mp->hpt); + if (!mp->changes_map || !mp->vpt || !mp->hpt) return AVERROR(ENOMEM); - } avctx->pix_fmt = AV_PIX_FMT_RGB555; mp->frame = av_frame_alloc(); - if (!mp->frame) { - mp_decode_end(avctx); + if (!mp->frame) return AVERROR(ENOMEM); - } return 0; } @@ -354,4 +348,5 @@ AVCodec ff_motionpixels_decoder = { .close = mp_decode_end, .decode = mp_decode_frame, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, };