From patchwork Tue Mar 30 08:03:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26645 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 0E1A144B8E6 for ; Tue, 30 Mar 2021 11:04:10 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E317C680BE8; Tue, 30 Mar 2021 11:04:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2012.outbound.protection.outlook.com [40.92.89.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 553A4680613 for ; Tue, 30 Mar 2021 11:04:03 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SDD8/oQFpxMCFViuUbV5ckgLWwIFjSn49GnbXmZHkgK+MDDcivOzvbqjZD6FJgDhKrF5my42VDY7QwkuHM4+b9yvGKwDT+h5+S2AT60YfIyHb+l3FLIEvxBpQfhWqyzDCSil+wovvWeHjXaQm8JwGrTpiIcWLYRd0WjpAxe0yZ/oMv8hV+EiikGrXwIqCUNaDYfWjiH/f5qaNl3IMHG93qSQgmzJj020b2iQd7AS7Hk2hMOeN2CBFkMm91JtR/REWhpLFLffp/VXwwbiacDPVinR59imleuMRUDnIDJFHLmL82CXjz+fMj3A3fcEbz807/Zt+UWv1izjN9W3eibtdQ== 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=LLENC5i2XZdzbHZ1ZSScUSufAKWzwTUGfzo4dxx6YE8=; b=BfQKpcpMC3b+GrA5sHAdaJtqKJ5qbPYY9+4AKu3N4a786Qn4O3wLoRxfG0MESz/XNlqOASc/G176MA3a2ZIzwKm0Vzm47GPoN4M3D8GFb+OiPSqnun+O89Tmnf4r0Y63PnYzJI5mlq2WLyxHsh6WZ0A753SBMIn2BYdLQJr76p3rLT7/yIejQptxrWO8M6kivDNDd8h5E23j8hY+DkvWjjy6FJpVheoONeCzyeFtbPU/8adgiTqc5Be61hAbKHm72t97eIoQZp7QeOOrRTQJyd0behgEff/ds1aLhCFZfkQGpzjYmFygK+oOkIEcoR4aUyyUhM5O+WrfZ3IyMkZR3A== 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=LLENC5i2XZdzbHZ1ZSScUSufAKWzwTUGfzo4dxx6YE8=; b=ssYKFL3pmm7PgO38WH2/tkGAUaaDbqD1b47uBqlRFVO/ciry2osh/dX1UA4cIpZCWWQntJbScO3x/YW/U5e1r0e2C8OQh/H8fHQ0gJDzL+KSo5IIuT92AXxRk+rqI3zd6Axa6zZZ7vrIze8JPIksD3CX7VPLbMFryN+mmZmlZvWLVXBUms8HUul2R+9qXHARcVHDQjjmAMXHumRcnuV++3aeLoUXWEr5OJXPbwJvgkV1ShOhqXAM+aqL6SXulgVQd8y8ewLMncA0bOrdkGXetL4PXcxIbPknhke7h8ZIBW2LgAND34TBFutaYFrxDVASkJ1sKNNKQg2xLHgE8+n07g== Received: from DB8EUR05FT005.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::4b) by DB8EUR05HT143.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::294) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Tue, 30 Mar 2021 08:04:02 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::43) by DB8EUR05FT005.mail.protection.outlook.com (2a01:111:e400:fc0f::335) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Tue, 30 Mar 2021 08:04:02 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:5D5EA5242B9F8EA6B8C65A225A7AA4A5D20750B2037D65ED1EB7974D5A95DCDF; UpperCasedChecksum:125758C5D3A4D0D29DAA58999FD61651FEC28261BA99C7A039F2F37AD0D19E94; SizeAsReceived:7566; Count:47 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3977.033; Tue, 30 Mar 2021 08:04:02 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 30 Mar 2021 10:03:52 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [HzxZ5jZxDdcmTPhIMZI4qCasUJ0u/Ov3] X-ClientProxiedBy: AM0PR02CA0104.eurprd02.prod.outlook.com (2603:10a6:208:154::45) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210330080352.936548-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM0PR02CA0104.eurprd02.prod.outlook.com (2603:10a6:208:154::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25 via Frontend Transport; Tue, 30 Mar 2021 08:04:01 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 47 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: e0c3259c-43b6-40f5-5584-08d8f3526155 X-MS-Exchange-SLBlob-MailProps: 6rN1YWC+iUWSfY1XRqGPVxU3myXOheZQRnnfKFuSmmNSxWv9oCjruR6/BtTO/TKhoGrfi4PHoUTgVKhDfT3+DWWuDViVgZ2rvg++7uL7gjUrDV+3QuE3YTGkyxsV5qdf3J8dgZLe0BcsE06PvhVd6GvlT+7E0C7YRWPBLMrWbljNvW1xy9A4LPfnwuMUTH7IlG0jhpK7ozlEmlFtp5Nvs6LCOrrvv9WeQezsIepqJjfOoEEcX98X7+nud1mP0PKeR/eWev4dNd844DolETa9QM/XzUCbvz+3EVEjdXYoxv/iLqRu+fycCoaF+7sethaPbzWYCpu9cOvhZ4JmdPRsJS1ikO+DDq7ecELCutQ8cujcaSw6tmroskXBUb/DhMzCV9V04adMbeHuXkiZqoOomnpQ08iueBUOQaHS/Wlz3put1NXQMBxSKZjriqeviGnAvZepT+sAp7xGbKvlWFtIf5n/pIwdKCr3UQ47WlTMNsm9cbC9uvR+Lt0Exw/ISW0wWo+nsDl8xEP6ahnVt8l8pfRB/q7sCChcajx4gU0XlYRfGVmGUx7MTSiyvn2TYuvocG4Ymd6j+wBs4bVho3fzmCxAryFJoSwufpw9WF7heNG5HEIm4mrIlJc3qXknph3Mr/BucRgyy5z4yTjZ/yyrHzDifDfKa3opM49zQtUAW446xx+DpmemgJz8jW67sR6aI/muiNMEWcWoytVlBHUvTVaqUNAEqW3AK2RswtX6QfuiJrAcuSUPXYGnOOgv8LJXHTsDSSnKXlkwbQL/4aXU1uhK0MG4HDi3CqXEHuGultlknlehw/2yEmlhhaFIsJ2+ X-MS-TrafficTypeDiagnostic: DB8EUR05HT143: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1yIU1NUOuo3WdwVoUFFBczszhibNb6rxb/+GK1gIbChxuaAFJcIsZ+VxAlQ5X6/SVq4QouWDexWgEBbFrTFqvg388LgtyZxXmnATarJzc3wcdSJBpoaLtSmWoX3ahhC5w8M7dJNGxyhADI0g2ofZWxYHrM1y/9W75UmTaX/vzloKbaRBC54ntN47YPdBN2Orm9nsZ6CpE50sKwIxeW8fgkoKTkZov+6orA0RVTU+VxtzcmC6Oj4mmW14+En8J7yNYDAvmbMruwMbaXDrQhCs2f/vz/bc6o7ZUI9IS/oGGYJBdnO3Vtvi9SYshfNYgRXpOMSRqAIhAoE2BO5cSo/3xq8hbakRwPby8MC3qIMQ5eIWtkhYVfc7w/PtwbadG5rLfW5C8baKpXbJ0qcdWWwIgQ== X-MS-Exchange-AntiSpam-MessageData: wyRX+1QmC3ZKKJDX7OMSFvEn38n3wtTuJ8KZJdgOMA/UMsPX4c9JlxJ1UeO0qLAaKjDx0MU62WyUXJN8qzIu1Fa0H1H7GKLkSo8CZ4hLwWlDPo+FsssWyw3FdtbcvbJQ7HVEOBU7dj4lJ23wo4DR8w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0c3259c-43b6-40f5-5584-08d8f3526155 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2021 08:04:02.0614 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT005.eop-eur05.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: DB8EUR05HT143 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/tiff: Don't use separate temporary buffer for fax 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" Also don't unnecessarily copy the input data around if it needn't be reversed; and remove a redundant memset -- av_fast_padded_malloc() already does this for us. Signed-off-by: Andreas Rheinhardt --- libavcodec/tiff.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 1d72fdc720..6129ae1c25 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -108,8 +108,6 @@ typedef struct TiffContext { int deinvert_buf_size; uint8_t *yuv_line; unsigned int yuv_line_size; - uint8_t *fax_buffer; - unsigned int fax_buffer_size; int geotag_count; TiffGeoTag *geotags; @@ -613,27 +611,15 @@ static int tiff_unpack_lzma(TiffContext *s, AVFrame *p, uint8_t *dst, int stride static int tiff_unpack_fax(TiffContext *s, uint8_t *dst, int stride, const uint8_t *src, int size, int width, int lines) { - int i, ret = 0; int line; - uint8_t *src2; - - av_fast_padded_malloc(&s->fax_buffer, &s->fax_buffer_size, size); - src2 = s->fax_buffer; - - if (!src2) { - av_log(s->avctx, AV_LOG_ERROR, - "Error allocating temporary buffer\n"); - return AVERROR(ENOMEM); - } + int ret; - if (!s->fill_order) { - memcpy(src2, src, size); - } else { - for (i = 0; i < size; i++) - src2[i] = ff_reverse[src[i]]; + if (s->fill_order) { + if ((ret = deinvert_buffer(s, src, size)) < 0) + return ret; + src = s->deinvert_buf; } - memset(src2 + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); - ret = ff_ccitt_unpack(s->avctx, src2, size, dst, lines, stride, + ret = ff_ccitt_unpack(s->avctx, src, size, dst, lines, stride, s->compr, s->fax_opts); if (s->bpp < 8 && s->avctx->pix_fmt == AV_PIX_FMT_PAL8) for (line = 0; line < lines; line++) { @@ -2186,8 +2172,6 @@ static av_cold int tiff_end(AVCodecContext *avctx) s->deinvert_buf_size = 0; av_freep(&s->yuv_line); s->yuv_line_size = 0; - av_freep(&s->fax_buffer); - s->fax_buffer_size = 0; av_frame_free(&s->jpgframe); av_packet_free(&s->jpkt); avcodec_free_context(&s->avctx_mjpeg);