From patchwork Tue Dec 7 23:24:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 32116 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp6946679iog; Tue, 7 Dec 2021 15:25:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJyjjCGi7z0Z4Ob6Vq08N8bxq9eAXNcjPPQ2W7wQcwM1LeEoXCSGoQuNJuryqEg+Cwh7MdY0 X-Received: by 2002:a17:906:2590:: with SMTP id m16mr3035289ejb.38.1638919526865; Tue, 07 Dec 2021 15:25:26 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id yd6si1448783ejb.108.2021.12.07.15.25.26; Tue, 07 Dec 2021 15:25:26 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=Y5qP5Rgq; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E47A068ACC3; Wed, 8 Dec 2021 01:25:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (unknown [40.92.89.38]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0B35C68921B for ; Wed, 8 Dec 2021 01:25:13 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AyNg5BWmEzqOgFju6PoOh+8q6a9NhJ7kW0TwfPeFAQKGgvrCl9nbf6N2enmI4ZcQYgd6iD5ZjBvTheTlWZP5nNUmGlJpY5Y3e5fFLDYBKIkqRBBgikDnswXn/vgIbAz+6ATfdQpPfPzvdaL2YMMSwHhniRdVuX9kwAgwVZUN58qj2mr7/j6zMCblViSbT0IWDquDmUz+RXIk8aMe3Ofh9jzALdEI06b8pyd5p8hgsAZ9WzFUr77UpOZBhIk+uJCzw/tNGCAjClos+SQjPzuJwsYVrHumcSEoajrNMzUGeEUPzU+RVlV7wKHcnWqYbcc97zvQN7D5oO09m9gNE8OUAA== 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=MXEBh4iZ0uGmrUzCsmgPDB7c5WX2DjbD3s7GK371OUw=; b=KfRfkpmgQFNWvvPgvK/3E8xnUAY4NMfOj21teJzeZBtn/Ssfk/z8hcEcAISNDmVs0BxNlFtVhQE0whOEkFnyRa8XTI5rgays7lU1pGEFbjlK2HyjHaWBK2p8AEElQSR16oSAYG05DChNvnaCexhlGWAJfSavBYM1MtiDBeMbNA2oVn0QuRUln3Rlb7tDS+DCSHTZJcx30tJluo97Grt73Uc3B0ZvEp/EoU5E5uHTyxoEadXb+knrp9YYK7Zzz4xOHUJBJ6j5shd+YCWABR5xspncAFeeSzfjmHyIK7LegqCHoSoyGKO1LmIaSFH9OqbxrX/O0/heG6vS+Rj234k5Bw== 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=MXEBh4iZ0uGmrUzCsmgPDB7c5WX2DjbD3s7GK371OUw=; b=Y5qP5RgqEtc0szC+MhQdUFKMEqS8qwD8dpE4GVMMDmFl/4Y42geiEyjLFG8j4k6GtPBT9n/0d8YibiLTYdWJDtgXVskEJSyFG3uxSsQrKOx4i/mddMCeKNM25rgO3Ntan29ETBSJZYHwM4ShPS9NRBMci3L2w9qaJZDZnDqadvpdKBMPCxJDVG2C64xiLeVukASIyJq2Ah+kBqHlyC+IME4EdEgQMzIqp7XgbNUlXJ5PqHo2kYAx8mOIYnwBkPnWiBGcUm0GlMP6DgwrnpKJy7etKFAL1mX5rne76l/UJGHXxNkm5ioMDjJzG4L8R8Z02QTz6XsOX0/5ZmzLj1waGA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR0302MB3480.eurprd03.prod.outlook.com (2603:10a6:209:19::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11; Tue, 7 Dec 2021 23:25:12 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%4]) with mapi id 15.20.4755.024; Tue, 7 Dec 2021 23:25:12 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 8 Dec 2021 00:24:58 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [7aYQ/ekVuf2dK5nghzWqM46k5M6P2Ok4] X-ClientProxiedBy: AM6P192CA0034.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::47) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211207232459.483893-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.248.74) by AM6P192CA0034.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Tue, 7 Dec 2021 23:25:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0d8983cb-2547-40ba-649d-08d9b9d8d141 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSZafVhYkhL3hNKBaHIpDWhgr/P8CPQmxQ8kpo736YRihTKi9RQh4g/HUUW5kSqtCE2wXcVDzhNf+zxiWTI1sZpYTP7Yj0wMkyyNvzVb/woHZXbXJWU/O+d9tyG1QMHu+8Cep5VW0FofQjGuu1T2TzntJzV3BDJ4tOVWIKap8zxFdrirAvnBnQL6hylHr+nKFCkMb88dLiEnXpsnEVzuptj3qkFJWl42DHkfPR1BnmxWd3ZKA22uf9XGZFPQxzyq480ccFGIeB+ozTucakDuKBoSSQAvOGj+YWlU6e/wELZFccJHkPIb0kXvzKfSSvgDgC5y0woTrKSTlWCQs++3YHy+b5hBOM2mt7/ZPJvlfXTtXu64rxXrAmkFlHWVmTdlVy/EVkizgcll0NfER5CcHMgQvy3KBOdn8sKqxZQikD+xLpxMkfTcdnAUAslRlnGhDsgMSm5eQo9H4Uukp4PqnPfxyeCSiroNQhGa+4tMbqb3hoKNg76cAb8B79/rDi8A0DrG9uuq2C/QnHmhn9SdRKL82nH3jfD+K7KkyF/4MqQNW/9Ot6C5x15cXLfWUP51OTz+3WiaJjx4HbqVpRS8097ajOXPksnShIjBxEFT+7Inxk2xut6fwOzW7ADo2M30v+sBmvZyqVc5oBe89PJUR8A6Irji476JvHKHKtr+0F+z+3OReJYLHlWZLAlltxsWq3xbsfs5bZ35bH6WeoG1KflXr/+V4us/IZ9i9BuDXgpYm7oj1oF0jqyJIZV/zxA4YU= X-MS-TrafficTypeDiagnostic: AM6PR0302MB3480:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qQ+AWnVWPZ3bulzDwimRLRIC3yuXPlogCqeTJibyWyRj0UX79lqoREfhmnHaQ9DVEZUByJ4Pj1ufXJuUMviVigC5paVOtTOgiK1nwMwL5++O2C36cFGfkKTYfsTHXQO8y0ESDCqqyc1gKQqXipFt87yYxmR99PXIXxvO5MEhkZlZUbsG00vBLY9ic/HzlLMpAfnIb3fB+ExoKqFTxSNeuhjayj3lQcoXPg9JhwHgu5X2oKpj7xix9BPnTSXHW3fGjXB6Lr2O80+BjO5D78/LmuUse8r+dfeqtvLK/Mk7xT42lAD8l1u6MzeKjtqGvsY++84O9mOqG8tTvfOo7RTQjHVQB2gQXLwFlwW/FDMXck4VpnkZBU1Zg5vnJQG4ZQZw7Fr6qCa1sCfEYp9OtmpnD/BZY+4d2RgOWCNmSun/srL1wnAfT2CaJxZm0j3FlLBtJFP/H00JPtF6b1oo6FkA884YqA4QB7Aauc084+b69zFZN5Zx4XdJpguF5mHv3J5YiPtZUSu2Bg5yGooUKqUifkLikWGsTslDkhi2abpqi5oUIlUgcqGuBQ9XOVnG0FADYhndK5wKiUuoFXD/U+IJcQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WbYtkoyRyCNmSB70bnhZDf2GE14YZDQafuF3DndWJiwReVL2oVTZH9kiZrunJnaWE3yhq0u+DxOany3SkzcmLAK23/txUmZTuK1jfY+7DOgJcu/84zB1f4IjuE2uPDAhhw9a30HJPIMkWQ3WAyLY8/g1Btxu48HVzVVsayBh3mlKQl9PRhQE1WWBoqKa/SjdJZ7JPZpa3b0yqm6mdjc5ibzrTgREGOjOTEDtdpV/INlII0LdKA79VW9aj7MV/mh1MIpWKYr0S1Q6L16xcv5f++5Lhgz+qSwQivWSBR3cPiy13/4neIm4M782RbJ+hLzpyI7I8yrzjv3IvVwdCKy4d2qPAz0esfeVvm5+fbkeYo9MjLGpFCQqQo1Cpk3mmCH1b9lLD+STiJCuXlpg+43oaVIBD5KHTTsLH8fSjVfz37ID6nb7u5OeY0BqPp2t8tzb8BlPPdbjDVADzwgCjyWmEyigSyKJ/UIiHU6vX/0vp8d8TQYIODgRbyAxbj+vaHJt5TJyuCa//h/iOvKZeQGLgzXbd2T2nKfnjIt8Dd9HdpxorHe5qzvHQSgeV4HZQIULHX/C82dJ+AmlPPzL94bp1GiWyW+mG9lCKTYIhY/e4P3rZ0KTbSMmrsU/qEF92wZRmjJY/hEAWok+p712MdEQQZD9qi/oVEWLZYmekiANPqYLNMZp3+BlDYEd5KtOBTZm7k+deQ866Hmv6vC8D0ahKIy/7NrhsEvpd54l3k6upnGWes+i2vNSZ6mDA8tE2BcUfKF6jdLsrgo/ACYTa71WNb7fI0KdUu4zXeCox/KrOGEAVMJJkCrd0m4i6z3voAYCVlKSFuig3ln5atX/UYWHgNtSGC49WhKyGZx/6GTiBMggwIFnxZtyIVIuoDBhx6hw6wOiAifDwOm9UEbm3ktInkjZZKaDJxA7VoqVeKe+aE8KrhdbHtkCa5GoVaUP9On4gPh/gF1efpB2WSwKO5V66A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d8983cb-2547-40ba-649d-08d9b9d8d141 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2021 23:25:12.6152 (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: AM6PR0302MB3480 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/movtextdec: Perform RGB->BGR color conversion early 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: c5yLG6yf3nTq Reduces the amount of conversions. Signed-off-by: Andreas Rheinhardt --- libavcodec/movtextdec.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c index d3b15d07f8..c50626c0b5 100644 --- a/libavcodec/movtextdec.c +++ b/libavcodec/movtextdec.c @@ -144,6 +144,7 @@ static void mov_text_parse_style_record(StyleBox *style, const uint8_t **ptr) style->fontsize = bytestream_get_byte(ptr); // Primary color style->color = bytestream_get_be24(ptr); + style->color = RGB_TO_BGR(style->color); style->alpha = bytestream_get_byte(ptr); } @@ -189,6 +190,7 @@ static int mov_text_tx3g(AVCodecContext *avctx, MovTextContext *m) } // Background Color m->d.back_color = bytestream_get_be24(&tx3g_ptr); + m->d.back_color = RGB_TO_BGR(m->d.back_color); m->d.back_alpha = bytestream_get_byte(&tx3g_ptr); // BoxRecord tx3g_ptr += 8; @@ -369,7 +371,7 @@ static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end, } if (default_style->color != style->color) { color = style->color; - av_bprintf(buf, "{\\1c&H%X&}", RGB_TO_BGR(color)); + av_bprintf(buf, "{\\1c&H%X&}", color); } if (default_style->alpha != style->alpha) av_bprintf(buf, "{\\1a&H%02X&}", 255 - style->alpha); @@ -392,10 +394,10 @@ static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end, } if (text_pos == m->h.hlit_end) { if (m->box_flags & HCLR_BOX) { - av_bprintf(buf, "{\\2c&H%X&}", RGB_TO_BGR(default_style->color)); + av_bprintf(buf, "{\\2c&H%X&}", default_style->color); } else { av_bprintf(buf, "{\\1c&H%X&}{\\2c&H%X&}", - RGB_TO_BGR(color), RGB_TO_BGR(default_style->color)); + color, default_style->color); } } } @@ -441,10 +443,10 @@ static int mov_text_init(AVCodecContext *avctx) { return ff_ass_subtitle_header_full(avctx, m->frame_width, m->frame_height, m->d.font, default_style->fontsize, - (255U - default_style->alpha) << 24 | RGB_TO_BGR(default_style->color), - (255U - default_style->alpha) << 24 | RGB_TO_BGR(default_style->color), - (255U - m->d.back_alpha) << 24 | RGB_TO_BGR(m->d.back_color), - (255U - m->d.back_alpha) << 24 | RGB_TO_BGR(m->d.back_color), + (255U - default_style->alpha) << 24 | default_style->color, + (255U - default_style->alpha) << 24 | default_style->color, + (255U - m->d.back_alpha) << 24 | m->d.back_color, + (255U - m->d.back_alpha) << 24 | m->d.back_color, default_style->bold, default_style->italic, default_style->underline, ASS_DEFAULT_BORDERSTYLE, m->d.alignment); } else