From patchwork Sat Sep 11 08:16:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soft Works X-Patchwork-Id: 30133 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2236520iov; Sat, 11 Sep 2021 01:16:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzu2CtJCmiRUoQKiH5FBZDmxvseEMSU+7l3YNXYl/K0zva99vtCwPAta9p5Cd0QpLbpIWKI X-Received: by 2002:a05:6402:84e:: with SMTP id b14mr2200758edz.260.1631348206044; Sat, 11 Sep 2021 01:16:46 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l19si1166262eda.351.2021.09.11.01.16.45; Sat, 11 Sep 2021 01:16:46 -0700 (PDT) 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=@hotmail.com header.s=selector1 header.b=ng1zMZSK; 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=NONE dis=NONE) header.from=hotmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E2A6068A609; Sat, 11 Sep 2021 11:16:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11olkn2038.outbound.protection.outlook.com [40.92.18.38]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 58021680157 for ; Sat, 11 Sep 2021 11:16:36 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WQVu+fIczjBQi1nUYINs0gpO2MYZBJkM6/3wLUy3l/UUxql5YiRdbC2+xxZVF3AHw6CkA1U8WQUj8jLW+NsREfBGQKMI5RIP8t5WEjSZ42TbY8V4YL+9fTbn4jDZbupmFwLvhj01KVi15uibABYopK+Eq1qPA62RKv73VV+/oT5I9H997GAMJrr+wf1Nu5AdQZ9QMo57eTdAx4gErr0NbjypJgzXcrwXMgxPZ2/i1ua8qeqmMutxgQzEiuMbcF9Lixszu9cu+MUQnCfjiN8pvLeM5hPnI1ik7njR56qlHHuuCVio9O2lbu183WJ0+vjssCOl0g9wSuILSU+QCgRD3w== 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; bh=LY3xvQ12ydnilGfJMkD/VgtzbP5YRIXrepSQkYvOK7o=; b=nS8hSKeezbNT7Gl5NzQAns/gUNqc/eOe4rujplGRymjgBkb7buxPh4gR/I+7+4ZFIm4ASb2HMre3Qrn2WLLpmCJZQSbmkGf2nAwi+VipcJLli1iGKXeCjjValvbpdgYINPp/f/N1SmAR8qALzSlIeubzkuSKN5A5lCwFZW8BwnTKkQH3K09wJ37UwsX2mU/CPXtxmDJ9x60itkHk/ikTbz5lCjWXxqlJmul23Tqu/1X8Ww0Hw1WVAKEgXe6ME1ZmIDJZxCGLTxqzTS1YYf0ReLsvFk8d+B6TrA5/3WWu/ooVfTm7u8ZQIpmYSm6KpLWTMnn2+ACsvijpY1BPcwkEnA== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LY3xvQ12ydnilGfJMkD/VgtzbP5YRIXrepSQkYvOK7o=; b=ng1zMZSK9HDxBGDEqjxdnTN/gb+SUSqoeN1GEpGw7y7dSPqEXCtC7pjuKpLINBC+TN+odDyYWnQuo/Sr3JqyK1KfThYGdCVZYwuh9azjcYE7zbeja98E2hUq3jF0Lp+qBgUkLWESVSKrlqJtmwoMyUMPEXlsIrFbdSgrr1uPHzGT3hCrMYjySjINu52e/u9rC4AjMMVgymkrSd42wKOGmlEGD5Qe9Ee69XPR0Od+2O9in1WS+jB9XEXRPYoQhnB/c1SHn0gFj04mqOJlbeli+Tkio/YJRUgNR/i4gKvLR5JAfPbbizuPaNz2NURF8Zeht6izA5HYF0jFx2gRk0UnRQ== Received: from MN2PR04MB5981.namprd04.prod.outlook.com (2603:10b6:208:da::10) by MN2PR04MB6048.namprd04.prod.outlook.com (2603:10b6:208:e5::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.16; Sat, 11 Sep 2021 08:16:33 +0000 Received: from MN2PR04MB5981.namprd04.prod.outlook.com ([fe80::ecfe:2528:2012:22cb]) by MN2PR04MB5981.namprd04.prod.outlook.com ([fe80::ecfe:2528:2012:22cb%5]) with mapi id 15.20.4500.018; Sat, 11 Sep 2021 08:16:33 +0000 From: Soft Works To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH v4 04/18] avcodec/avcodec: Add av_get_subtitle_format_from_codecdesc function Thread-Index: AdemwWL3huWVxInHQoioIv2ItLICsg== Date: Sat, 11 Sep 2021 08:16:33 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [mKZW7uYnD1HRVKuRfFEXmczltaSRB24hNmJJcMFdQns=] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 904d4331-ec15-487a-03db-08d974fc778b x-ms-traffictypediagnostic: MN2PR04MB6048: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PvU90SFbGIH6o4rRdTIIGEFCJc3fiNq4/BraXS7zpQYdcEw89ulK9xmVhjkkIZ0nRRA0igk6/nsCdr3PhUMX58wffVkbfb2ZqhpzwZ38hbNmOYqboKDM1L6YQUhWnDbSnn5TNjGV75YGNIzoEjfXGQ3SmWAtVXqwy2su6N0D3IY2ESo0fa6fsCWfvB1+e8WnpkRS5rXqZolCxjxI9G3FoJ1Aj6UAgETWwnyKos59Jqnzp3aoy9MZpkcg6YJnIb6IepMY6n0DSpflvXajrku73e3xWYdhbGVh24lz3v2FI64KUjB+InDXfD5DX6oX2QeE6WJvi7Ff/y3DSbhytycvncKnjREzptj4GuuWn8o9KUPWL64N0JLggMk8z4NZJ0soY8n0eFCSK+c62WzPF5vpeUihztJ4O9wsKm8xi2dcUWaF2j7x3U6ezejVT95oiDJM x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: T7GkB8/6fk8eS/BA7TnTQZAnPXwhh1XhfXXoyPGVsTZGcjbvZL8ENLviGrLT8L6CmydZ/bnPq6x8xEHsqmJkYaDRH4YwOTLLVT7L2QFhDDuMrTtn/YlpaRZP5lWVwzHJv8dMfLyFfYb7+fwcVuhk6A== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-529c7.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR04MB5981.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 904d4331-ec15-487a-03db-08d974fc778b X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2021 08:16:33.4816 (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: MN2PR04MB6048 Subject: [FFmpeg-devel] [PATCH v4 04/18] avcodec/avcodec: Add av_get_subtitle_format_from_codecdesc function 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: IICRRunukXUg Introduce a single place for deriving an AVSubtitleType from AV_CODEC_PROP_xxx Signed-off-by: softworkz --- libavcodec/avcodec.h | 8 ++++++++ libavcodec/decode.c | 5 +---- libavcodec/utils.c | 11 +++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index b459c23ac7..0f71b42d61 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3059,6 +3059,14 @@ void avcodec_flush_buffers(AVCodecContext *avctx); */ int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes); +/** + * Return subtitle format from a codec descriptor + * + * @param codec_descriptor codec descriptor + * @return the subtitle type (e.g. bitmap, text) + */ +enum AVSubtitleType av_get_subtitle_format_from_codecdesc(const AVCodecDescriptor *codec_descriptor); + /* memory */ /** diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 643f9d6a30..dfec9711ed 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -841,10 +841,7 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, avctx->pkt_timebase, ms); } - if (avctx->codec_descriptor->props & AV_CODEC_PROP_BITMAP_SUB) - sub->format = 0; - else if (avctx->codec_descriptor->props & AV_CODEC_PROP_TEXT_SUB) - sub->format = 1; + sub->format = av_get_subtitle_format_from_codecdesc(avctx->codec_descriptor); for (unsigned i = 0; i < sub->num_rects; i++) { if (avctx->sub_charenc_mode != FF_SUB_CHARENC_MODE_IGNORE && diff --git a/libavcodec/utils.c b/libavcodec/utils.c index cfc07cbcb8..767dfabd1e 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -818,6 +818,17 @@ int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes) return FFMAX(0, duration); } +enum AVSubtitleType av_get_subtitle_format_from_codecdesc(const AVCodecDescriptor *codec_descriptor) +{ + if(codec_descriptor->props & AV_CODEC_PROP_BITMAP_SUB) + return AV_SUBTITLE_FMT_BITMAP; + + if(codec_descriptor->props & AV_CODEC_PROP_TEXT_SUB) + return AV_SUBTITLE_FMT_ASS; + + return AV_SUBTITLE_FMT_UNKNOWN; +} + int av_get_audio_frame_duration2(AVCodecParameters *par, int frame_bytes) { int duration = get_audio_frame_duration(par->codec_id, par->sample_rate,