From patchwork Tue Mar 15 20:05:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34767 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:3486:0:0:0:0 with SMTP id ek6csp3313987nkb; Tue, 15 Mar 2022 13:06:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwH8+2mDKqsPEIiZqCqqRP9dvR/qwNABXDEVp1Bw9DPF6lekHq6lf4fzKjIX/LY6InJ0+OO X-Received: by 2002:a17:907:961f:b0:6db:c8f3:dc72 with SMTP id gb31-20020a170907961f00b006dbc8f3dc72mr12228054ejc.92.1647374810332; Tue, 15 Mar 2022 13:06:50 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id kw8-20020a170907770800b006dbd0276ab6si4599801ejc.816.2022.03.15.13.06.50; Tue, 15 Mar 2022 13:06:50 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=kJC4h9g6; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 568C568AFAB; Tue, 15 Mar 2022 22:06:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2108.outbound.protection.outlook.com [40.92.90.108]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 053C468AF2A for ; Tue, 15 Mar 2022 22:06:30 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jDkhc2acCGRPMxKnma0n//FfU6aiUVObiRpMBdqZNzfNtTweCIgiFFs3xqwz3lNb3SLxeYH5b/0K79vXAyeo4nTWXkZlw1Nq14YjXRtbjbJq0W5f0h3GAjW90DZhKzquUOs6sZprlNQmxG/O76/zIUsM8I8wMTuqfR5N7XR/LFTM8TRcDDy+0fn2hwKtqiAOUqRV8hbgT84uQZs2p3nwjjagp4mvDD6VO9LnIqLv0isn/w3bB6TVVRjxiyrE02CfypWATChpYsyQ7M0NXOrzaL2huses6+RS4x0IJVY4d1eq8ZnsvlYEdeILB4z0EeW/944ESh25DJ16bB+yGRY1Iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=F9O1Q2W0mSG2un+Fp+ea7Stz5buR+nftxAcgFD/YiNc=; b=m7z1dl/w9YP/ikt9Hn/lzn89yp1HXgHo4tMFAXi4xfHD5PRzroKscTBsRPbSVXrFZkdHsTzs3Oa7KHsCxjJLAoavggRmbbjngljVA+SgYEdbcTGpDDIbRXWLmaAKp4QGMsRxethEbW/uX9ufJqFE/o4OuiXTSV02ComFJ/iha2v//tfmaWWcFUzs39Wbp9G2p3l+/+Ltdxubs+dQxqB1fsVx/uqJVov7Gxg6ht6ZiWJ489Pxr2u3ppx9qCMK8ju1LTOnLFrzm+hldBBrj0HyveHmy7IaeSDTThWTjTYxmYvTjz4M5VlCoThMCsPyxD9n1lqDfgxIXX6cjHzu85b4Pw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F9O1Q2W0mSG2un+Fp+ea7Stz5buR+nftxAcgFD/YiNc=; b=kJC4h9g6feT7+EWFX/DV2D9W/7Wv3wLGcOVlkryLkJTPNqqe783UsKsSKhkZCJWqgmnbcs4ThKPJIE9NnyWVMKlYTJjZtFSi2K0jOoq8q2PtkuSCuKmdFdiXRyHeCS7Mw/FDJVRz9F38igP3JIqwbiDhzaw4R3tt0CU4Ng61NvSOJzlkRtM+derF1Tn+nvrD6gjwm/dUR/a31uoPM5R0aLTJqEWO/T0akNutJ1P36ZsAjZojqU13V+YPFs+u3AaL4G1pjv3dnz1cqRmnhSxdPC40PdxnK/ve/pLEBLYndLU3OzTJkxG0W+iifHjj6+PVaGpEjx9I/MS7Xk4CmBR0Ew== Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) by PA4PR01MB8947.eurprd01.prod.exchangelabs.com (2603:10a6:102:2a6::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5061.26; Tue, 15 Mar 2022 20:06:24 +0000 Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8]) by AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8%4]) with mapi id 15.20.5061.028; Tue, 15 Mar 2022 20:06:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Mar 2022 21:05:54 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [OUnLKIMJwKZ7e5LbiZ8QwNNORcTEjOP8] X-ClientProxiedBy: AM5PR0202CA0004.eurprd02.prod.outlook.com (2603:10a6:203:69::14) To AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) X-Microsoft-Original-Message-ID: <20220315200611.553534-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e024d2ff-577d-46ce-6253-08da06bf47f4 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQIK6GOv6I/5+ncmNhpuEjVCDySZfnDtAblVeddBXOQfMjXyeJq/O5BO3ncXhk4wHFlOKcO9VsS1xOECm2R2fv7AYTqdhHbdKKHMLZPKxrz6nN7j4sITHHiG27A+eQBA2eRuc/6+XY/vj+RqYnMGZfZzg3tHOUF/qh2COLEnkVxWhEr9V94tbL4QQxXF2zMl8isbDBUgJaXUfYqN8eQyv+BmBCKWFx1Xws2ymj7kQG83ZKmvYyIiE2qgY5vchBSGxFSChFRggljWqryvz5+noN923v66vl0c+VsF54Pilg2v5P+fvCJJHZSZyT4tcniYXIqkFUXREyd152wnICFmWjs4xP6S2RV84U7jIIAurDXPmjzEtbpfQpMgULJsirDfBivWq2NfFgwc34EnuPPYzzoSPQow11e7Jk2MAAV+u5K8tJDXIcnwg6o8aqkpgqtfOmkKEl4qEUsIwXS/yF5M7puG+PItNVQOOfDoDFEkAySmoJ194t0kWXJjKEpaWno2oIdQ5XW8PrID1HdMP7yT7Vj4kvDFOn7fGzv3mgTZbbD5tPGAmSils6z1gxBR5OG/eyKhPZPySPe619bS25ory6s+FGFXXbEkCl+ECChZ+uWC9jxGkw7qu86kh6QzTsAMrRwLN4K74EZk+mUDrdWKgrsiSyQFv/ARSNUtj+goCAGiyIW8wjpAEmDKQLujGXKsJfttdk/kZpurKc21wdPx3SntQQCA+77Wlm3KeHO9dqXXLgQB6W03fllVwu6qdLnS7E= X-MS-TrafficTypeDiagnostic: PA4PR01MB8947:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MK7Z3zHIBKSU8ydPvXu8y9/mCO3d1NFbNOPgdRWCvMj0vhs7soJdIChL9/7nS1xIpN9qmfn4quocolo6192x8iifhEQ8wAz7Hh561U00lAlzVHkzpnGodgh4l/Sf/K3oxIDdhU3R7WCyzHRncEKD9niQ4JwqVcLK2wPGohHZkWsw+PSctws/Oe3YTNsqhsMjvjzR7lmt4pUeWzHFUrQ2hOK4J9m9QS3sfz3n5Xin1lV2edeKAO0C916VqBUMiGs1v56v1bV/JB41Sqtf2r8XrsJvOQfF2m2Aa7yq4H5a5BlNSBhcD1nxHFVwTPLZ+k6AQQw+KtS+rSCfG4cwbcmfWsKFUYBveJF3Jw5EcG+/YrBPTg649tXHUClVZ3/WDmA3L84mdeW7901M7XUdM+E20OhDObIF7FSVhJ6aNOPC8Zy0VGVowq9lL6ZkGfdVm/cnZN0n1nZkJv2K6Xi7Bpay7BR5kFN8+8UVaj0/MClxJHF6/h2i2j+KrkbE3Pl6/0QadsEbI14wrZgdNrHfees3KNY5q0N2nGSXOfWvxNy3yje3q1upzqCT2nMWQD1bB3XilmIhZ7i1jGx2N3POXY2WLQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hB/z+u6g8XQjXq0SeLUC+XNfBgdtcTxOKIrYOkkybteFzVdkjfoni8q30jlxWhJnVd9iv1Dkk8UR0MF/y3KUpXOy6qGyc5mEN3d/egMP5KzMBB2XkBc4yFZzwffcfolmp6Kn1cWyeXFdltUqiaRVxPHchkwuGcgGVw+FMcPYfs5yuhsFIPvC66akUUxUvKVmc3H8u+wo5/1+sILoUGF4M41BQmZpHzEZmkW1F9QgcpwW+aoOaHlxe6JY8cxnDYKSCsW5tHbHx3e20enXIV5b8WwXvWZ6ig8cIlnbQoNPbl3v7uQLxvudTaRtCvgJ8QQu5gkBL5fhJ6uOhqOfibqPZfINv4c+rtX4GRsNXW3aaLcgeJrkHEHmjmNxz7rmuMAocrAIVUP4Pa7HdEGGGpdcLpMESxb6/AmcEn0U8rbIakMJOnNVtwEpYXq0rl6B/FHnTMHOpmAVinuB/EGc9ZlLLHTm0J0wmT/D0pOilbOvaTXR2mGzluLYR2Ew2PM7fKScsbHAsV8Wvcc5UUA4l19pHzyolMG8UVpR48Aw52/I3PL+/m1MKeCN6l4YMgMDLNZJVFHFwbBG1ELvUhQ8zQlF3e67WwqA+WNaA9eZUagWR5dLodTAeCVIZybwyh8hcclQbrI6poloFXn7Lyi7USuNe1585099K1kMcw+GAjsz7+vPW0vVpVDyIiT6NiMgHxntdEk2fJjwTP7aeHkdRMXzxMF7a+yQv23kbqmblt/3UtUKc0fy9vg9Bu7+yDCZp96HQNZsMtlQ3lGEH4cnnwIIffgSsb3fObPjk2sgxfHLVgpeMUZYawviMFTdO3APRX5+f0EHEVqwDaB1cQUCZyPq1haJ/+n2/4+KdopyvETKApYKezpmZHb74qtSj/Uh3g6rVFWSgM4fcL1TjJA70k75LpaYlJV0zb0QtLihfEjzA87UZmx1B4dC2t5ZCs0zfPNXipqB6I8Du6v90nB+UWY6PVgVDvqEcMQbRpOzJR6PnYYsYJE7rWAVwUrTPlK/Ehww6LSTSlmKwzvq3Wr061e7cntBWbEWufhk5lNQocdSX+UbSoq+Rk0sIuGV8f4DaGrKW//ZOrcpioUysSKmUVpQ9ECr07dzdmjz/ifIK8RnXzWA3T0avJiNmgXQRcw0crA5GOtTVavJERB+HE+elAKbT/KG+f1MUod409OY5b9FqhJ07KJwx/nJjV82BW4pOH+x X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e024d2ff-577d-46ce-6253-08da06bf47f4 X-MS-Exchange-CrossTenant-AuthSource: AS1PR01MB9564.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2022 20:06:24.4095 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR01MB8947 Subject: [FFmpeg-devel] [PATCH 04/21] avcodec/zerocodec: Use ff_inflate_init/end() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: v+DXtzJLnr3N This fixes the problem of potentially closing a z_stream that has never been successfully initialized. Signed-off-by: Andreas Rheinhardt --- configure | 2 +- libavcodec/zerocodec.c | 21 +++++---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/configure b/configure index c86e70e985..7c87548359 100755 --- a/configure +++ b/configure @@ -2990,7 +2990,7 @@ wmv3image_decoder_select="wmv3_decoder" xma1_decoder_select="wmapro_decoder" xma2_decoder_select="wmapro_decoder" ylc_decoder_select="bswapdsp" -zerocodec_decoder_deps="zlib" +zerocodec_decoder_select="inflate_wrapper" zlib_decoder_deps="zlib" zlib_encoder_deps="zlib" zmbv_decoder_select="inflate_wrapper" diff --git a/libavcodec/zerocodec.c b/libavcodec/zerocodec.c index 3bd04567a1..86cdf96f5a 100644 --- a/libavcodec/zerocodec.c +++ b/libavcodec/zerocodec.c @@ -20,11 +20,12 @@ #include "avcodec.h" #include "internal.h" +#include "zlib_wrapper.h" #include "libavutil/common.h" typedef struct ZeroCodecContext { AVFrame *previous_frame; - z_stream zstream; + FFZStream zstream; } ZeroCodecContext; static int zerocodec_decode_frame(AVCodecContext *avctx, void *data, @@ -33,7 +34,7 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data, ZeroCodecContext *zc = avctx->priv_data; AVFrame *pic = data; AVFrame *prev_pic = zc->previous_frame; - z_stream *zstream = &zc->zstream; + z_stream *const zstream = &zc->zstream.zstream; uint8_t *prev = prev_pic->data[0]; uint8_t *dst; int i, j, zret, ret; @@ -106,7 +107,7 @@ static av_cold int zerocodec_decode_close(AVCodecContext *avctx) av_frame_free(&zc->previous_frame); - inflateEnd(&zc->zstream); + ff_inflate_end(&zc->zstream); return 0; } @@ -114,27 +115,15 @@ static av_cold int zerocodec_decode_close(AVCodecContext *avctx) static av_cold int zerocodec_decode_init(AVCodecContext *avctx) { ZeroCodecContext *zc = avctx->priv_data; - z_stream *zstream = &zc->zstream; - int zret; avctx->pix_fmt = AV_PIX_FMT_UYVY422; avctx->bits_per_raw_sample = 8; - zstream->zalloc = Z_NULL; - zstream->zfree = Z_NULL; - zstream->opaque = Z_NULL; - - zret = inflateInit(zstream); - if (zret != Z_OK) { - av_log(avctx, AV_LOG_ERROR, "Could not initialize inflate: %d.\n", zret); - return AVERROR(ENOMEM); - } - zc->previous_frame = av_frame_alloc(); if (!zc->previous_frame) return AVERROR(ENOMEM); - return 0; + return ff_inflate_init(&zc->zstream, avctx); } static void zerocodec_decode_flush(AVCodecContext *avctx)