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 2C8E5423F3 for ; Tue, 15 Mar 2022 20:09:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A708E68B1AD; Tue, 15 Mar 2022 22:06:53 +0200 (EET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065096.outbound.protection.outlook.com [40.92.65.96]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8D6E568AF87 for ; Tue, 15 Mar 2022 22:06:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GeJcHzW30qnzC8yBm7rs7oAzKHff5+ejkgrigBetm7PI8QES+Qk2Hw6nFYFZpckhRpCWZ4ypNEyGQXAhOnm6hk+8h3/jDvqtWVlwIYK3C/0GBxhn9rMyM23YrHw9N7+eoF3hf7tUXlmT14tqokT+jLMgHix+zAy3DaDI6wISbWsmv8Vc5fMLKGeb3UHInzFm7It+O6s2zlABmQYgpwPOFhVbWvcQfqyZAYYZGVkeI2+uBn7dacBuqCYpGhshXsuNRwdRabweS8ExfiZwvIWZLFTeDBGPtzHhoNlK3/+C1OXt24Yt06xb2Yn2P5TDBcNOA2vmDTi1D4kZZBWDihdssA== 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=u75h+sjW5eb7yFpObe4b3VkSVvzpAK45HR5R8wjiiQc=; b=DTAdSA1k6ojb5uxC+XNTErUdtq97dGXM8tCbjZ/FQEJzk9AVhNh8bm98pmdtAKpfILLYck1R3PL1iiKB5jlzUT6p0Y6/IrtwGgVutB2xXSQKpBJAGK8sxqzYbaVFhZ3kJYXm0roPTVnAYLhRXdmpDi+et90auOZ3jQOj+patMrMQvFEeJrZI5IwaqzuF6EDBd4ZE27XtEcKTNN8tfF3NkdR/TiuJ/NVTiYnhZj8v7cIBgYH6ZGtCjbtvXD/bx1iqeIrynnLlgfmdZ5KmbwWF/3nvJtE2+3VYvSrO9TUlVjqzzOCKZB+L49/ZEQFyK3Tf5lkWXrsee9v83gj5jNDNew== 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=u75h+sjW5eb7yFpObe4b3VkSVvzpAK45HR5R8wjiiQc=; b=RuGBGQfPGOG3KQjkS0bFEG6OVw6H3IOd4aSBIFMTfWnCgib2YOFU9OAoPDOKVwkb1H0RYt/OGj1xrgR8OQcK6GjsjrMUCFj3Vu0ATiW1QNI6oPKLnOUQhrIN23HISRxIfgrcOpWoiPvuMa6g2F7XKZIxJDn0MyaJLoQXpgvFAwt2OWS9bvUYhaQQQ9QIrQHbG1+HtNYRJz4jM0gqRkzGh8lHviIO4GVe76rOFjYeh34LKGl3Eunp5v3qsdYONIPD/ixxoN9WoUFHppoQEnB+gFhGlAEX0KfHcIIGcJLlf5pKaqTUvia1xOQYLUK232rFvym38dkr3MPIgDsdVzaJew== 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:48 +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:48 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Mar 2022 21:06:10 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [0syOkx0CZ23rXSDy8wgZk71Pq6GB6Lbv] 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-19-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b315f0ab-5304-480d-5e48-08da06bf55ff X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQIK6GOv6I/5+ncmNhpuEjVPahUQnQ8uqNv93ohIVyNRSzQdYufHTbgYOoLz9U/5VNZBIPa1Ya57mhYX/B2LeUJKSWOgdQatIzYWc87vW221C/EU5/hEC/YzZxqDXvuQA5dIgeBYbhsA4mTsaQcLxeG4aPBmogBGaX1Q7eiTDzhG2beJBXenkxYnxZYzDTyv8Mqpff2d3/rkgrHkgUj02QgjG9sMYb/UTvOaQFE8WFTcwZxdonYC12M1Ls3TQp9IrNeYLnJt1VMsPR0jGTV/Btde4ltGVKlSKs9dkyekinGx7+yqwiooUs+Jog8xoa1XxruJ9AsAkMMkysHGScm5BxkUne7+PdMFuejf+x5qVwBQtiZSqbeA4OCGnLWoCeXAPLkBWWgwJoYCegkIcYG9uYdxrnxuFq3FyvvfuJb5ut9Li194najbpPIEmPnIEmL6YJEyTK0TIIzQ8fBpOlvkzCD8E5b/d/5a3Nx4YT6KnOQecIDz++OPEXt9XBKW4pFZ1FSybvMrKCmRPnlRlmzKKFaGleabE78DwoGPHOW0qFDCIInULs4KO2euPOj5k+nebF9TctlPNaYNJybwDHoDoXjM+NePOzlv5lMNqupspnzPNSGNC+yBc4z1YksZiYE17JML1/g4iFYJcDCTyBTGdSvgbzF1kC2myDdrx3tiGhcxIX3mF77v9+otP+CvzVyvr5emBjMqRgunm8n/a5Gi7hizUwi/He+zKw72jRWnvkKvQ2IxuUmm+s5Or4sYLGrXGw= X-MS-TrafficTypeDiagnostic: PR3PR01MB7035:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6lfzxkape2fjPLSkcGAHH1NiWinWv+2Dx/f0ahkLjiFXyW5fkAGzPXnBIboj9lpyyMC6Tc7d+NQTbf05UbATCpELE7+rZAjduTGfLvaRDjYP07uhgcSOqpK7Um7Ckqkdg5YdbldL5dS1F4aOiBS3P+QWieZtEPMUFZ3V/ALybzqYgiwrZrMHk/pJsExOO0UPfSsFmoIzPJ78OWTXVr5yevWuFc27BpTbw4S0M91OtrUPgNZqrcw/vMkyItjez3HcnTcVqAh0RkB/c7qnIMc8mJZWfMFCI7iac+wXQ9y+BFOteWBm4YpE7vv1E5/XVfsgLisk/AZuFqz5JKCcoihrsIOK/Y22ROKapIK4VT1DLNIhid90coxz4PvOQ4COhRzrNrDT9VTnzVk0UtCmnKE3NdCKm6GiFnQ7i0IEi6jGtOlaZ3vFCwokKdLZLIbmlc12EwfW+bl8MI6cuhCuWWOtUyNx+SY4nBDyldq0ZZXGJVIN/Ye33j/EJ/4q9lujI0bhoAm80aoxGUlSPiyB2yr/RD1u8CQaMbEfeAG8XZFfkDD1iItUjrpD/5dYkeqHMkVoOR/QATyyR7eRZ1P9lMkZpQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/w44s3lhSRmLjBH5tmfksNqBV4yEz81Wj8eTc+vSvWZ7PX78rJ3vpdR9+VIS?= =?us-ascii?Q?o9bWpj2FpHFPcNo6tSRCi4frgOz5yZXywZeClVi1eISfJU8wPCP0+qc/ziT8?= =?us-ascii?Q?tli7e/xCjhXyo1LnH4cgEu1NqT2xaJgeVW0l/m8LPUMt6LHzEPvnEKOGus2p?= =?us-ascii?Q?xeecSARpybWlevXCA2pQJ4l35Ekg/TTj9katdK81Mvjk96H72YHqcXzJ9r6j?= =?us-ascii?Q?1czn4iIpcrRzHf3cFWYlBKMGkPn666UdpVy1JV3GnnNoYT6RyuBG/+07SlSy?= =?us-ascii?Q?zSHMBGvzmCplVU7MTNbDBAYNaU3u2DkeEXKR//dI8ieYV1apDkj5UbPSKwzt?= =?us-ascii?Q?ntZfamhkiNUEF3i9SYHR+7qOOI2P6zCeZ0QlWnw719rzbPcud/2Zsyoi4Ehj?= =?us-ascii?Q?fT9Kcgwp3ztrW5l83j2sUPl+i2ow0SybIbu8MWt8bGB1kTfgxxOO4cFJm26Q?= =?us-ascii?Q?oUro9WNBSxntdLnyPAb1eec16wswYsoFGDDQu02gRphe68Xe2/oVvRhktEw2?= =?us-ascii?Q?16rZSFB2BvytWGrU42aD8QEfVOpSASpQlMjFRpok0fs8PQhzCLmINEjGZ3DI?= =?us-ascii?Q?Idku/+hBlSkYW3B2cjo42/NmV0nf296O9r5vpMnRUTk8G+QjxkP6G8gZGbPR?= =?us-ascii?Q?ZMcZXEmhBRR17/zrbKN5nIW1ZUbgpJcseaFRWmWZMv3emxYb86ubadqUieGQ?= =?us-ascii?Q?UtiZsG6RCDqKVjswdV2FSndm/UiIjJ1pA4SUdB+DOq8zKIzWgzJ9nPgP3zSk?= =?us-ascii?Q?0rsLofAgEb+jrrXOIUxKIoQuJdbZ94SMYUDpjDfFDpsWpap4vhoOG0fvWroO?= =?us-ascii?Q?fchgkGGtfvnHhFxSY5xUrD6dXICNTAG22t1ffrPaUhouX6XaHN1Dr+Ph9T0j?= =?us-ascii?Q?kL98Sjp0Dby0NgVV5gonP0eGfsnMfmffzM4WDdn5VF+T3uGPqfgTwjcYKlCn?= =?us-ascii?Q?cVN+LxUwT+DvTxydDWRUTqhDN70X3yxEp85JTEqivBMDn4LX/ogI3mQAcFe+?= =?us-ascii?Q?nusR1pX68DqhOSx+mHrhMD4W98bph5Id0tAakkLm48CD+k9DUYbbkt1tQGMa?= =?us-ascii?Q?/mqazFFMW3uo2cm3GPvDXXpJdKko5DNfuezscrffcPiSF6KzNpF6k+nnoNLF?= =?us-ascii?Q?/wDhO1WAfoCQ9aKOaBfrNz7VVdGBEAtTEr3k3Fw3dsc88/rqoFSazbg=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b315f0ab-5304-480d-5e48-08da06bf55ff 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:48.0009 (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 20/21] avcodec/lclenc: Use ff_deflate_init/end() wrappers 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: They return nicer error messages on error; furthermore, they also use our allocation functions. It also stops calling deflateEnd() on a z_stream that might not have been successfully initialized. Signed-off-by: Andreas Rheinhardt --- configure | 2 +- libavcodec/lclenc.c | 36 ++++++++++++++---------------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/configure b/configure index a3d4b224f4..ee3c6783f3 100755 --- a/configure +++ b/configure @@ -2991,7 +2991,7 @@ xma2_decoder_select="wmapro_decoder" ylc_decoder_select="bswapdsp" zerocodec_decoder_select="inflate_wrapper" zlib_decoder_select="inflate_wrapper" -zlib_encoder_deps="zlib" +zlib_encoder_select="deflate_wrapper" zmbv_decoder_select="inflate_wrapper" zmbv_encoder_select="deflate_wrapper" diff --git a/libavcodec/lclenc.c b/libavcodec/lclenc.c index 7deea4f20a..afa99d1f92 100644 --- a/libavcodec/lclenc.c +++ b/libavcodec/lclenc.c @@ -45,6 +45,7 @@ #include "encode.h" #include "internal.h" #include "lcl.h" +#include "zlib_wrapper.h" #include "libavutil/internal.h" #include "libavutil/mem.h" @@ -60,16 +61,17 @@ typedef struct LclEncContext { int compression; // Flags int flags; - z_stream zstream; + FFZStream zstream; } LclEncContext; static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *p, int *got_packet) { LclEncContext *c = avctx->priv_data; + z_stream *const zstream = &c->zstream.zstream; int i, ret; int zret; // Zlib return code - int max_size = deflateBound(&c->zstream, avctx->width * avctx->height * 3); + int max_size = deflateBound(zstream, avctx->width * avctx->height * 3); if ((ret = ff_alloc_packet(avctx, pkt, max_size)) < 0) return ret; @@ -79,30 +81,30 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, return -1; } - zret = deflateReset(&c->zstream); + zret = deflateReset(zstream); if (zret != Z_OK) { av_log(avctx, AV_LOG_ERROR, "Deflate reset error: %d\n", zret); return -1; } - c->zstream.next_out = pkt->data; - c->zstream.avail_out = pkt->size; + zstream->next_out = pkt->data; + zstream->avail_out = pkt->size; for(i = avctx->height - 1; i >= 0; i--) { - c->zstream.next_in = p->data[0]+p->linesize[0]*i; - c->zstream.avail_in = avctx->width*3; - zret = deflate(&c->zstream, Z_NO_FLUSH); + zstream->next_in = p->data[0] + p->linesize[0] * i; + zstream->avail_in = avctx->width * 3; + zret = deflate(zstream, Z_NO_FLUSH); if (zret != Z_OK) { av_log(avctx, AV_LOG_ERROR, "Deflate error: %d\n", zret); return -1; } } - zret = deflate(&c->zstream, Z_FINISH); + zret = deflate(zstream, Z_FINISH); if (zret != Z_STREAM_END) { av_log(avctx, AV_LOG_ERROR, "Deflate error: %d\n", zret); return -1; } - pkt->size = c->zstream.total_out; + pkt->size = zstream->total_out; *got_packet = 1; return 0; @@ -111,7 +113,6 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, static av_cold int encode_init(AVCodecContext *avctx) { LclEncContext *c = avctx->priv_data; - int zret; // Zlib return code c->avctx= avctx; @@ -138,23 +139,14 @@ static av_cold int encode_init(AVCodecContext *avctx) avctx->extradata[7]= CODEC_ZLIB; c->avctx->extradata_size= 8; - c->zstream.zalloc = Z_NULL; - c->zstream.zfree = Z_NULL; - c->zstream.opaque = Z_NULL; - zret = deflateInit(&c->zstream, c->compression); - if (zret != Z_OK) { - av_log(avctx, AV_LOG_ERROR, "Deflate init error: %d\n", zret); - return AVERROR_UNKNOWN; - } - - return 0; + return ff_deflate_init(&c->zstream, c->compression, avctx); } static av_cold int encode_end(AVCodecContext *avctx) { LclEncContext *c = avctx->priv_data; - deflateEnd(&c->zstream); + ff_deflate_end(&c->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".