From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 914D7410AA for ; Tue, 15 Mar 2022 20:07:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CC1CD68AFC9; Tue, 15 Mar 2022 22:06:39 +0200 (EET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065070.outbound.protection.outlook.com [40.92.65.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8966C68AF33 for ; Tue, 15 Mar 2022 22:06:36 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nhifhK1PZCN/F7yK72sOrJB4F6HKLy3BfgI3BK48t4uHLrOTceeyaEUbY8DVX33ynvNtN/da9tMyPPF0WS36b9zWV4buAOwPt86eFl9SzPUKcYOzvBdipG04QAK2HhZayzRorpZ6lipT2Nu/VWHO8HCQur+ePtFJNvppEohzssDPd1Z3O4GGfiRdTmtQa4BM5BjGaUDQKMjHmgxnUu1ECk1XvC+lrPNVblvVotDlLJlkFuhN/Qw2pdyrkgxhYlHGVkaDbOzxu6mz7sROi7lcnIBLbis3t986Wl45BtYZxwFRmPpItDQHL1DjfPfqNvF/VfEro4oNHhu7pe31OylqBg== 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=vCFvx9G4fED47lwNSOoK07iZEYwAO2GRH4vkwypsV6o=; b=W39KfZQ2mHsLxdVGhxhswQxDrQRpEl/rJDm6GjTToZ3KhGgWSvBzXSlIlRe8OP39CmjG+U249Kwf393uGTb17FUVWx6ROzqcr2eT4O/0M8T805c7FFRJ7wWaBaxV5/pra8AHfmOYS2Ajlhmjr7JXAnEGlFzplqC35FxpLzG95NX6fCE6cwEKhPblTPRPRNVOtDNxGB2f2DMvCpH8xk0fHT6rw5cNzfCOw89a9miP02roKpbpEmb4KX00kof97KrRsth+K/2eIf/rUKTpPf4U222jma27NX2orU7os97nV9J4r04flHaelm4iWKP9KyMxMk+Cunnp/ODyatg/R49kJg== 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=vCFvx9G4fED47lwNSOoK07iZEYwAO2GRH4vkwypsV6o=; b=EBequ2Cw1h7njpjQygnrW4BbhU91bNvet1l5INHsD3lTDnew86IQMibz9atA6jTqP1lop5jcXQGKCqVPMUnbdY6vyIT6U4g3Ed6fhX9PcURvLvYRHo0MLoZ2lLG3oF9Rxp2SSJJff0ijrYP9KM9tAE2wK5j8zZ9pTqFuBsBEoLO68O0wjqv/PowayXmF3DW5+GskB2d142yQN26lBND+h/FPzg/5yefag8e1aQk/0BAiynvNRcmNaenBEAHBthAB8U+IREB3A+jroQUdP/wRUwfQyLEKeS1UJ2Jt02T0xEuTmm5bSphqEIW0N0PfLZrS0UrYqvBIXMn1ar5c8fMEmA== Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) by PR3PR01MB7035.eurprd01.prod.exchangelabs.com (2603:10a6:102:7b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.14; Tue, 15 Mar 2022 20:06:35 +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:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Mar 2022 21:05:59 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [zlkZF/QTBfIwVcS/vnG4hspTNs9vm5Kd] 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-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e5077537-7328-4bd7-c313-08da06bf4e40 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQIK6GOv6I/5+ncmNhpuEjVDy4rDU/3HqsNTIAxbwtq2DZjat0dSNhtcY80/I2i+ICIBIXyXk96xtIkFGdoyA1lH2qI/pnlD70iXozGoYVzPUDke6t63cSIN8nM6OHiZe5hSbeq1SAiZrBlKkOJPCSfn7zMVdymXA0u+NGcPPlCYW5KZMrS0LvxgWzG4MHGaPhTmgJ8kVip6C1aA/Ou+8CdOafUAB9HkHBKwGU8KzsYn7bcqTAHyKQ+CplGoSwg03QiT3Rs71aORpswOi0RV8JNFeWavZVwpcRx8Ziekntk2B/EtW7d+SirWO+Zq7GNHZGwzTiMwvN5z+0VvBPFtBuu6AnC4UAP1/l2OjlezSvFIdenvkebljQVQixKHcC2fD62uF7lkUKBQHv9PY8lR/fqYDSsz1AWkEAudQFC6LSfd2QKsSls4aCnRIPjWFaFbpOVKEJ9BgYvX5VrQMMPj1mKQZDwjqBbWmlRD+kV0gfNpopea3qdb000ECdxXu1gX+fHEuUzNmVXwTjlRsL92ka5OZmD+Epn3YZjP0o5mbUfdBisVkh6v4jN/vk/l1+E3M8SWel4V6cDxXAALrTzPe82HsIsPQ2qAX0B63HBeNKa8qqdxxAC9pdw2zFYXmgGsEIPphljSaTUN5BkFJPHnJntrJrJ16/2NQeOypuASg1Q5uYtGkx53cjgtMMX5NaVSD6Q3ksKRLPh9a3x2kU83xWE5YK+6EF0p9eezX6kCUMZWVQX2SNfIj1prawbGuQ2xCA= X-MS-TrafficTypeDiagnostic: PR3PR01MB7035:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J1+Fml1jv5+YpwZKFD2Gt06C9D4OyPEICAZwOpWpHVpHS5bpl5iOpycQ4VNq/wXiRWey+j0R+Swm8sw547WoTKWSAjmP0Wa6M3VfoLewkKnCJ5Ugjrp9UfBJ0exrTiKhriEBwz948BUkmiXc5U+citKgfnzzE1xdHdYlZrN28HzkyewYsSzQJpUJNqelUcvWdq/nVbU8bdIUehc9Ki6OEBcUNcekLDN1DATkJQR4fHRrtly69extaJMSrnJDP5Zckt/QhRRjBZBXut9VJpEsdHB2pYZQUtg2h316N+99ucCSMLLTDJDaUh3QcNJn/HKpUKL/pQB/e2w3EZn9BaEYXH5hRGAqi5XJtgAwbGrAvG5Wmb8SWJy7nkeE7+J7JLmNTm++sNpKDDAmCH+zsePbPBA5URZPrTjL0j9j0KPDxmPFqI01oek1OmScITJB/LjMaIZ3kPfiCzKiwtycHvWIgiITXG7X5c1Eqjcg6I2orXLUAaZ4kRb8uwqP579ErDQqENqB5T+idDaZdehiNNUEtN8FLyVYpXxKo/3iWFWy/xSP6t1shGq6MHmCE5Ufiy8lLNKV1/p2I0nx70j70qvAEw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tGK5RBI4io1bROX/3BCkdORjgge2U9OQIU/reDR+mf100FqyNmzlr06CB+iC?= =?us-ascii?Q?4c8PfC46sMTI4uLFVy9I1MnAP310N5Yz6j7T4lmarBejfVMBWM1jPQxeXfQM?= =?us-ascii?Q?dg4Q4udsII9TS9wNNWQRKk/vH85HVSeNnKsnp84DbCqWImB9XVj3Slr7aeE9?= =?us-ascii?Q?nvHTkmzs8n3GnTou7hUpuoNzzOROlJRk981NP+2eYGC7m/HrMYcnOUHlBHwK?= =?us-ascii?Q?3Ipj2emIHnvBHlL0QQk/2ks4thr4G4vsAN9BLyStWYWem1OYOMI2HAAHwQC2?= =?us-ascii?Q?3AfLJpH+srg00c97lLW3IBq/rnWob6qR/u+hoxiPoeACWrBSWl7tl890VZ9q?= =?us-ascii?Q?olEeTyQp8jm/b8qlAFoKldyaO154Ih9dO+rtEVhIixMTPOXBQd6akG95hvVO?= =?us-ascii?Q?J8bpKSqiysnGdbd7YNf590FvzDSqJlVEWwPd/yrbBSwyuo6AvD594m31h7/U?= =?us-ascii?Q?C32+HOuSbMf6ldX+q29z2U/fuS+NDIOijTbW+p5Kl/0/7Dft1PEvjHuYv1Rh?= =?us-ascii?Q?qPF5VjJHrT5uoYI1wXYHOk2LHqSR0BZ6iUSKLuU6rhkBcjTzcHrpZq69Q7l9?= =?us-ascii?Q?q+iqyGfOoO9U6kbGE41u4oAzpU9O57+t3MdmVVzmiMIl6UajsAW9Acd24n9t?= =?us-ascii?Q?AJz3w0F2BI0Rkd0aYD1Z4PtFV8WFWkikhIS7eXmQGUfI5nyCbi5X+hgsdPWq?= =?us-ascii?Q?45+Sut9jDiXImw8NN3YyZnKETgMPiwYgQrPt0yKuXnl9dh3yOVqRmUDybmP1?= =?us-ascii?Q?2W2imeC7q02dhcdVPcG/eEhkzfC+0goOcKO8+e90EcOnMzfvajTuDPz0Hai4?= =?us-ascii?Q?cKyyYTybaDK6sSM7hiPpFC54ai/iqesFnkYtJdA9SGa/QzSHZquYkI9ocry0?= =?us-ascii?Q?jyRt4dmFmgtoB8HQpsV9tjYBKYCH3Gymz7OkIRSuJKGPQWhAXVjgOtiQynHj?= =?us-ascii?Q?yJO+u+0lkjFAF4xdZC4z9zkz9gz6701Iwf8JeDcKvZqnsvGSWNsCe8ZqI18Y?= =?us-ascii?Q?1lawejhxFW1C9L4QfHM1lv3JhT6/pbY9Q+Qqv+eSJCUgpZYrWS/z4Czhqg15?= =?us-ascii?Q?FrYIgoPI4EoxKr1C+pYMKHdYS8j0ZrDJCkZ7mTO4+dBpND9PMSOuRABMgKgR?= =?us-ascii?Q?b9WgEmePE14P25WDPiWgqIyEfImRSy5Yp2/LJfTpdLW7ft6Vw9n7BO8=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5077537-7328-4bd7-c313-08da06bf4e40 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:34.9465 (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: PR3PR01MB7035 Subject: [FFmpeg-devel] [PATCH 09/21] avcodec/mvha: 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This fixes the problem of potentially closing a z_stream that has never been successfully initialized. Signed-off-by: Andreas Rheinhardt --- configure | 3 +-- libavcodec/mvha.c | 30 +++++++++++------------------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/configure b/configure index dd7adbfac4..46b02275ad 100755 --- a/configure +++ b/configure @@ -2892,8 +2892,7 @@ msmpeg4v3_encoder_select="h263_encoder" mss2_decoder_select="mpegvideodec qpeldsp vc1_decoder" mts2_decoder_select="jpegtables mss34dsp" mv30_decoder_select="aandcttables blockdsp" -mvha_decoder_deps="zlib" -mvha_decoder_select="llviddsp" +mvha_decoder_select="inflate_wrapper llviddsp" mwsc_decoder_select="inflate_wrapper" mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" diff --git a/libavcodec/mvha.c b/libavcodec/mvha.c index 4048e4625c..05ddcfeb8f 100644 --- a/libavcodec/mvha.c +++ b/libavcodec/mvha.c @@ -32,6 +32,7 @@ #include "get_bits.h" #include "internal.h" #include "lossless_videodsp.h" +#include "zlib_wrapper.h" #include @@ -43,7 +44,7 @@ typedef struct MVHAContext { uint32_t prob[256]; VLC vlc; - z_stream zstream; + FFZStream zstream; LLVidDSPContext llviddsp; } MVHAContext; @@ -168,21 +169,22 @@ static int decode_frame(AVCodecContext *avctx, return ret; if (type == MKTAG('L','Z','Y','V')) { - ret = inflateReset(&s->zstream); + z_stream *const zstream = &s->zstream.zstream; + ret = inflateReset(zstream); if (ret != Z_OK) { av_log(avctx, AV_LOG_ERROR, "Inflate reset error: %d\n", ret); return AVERROR_EXTERNAL; } - s->zstream.next_in = avpkt->data + 8; - s->zstream.avail_in = avpkt->size - 8; + zstream->next_in = avpkt->data + 8; + zstream->avail_in = avpkt->size - 8; for (int p = 0; p < 3; p++) { for (int y = 0; y < avctx->height; y++) { - s->zstream.next_out = frame->data[p] + (avctx->height - y - 1) * frame->linesize[p]; - s->zstream.avail_out = avctx->width >> (p > 0); + zstream->next_out = frame->data[p] + (avctx->height - y - 1) * frame->linesize[p]; + zstream->avail_out = avctx->width >> (p > 0); - ret = inflate(&s->zstream, Z_SYNC_FLUSH); + ret = inflate(zstream, Z_SYNC_FLUSH); if (ret != Z_OK && ret != Z_STREAM_END) { av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", ret); return AVERROR_EXTERNAL; @@ -279,29 +281,19 @@ static int decode_frame(AVCodecContext *avctx, static av_cold int decode_init(AVCodecContext *avctx) { MVHAContext *s = avctx->priv_data; - int zret; avctx->pix_fmt = AV_PIX_FMT_YUV422P; - s->zstream.zalloc = Z_NULL; - s->zstream.zfree = Z_NULL; - s->zstream.opaque = Z_NULL; - zret = inflateInit(&s->zstream); - if (zret != Z_OK) { - av_log(avctx, AV_LOG_ERROR, "Inflate init error: %d\n", zret); - return AVERROR_EXTERNAL; - } - ff_llviddsp_init(&s->llviddsp); - return 0; + return ff_inflate_init(&s->zstream, avctx); } static av_cold int decode_close(AVCodecContext *avctx) { MVHAContext *s = avctx->priv_data; - inflateEnd(&s->zstream); + ff_inflate_end(&s->zstream); ff_free_vlc(&s->vlc); return 0; -- 2.32.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".