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 97B92410A1 for ; Tue, 15 Mar 2022 20:07:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3CF368049F; Tue, 15 Mar 2022 22:06:38 +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 5EA9B68AFB3 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=Advkzb+FcwcnrpgbS8gP3Tu4MMITrsa15BCCeAsLgP9ewqbhFk1bw2tr+Ni6saXxQ5zUpDHrAPes+OdCMyn2P2qd7+ILEY4uzb96EWQotjtLKaC3gspOEUsplMq/mQQ7aHcMSZC7ibk99dVRFb224JHgn5dbGHgtJgh9aatPyvU0cW5i8OdCanHOogWB7kf49u5+Vn/ocsC+MBDtuRtM/csaRV0gvkt7bRqhn30X1EeEKR9+PlBJNBblvLLPfh2GnOz5IsDT+OwKpwGVr+Hw2ruSWG1BhLAqQ5utp1IBeDc4NEud2jCuALZVQfwredCKaRljNTKfwlyJ0/+Sti3fIg== 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=o2hKFrfTTE+7Ir9voZDOSO2tcOubSCWK1R/NDh+6TSU=; b=fRhEISsN3INNKExulXqo09AQRsskS+SUntmWo/cX8QoSS+f/FC5h/45eZbrfQKo8G4Nq0jkHOLII8Rpc7cQjv53yegv2uSXGscisVBE0FlOd3YzJHUFgqfQtOtFo6+A4Kj7bKIW58R0lJ65HEb3sSR+K35I2f1EUjQavxt6EQmxgLwYWcVdAxWixl4UkHMHc0pr0KOgjhpbjvmkDDS258sBOfzdgQu6FU7/rQkF8vZeKLQfLht1JALAG0/SSj3jh6PQCvHC6LGpbPrkGvg488AGF/Obp9jgWCi9rE+PmO0ESHTc/U3L5dijnkfgExhuuRIj78+uqWqWhB7uT3R4/pQ== 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=o2hKFrfTTE+7Ir9voZDOSO2tcOubSCWK1R/NDh+6TSU=; b=vDzmwzfYpgJEWoE47rl6PsuGwDHrPV6W72APkaAI/w7oSFzvpP3HN/ogMqTH2o3EgIury8Rv+kKAkbseKZxxQjTu9quEAx2GqkTrkpwHbI3mVtYfm1YsjhniCdjm/wVmRtuLWgOUW+5qsjEgEXk8G3JEVzaYrZg2V6TQXcbPTa+OlGdrZuhZxfKqtd8QgGCWLQsj88aaJFl7hagPFLbW+Qe/WJV+CwUoTblrBmTT0/A1030oNlVDl6zDdAFNnZoPh0Sdi+aSnnFpWNY1db3vVlGU8XxpKFxt7BL6SYlgZGXQQjLh1nAtrA9KsX9ij49M7ocx448LSh3McqxJoncB7Q== 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:33 +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:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Mar 2022 21:05:58 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [dhOHz5u8Qixj8dgZFIMpq2fGZvT04B8I] 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-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1e2ea323-6449-438d-5124-08da06bf4d3f X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQIK6GOv6I/5+ncmNhpuEjVDy4rDU/3HqsNTIAxbwtq2BD5L+cPL0iSRT8Ir/oid9WMzktG1nmJ+cw7GDDb0cIGLlxckfLfah9Kr5EF+KQReITk9zYEtYPV0a935qCXAiEo/uxw5UbOmVbad6OdzSKvYDsUKHdadxLwl4oT0WjlAGQct1582CK0Tvj5aFlTsRTdWflr+GhBf6a7BYsSUOSe+39zkrMHYVvlST28sFxqksM8ixhncuAhP2zMsqVNw4cZYAq7+GisikWnIIoiixqJ1JD6v8H3+iincecbKcLG5K6/BDiItHUhiNLQexvhMravslTUoXcoVN8FJj5MIcF93AqTtsf3NJQb1BaD6X/sG3SngSsoPQ5v5NZEvQ/Jb3JRg5P6wa5W3l9Kqj0gVbtTtcnCKvZ5zCNiK8uXNoYAgwcZL2cYX9Yr+SQihmWVN9QiSE+mSkLyFefHYw7s0RFA5hizlai/y4DnS5rRzNVTVDkiLZdoBbIAO9o1Sr4SuDJXgVv1+iALEDWjMeMAj7yObOP3/0ORhTx6Ls/1Edy3JaLZ+D6t6EgMmppvwSGNc91/K+NISkgEnpv9yQFdCqgDBXQ1nrnnQeIsSdd71Ba5g6WFqOspEPLLShb6l0Oxc2oDHvNEEHCM0Jiqkq9rBdZgCzy6lyc91mWpdTO1vaDfjJ0EjIs/y6XK/D2F24w89TnfOnjqYwHz95VFxkOCl1UIg7OvT8R3NOD7+GAFfI1oxeqApn6Pp6kJ8lv/OQYMCqs= X-MS-TrafficTypeDiagnostic: PR3PR01MB7035:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6Iq9kZIA32fa3OueL4xCsQoMuRPVWWlWljpXYCNTvOnyqVGhcKld+5vTe4umIJLvaGxXzQXKr+n1N3WauZdKZEeb6e9l8vGULHZbxJB4s2kLCJuOIyaL8SSJZ7+Z1wcs4/aARbhmAS4mJCxyH6/m8MaVAmqcn4SYUYqXs5DWF7oIyqarfe5/oSIBjRZM0S71kwGJVNchXpz4zsBo47/NjBllDBNm7qtlUQtjNxmJlUXsvQYbRtBDStQ++0G+x7VqJRQKLiFjHPUvCBT2/dUbkMccJ1cBoSAL0jMlmlPcGv2Zzc/WO7zSd06NWJnu00HsmTXwBcwkFBfIbFbdSntun1z0d97e3K6kgBoCGAPgiKXhjMHJ7EAymgK01LgG3d9z29qp72EoXF4qeyZp3eKcPliFTNjQ8IBRJkHl5K+UWpYqXH1OpHm3Bb0sTUc5icNjVLsHtgQBU0UgH4dQFePBya1ZD1hJqBWIHgyjq+OhTVrKoD7ggweWXpGeuQhjaSIFQyElZsnSE0PtCYzoNyg1XIjLUWbeCrV0YlAb+TLt3Oiwt3M7N90XDNS3nnI+noMWTVYzYP8uPRYDSpUJfwpxoA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j8LrAWvZ8sRGz1LHLhgd46UsHCnLtwJIM1ILtI+Mr9Xk2bl2YQU/K8WCuyDS?= =?us-ascii?Q?kwwu9AcNcbgWr6gf70Il9ae0IbymSunz9mK/XbhOtUsWICXX9LFW39llyg57?= =?us-ascii?Q?VnRx/aZEdIlOzaC2a/o2rm/aQ1FQ0qnWjcn22IcjHsGaYWxkKehp05rBg7OW?= =?us-ascii?Q?Z+NY8TuP1KDPplXzA8iTeT5gt+AtparQeTcFIZ+PBf9MfzwUUv9pyAjcAWtv?= =?us-ascii?Q?hclXtiHIih6iezvnG/buJcEB67QA+k3bntzDdIFP77Oc0rGbe0FfEDdPxC/e?= =?us-ascii?Q?j1bMGAOKKC2RbPgZmzvLcRJCg+60M9xsbDdJjPm6pF+TgeW7wzqpGpXYmDQ7?= =?us-ascii?Q?HXrHl6xq+mtBxAiLTe33WroVfqLsXcgdF8wE+pNwWRGmLv0FMkRlkgaGGAnD?= =?us-ascii?Q?qJePLi/6Upog0CoJ2TBDFQvyTF/6W79LxheNGxCAdAWVsKbu+lkLRPjIjs+P?= =?us-ascii?Q?b2QrwmbdSix58u/ZwAcfrPGZSB5u6VyHi7bf2buROuJynaiuHgX0Eq2a0nAP?= =?us-ascii?Q?bmj8Ed1fQ6daks5USEOjJTGZyygVE6APyhxgQi2lLOK/u8usUTNlMvkgqgrh?= =?us-ascii?Q?hZdg8ptQZGGr3/M0ebxBwRc4+qXzQJ2ZqB1aqnpiC+fwehd3+fOPch8ouuh9?= =?us-ascii?Q?J9fOF7DR0psnSUEG8fyw8PwO15GbRCvtkeOQSNahEMJmm/dotIcKs2EcL37h?= =?us-ascii?Q?eC3UcYEsCIXbEWAzRYiGVDnQ9UrTBHWIaQZH/jF/SROlpcWNTSUafCbuMwLj?= =?us-ascii?Q?ZXuRKWmx5wJDnSh36vvT61qncAiSAv9PUtfxVYrSecRligzqVmbITyWgpcAL?= =?us-ascii?Q?oHVbUw9xjkMQlx0adjeJBhqWSVLraTv1oNrXyiwjQ3phfAq/rmo9U+iKKwaN?= =?us-ascii?Q?b4nuVyBqm8WcA/6sMEZqtdLS3Jj4ih/Ut9TRgCqwfgcLvhi1ZYvWdkEOU/la?= =?us-ascii?Q?3moHnNXUr5CzqEyzzsigyh7GJ/3CrbMGWdthrvr1OHJSl13d37AR1MEOM8c1?= =?us-ascii?Q?SndsHnWjlMGCyT5udF6m86CbqrWgId8YLSg6c1JxbojGZ1ox4BoZgvrA8Z/n?= =?us-ascii?Q?/5No3R8ncYPFc7Zp9NsasSinVfUYdd+sfRQE6UkjGzt9/zrHaEMet6NDsRwS?= =?us-ascii?Q?7tIuZMXoTVQrn09zUrCJtAwmTGnRJCmEMQY4hM3Kawv4ZsJ079f9SNg=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e2ea323-6449-438d-5124-08da06bf4d3f 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:33.3517 (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 08/21] avcodec/mwsc: 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 | 2 +- libavcodec/mwsc.c | 32 ++++++++++++-------------------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/configure b/configure index 464ddb019c..dd7adbfac4 100755 --- a/configure +++ b/configure @@ -2894,7 +2894,7 @@ mts2_decoder_select="jpegtables mss34dsp" mv30_decoder_select="aandcttables blockdsp" mvha_decoder_deps="zlib" mvha_decoder_select="llviddsp" -mwsc_decoder_deps="zlib" +mwsc_decoder_select="inflate_wrapper" mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" nellymoser_encoder_select="audio_frame_queue mdct sinewin" diff --git a/libavcodec/mwsc.c b/libavcodec/mwsc.c index b62db67ff5..0ae99f6655 100644 --- a/libavcodec/mwsc.c +++ b/libavcodec/mwsc.c @@ -27,14 +27,15 @@ #include "avcodec.h" #include "bytestream.h" #include "internal.h" +#include "zlib_wrapper.h" #include typedef struct MWSCContext { unsigned int decomp_size; uint8_t *decomp_buf; - z_stream zstream; AVFrame *prev_frame; + FFZStream zstream; } MWSCContext; static int rle_uncompress(GetByteContext *gb, PutByteContext *pb, GetByteContext *gbp, @@ -90,6 +91,7 @@ static int decode_frame(AVCodecContext *avctx, AVPacket *avpkt) { MWSCContext *s = avctx->priv_data; + z_stream *const zstream = &s->zstream.zstream; AVFrame *frame = data; uint8_t *buf = avpkt->data; int buf_size = avpkt->size; @@ -98,16 +100,16 @@ static int decode_frame(AVCodecContext *avctx, PutByteContext pb; int ret; - ret = inflateReset(&s->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 = buf; - s->zstream.avail_in = buf_size; - s->zstream.next_out = s->decomp_buf; - s->zstream.avail_out = s->decomp_size; - ret = inflate(&s->zstream, Z_FINISH); + zstream->next_in = buf; + zstream->avail_in = buf_size; + zstream->next_out = s->decomp_buf; + zstream->avail_out = s->decomp_size; + ret = inflate(zstream, Z_FINISH); if (ret != Z_STREAM_END) { av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", ret); return AVERROR_EXTERNAL; @@ -116,7 +118,7 @@ static int decode_frame(AVCodecContext *avctx, if ((ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0) return ret; - bytestream2_init(&gb, s->decomp_buf, s->zstream.total_out); + bytestream2_init(&gb, s->decomp_buf, zstream->total_out); bytestream2_init(&gbp, s->prev_frame->data[0], avctx->height * s->prev_frame->linesize[0]); bytestream2_init_writer(&pb, frame->data[0], avctx->height * frame->linesize[0]); @@ -138,7 +140,6 @@ static av_cold int decode_init(AVCodecContext *avctx) { MWSCContext *s = avctx->priv_data; int64_t size; - int zret; avctx->pix_fmt = AV_PIX_FMT_BGR24; @@ -149,20 +150,11 @@ static av_cold int decode_init(AVCodecContext *avctx) if (!(s->decomp_buf = av_malloc(s->decomp_size))) return AVERROR(ENOMEM); - 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; - } - s->prev_frame = av_frame_alloc(); if (!s->prev_frame) return AVERROR(ENOMEM); - return 0; + return ff_inflate_init(&s->zstream, avctx); } static av_cold int decode_close(AVCodecContext *avctx) @@ -172,7 +164,7 @@ static av_cold int decode_close(AVCodecContext *avctx) av_frame_free(&s->prev_frame); av_freep(&s->decomp_buf); s->decomp_size = 0; - inflateEnd(&s->zstream); + ff_inflate_end(&s->zstream); 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".