From patchwork Wed Apr 14 21:21:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26913 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 BC09344A1F9 for ; Thu, 15 Apr 2021 00:21:57 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A06AD68A8FD; Thu, 15 Apr 2021 00:21:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067011.outbound.protection.outlook.com [40.92.67.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B1E4468A773 for ; Thu, 15 Apr 2021 00:21:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CgqGdQz07BYJZpwksvNqch8y63u7h/xgndTlcrLv7wszzOHD25Gg4+7wr4Kz0FsrgLxpNkfvqcd2hmjvV/OFF2uaiGkaDhmB8TDPujMl2aBGOruoNJ2c1V9lZIPZJxSP6zRJ6Wn3mFgoz7jJv1T+ICfcGbeQ0PdszlNHMIxveHUyynMdrHE4+D0acfAPpiZpbngGEFU31cW+epOVT/5nIPbK7ITtTYEnBjJx12/2FVQ5dAJfmrNqyUtLvsnOnHJbjf4zKT7NpXyxr69nBexYwa612+YGLdbKs5NHk3GMkaaQSkA4DNu06GVW5bEmN3cFkGIEKn2u0lGf7bDPeqA5cA== 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-SenderADCheck; bh=bXJ/B/i4wkwKSfby6M4HqAitjYo5ZW2+t8nZeire5wY=; b=DW/s6IVDKtYKsPlZxAw9540grkjA+lIbaMEv2r/KIvErgGizv6USz1UXl6x98XxOeOlnqXOvY+EvhvvtIw8xfVpzPDzCpInEWVyM46P71UleuEHx0yylkfz6N4Rw+SaBn8g9DENK0xTmRFKC5wzrfXcZ/RE8n1smjSxPy6bmX3VCgW5izQyd/ytp0xDZNAkmzSnU2Y5uHDRlrzauRnrQweatpjoZNP7aZJJiZSbSZvxpQfH0RsS1ilDqAC4FVp4hKvDEEqzbKEBtXiW3qK6cfh27X6TomqPmKvDVObnyXN6b5TvRhKkONdRM2DUsTzqftf5nC2Ou/8lKc1tXLjskig== 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=bXJ/B/i4wkwKSfby6M4HqAitjYo5ZW2+t8nZeire5wY=; b=lUD/i4uV8sU5MmE6CV/G6DSUq7HGMMKGlZ3GPzXqXBHkqt2qzjAyt6/q/jNZfh9KJyFVjZUCnO3/E5hG6iNP4EtgFpbQxM5YVJy36DuXqZenWPZawz6G6DYS+fcBxm8BGh5R4OJBeb7eyC7V/ibn+acC/YnuDy5pCTDb/sRmcIzeUoToo3a0/S4dOrhk7CVahitz91dEnYodykbE2wH0yojNGFYuMWN+awhuErlepiOcUzo5BEhV3TIF4nPWsP97pv4r8h7qAO01EKSLIP3b7JcUOkQwpZeolXM2cKT6tlxq0UB20MV8qHxMuRUvPqqTJ/bH4ZmG4ihIdok+9mPwIQ== Received: from VE1EUR02FT015.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::46) by VE1EUR02HT083.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::341) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Wed, 14 Apr 2021 21:21:49 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e1e::46) by VE1EUR02FT015.mail.protection.outlook.com (2a01:111:e400:7e1e::147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Wed, 14 Apr 2021 21:21:49 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:953DAD0F8853C762C3B71094072699BD50AEFA50FB506F1330C2BAD8D28F4C2E; UpperCasedChecksum:A4C117161D0642072B6E538483D41A66BBF17A11883B30923B02CD70772FBD1D; SizeAsReceived:7406; Count:46 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7%5]) with mapi id 15.20.4042.018; Wed, 14 Apr 2021 21:21:49 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 14 Apr 2021 23:21:40 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [a5prxffWVmF0XYgOMPYoNiz/W8o1DuM3] X-ClientProxiedBy: PR2PR09CA0007.eurprd09.prod.outlook.com (2603:10a6:101:16::19) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210414212140.1246008-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by PR2PR09CA0007.eurprd09.prod.outlook.com (2603:10a6:101:16::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Wed, 14 Apr 2021 21:21:48 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 8947e976-441c-46f1-5ee3-08d8ff8b507a X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTEEqEyiKFNUUR9YNC10SGjzRXHvG/hNTLvAQu5TKQtreRluOY7wOcgkV7u4EmM2rosSvoeTKm82uBZfYimIhT46ICsLHuwD9Bwowajgyj0PgkSpxPTHoN+EuiEf1Le6XH4q4M5tALgyTkjCx3xrl0J0cYgzzi/Ujhl8CpFaHLQ55ccj3NDw607YJOXcUn8LqbHsLsQxcVOWkQWZFhIrH5IY4W6nJQT2EEyxsodAXjqnHjuvx5+kbmUGl1NKIzSFr3rGmW8NWknr837UOsodR1rvvg1jrvLoE3UMPyhCw6zH2225kWvUqGp39CYWNwzp2xhpIIpulQ61FKT+AeRo2AqKaQryYkciTNyoHOQwV4bdZ2854PmDp+uJ7BYdCd4UZ4pbWOsGzg5jIVjLn3xqTHiopCM4oJH6MGf3DjD1QpNCJddSi4FJtJ7i34Tsx0o9TKd38aEhK7l9yJaYGQ/dNBHnNgqoRagqYTvVCijkFwjAmWL4TKLm9hYQt4g3D0Md0wq0MGv5B3caVAHMeGshdfXJHJOcOBUq2uDoYe+gTVQrxIuQ2cnKeCVq1kNW+4Elt0wB17GTUDxMIbOy7oL12Iq+vilbsnyrC7W5Nn33tyxjx1pm/KBB+f0D/L+O2Mpyjx61IVcSeuH0Kuk0qbvu13qEI3dEz1KzhrsOc5Jtt27aimqHSPfbOkY/Rc/9QPD4LoYyTpKPy/iw7nNNSnwA+R7U8GCdR100uLPLEcJ1jeLupawsHFZmVNvE5DE+IyUlyM= X-MS-TrafficTypeDiagnostic: VE1EUR02HT083: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: N83t/mYlb+ZuTczh2YZ1a7Jld+s3L+3NNKgoX9xLKksRFJUemDeP+PSxyPlNBejX39zcOcrMoOp5RtATUqbIfkPWsGolSz18btK/JzAsq4D3cXrP8BkgK4/v2twYD+Ltm5t3MZR0Ab18X1yQjUDK0ptU5xT4d64Od5xbDNpBayILFymFNUL+mswImXOgV+sHVqxUI28m0CF7qOG4MJFHvJfeyESd88/9TaEzhZZrd4DWUSE29TecGaaQnTV5JTjQHGkG0A/FAxQSBUAixXzS4SNULLVGR8EZLjz+HFMeZ1tXIXy+wjnvvRCURGKACdJYiKGlSWMwuNOg1dQlhkO3Xd4ZWEdTUyX6GdUZv4ipE8BOFH2EoFa+phg/CvA+JS9ARjSG4yzZkx/K10NWJBu2+A== X-MS-Exchange-AntiSpam-MessageData: lTl8QLg7enXvqzQBiDBAQIn6gupi4UCUxJcVyu1YcLWFJvOE022Ua9iVCb9bZ8lxY4fgBaegZbSXP2DF/5wD0QkOlqdnJQPtDJxQ18mm7LJMGkNciGwqIlnpBy60Im1GO0ZsdLLTZJ5M80j/5JipEg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8947e976-441c-46f1-5ee3-08d8ff8b507a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2021 21:21:49.0768 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR02FT015.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR02HT083 Subject: [FFmpeg-devel] [PATCH] avcodec/jpeglsdec: Don't allocate+free JPEGLSState for every frame 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/jpeglsdec.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/jpeglsdec.c b/libavcodec/jpeglsdec.c index 69980eaa49..92df81600b 100644 --- a/libavcodec/jpeglsdec.c +++ b/libavcodec/jpeglsdec.c @@ -45,6 +45,11 @@ */ //#define JLS_BROKEN +typedef struct JpegLSDecodeContext { + MJpegDecodeContext mjpeg; + JLSState state; +} JpegLSDecodeContext; + /** * Decode LSE block with initialization parameters */ @@ -350,7 +355,7 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, { int i, t = 0; uint8_t *zero, *last, *cur; - JLSState *state; + JLSState *const state = &((JpegLSDecodeContext*)s)->state; int off = 0, stride = 1, width, shift, ret = 0; int decoded_height = 0; @@ -360,12 +365,8 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, last = zero; cur = s->picture_ptr->data[0]; - state = av_mallocz(sizeof(JLSState)); - if (!state) { - av_free(zero); - return AVERROR(ENOMEM); - } /* initialize JPEG-LS state from JPEG parameters */ + memset(state, 0, sizeof(*state)); state->near = near; state->bpp = (s->bits < 2) ? 2 : s->bits; state->maxval = s->maxval; @@ -537,7 +538,6 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, } end: - av_free(state); av_free(zero); return ret; @@ -548,7 +548,7 @@ AVCodec ff_jpegls_decoder = { .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_JPEGLS, - .priv_data_size = sizeof(MJpegDecodeContext), + .priv_data_size = sizeof(JpegLSDecodeContext), .init = ff_mjpeg_decode_init, .close = ff_mjpeg_decode_end, .receive_frame = ff_mjpeg_receive_frame,