From patchwork Sat Sep 11 06:02:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soft Works X-Patchwork-Id: 30120 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2167625iov; Fri, 10 Sep 2021 23:04:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwWej6nA0KFLZJmbH7yD6ar6D9yA19CDb5y6Rq+k8ZyChICX3QRN80NPwkPQadQ4xA0xCTV X-Received: by 2002:a17:906:9801:: with SMTP id lm1mr1385474ejb.432.1631340247277; Fri, 10 Sep 2021 23:04:07 -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 js2si1202441ejc.576.2021.09.10.23.04.06; Fri, 10 Sep 2021 23:04:07 -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=FD9SY8U6; 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 474C768A631; Sat, 11 Sep 2021 09:03:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12olkn2093.outbound.protection.outlook.com [40.92.23.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B628E68A126 for ; Sat, 11 Sep 2021 09:03:01 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G6VYhkIK8cGAJ786sh3mT+bDMkqjkOsMKa82NrOPaVfUbXgA342K4fyNklC/M/Va1VDJvXLlH52ERxipQk4dAugGc0SUS5XgYEi8Bx948ZfKPwEd9AI52/2NiwtLDUEoqWeLaTGjfxA9UEU0tf5BZqyTczV0tv9/uoUcPqBnjHmDeYu4vsotgQ22N2q3CzOXz1y0B7q+YhQrlWVcny/dKDFR3x0kVPJmhCeF0MLD1Ad/sAGoYi1CkbmSqC7NgfgsKuUaZeI71Ki59QNKlv8l7Co02GmoGSJ+yEnA1n+aMRgP0h63tnEBkktcU2dTZhXjmd/gBjN2ZjaUfNzb14TbXw== 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=YWrbsjXiqo56PkfOnX2EuWfdrt+UZTYLJCOvLz9ZTe1GLwFcKxHkVb7fbmlr86vojqGci5ZB3ei5A0vF9IOUfQ5tRtZMaK8D+G/msZe/evqrloDt1zWzmOGUsAVc1x6+3o386IRm5rl5Z/NZhqmJ8mlVyny6C15QNQPvvzELL7f20sOt8DAKhFeENx2tUkAzpjKRf2M2ejuPgKc7fFeXnhYsbOQfB64syYo7V2kvGTI3pNzHfn73plOyowZPA4qA6n2u7EAI9hDMmPu5HxuqeLQGQ5Dbjp+R18LVIpOHg4s9gbwjKAHZRaBdnOYae1HeI6uOwFbhl4UuP1FpfFgyiQ== 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=FD9SY8U6SdpHEdGaAl7q7hEwx+XAPnD6dU8NtIY6HQ7aD1nYrwVsUA9wR1hBRfwPwHM+gDTJTZmchjZ+ac4vOS3g6ZkUyoaayGNCxUnFxACbX3flcvLK+f38j/0vOL/wXLdUNkrgx0E+g4f3qJv/Lp5StBJA0qTs9tjxaxdAHuT+gmkTCY3vDC3XtlwS9QLj5msAQpJjI/CxcW6GBJIYuTZOorftcEXVI1i7ZvNklmUrd2J6QWg4xgxKyBEaHZK88nAbC0Vgjxjy7ARnXCDY7XoKplB4JzpqJrXnbAIT+gTzog51dQSeRqLlud/WEI/cq1Z9hNLgA+aCOYNXhH94sg== Received: from MN2PR04MB5981.namprd04.prod.outlook.com (2603:10b6:208:da::10) by MN2PR04MB5629.namprd04.prod.outlook.com (2603:10b6:208:a6::23) 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 06:02:44 +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 06:02:44 +0000 From: Soft Works To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH v3 04/18] avcodec/avcodec: Add av_get_subtitle_format_from_codecdesc function Thread-Index: AdemwWL3QN+9ogW8QM6hkPHh5ip/fg== Date: Sat, 11 Sep 2021 06:02:44 +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: [0x6HMx5yzWFzzEW8DJdpnklXFLPHv7YvlD4zUyLJh/I=] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fc60f75a-ff63-4027-152d-08d974e9c5c6 x-ms-traffictypediagnostic: MN2PR04MB5629: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UazWXK00tVhno2GW7eUyuLV9wYBvm+F+gVb2q9OasxX1uU8O2nXus2AhWCZiGvW+OZMlWDVeLxfqMqTii/SzPKaC+TQNYewxbyt7YSrPcsu+/VtFlXlwxN7heCOmtptu7CmdgvbZaTGET79Zvzg4/OJtiqLvtUdzX6XoFn7A2MT+9fOn2k9y+f5NlyIhYmWxiWVDT86fmrCdE1BrFMraQ42prBlcRg8opQHBpqP2x/z272fLcA6o+MWTHZo4xEqFG2E+MFVVqjLgQ4aWTNDFBtPyjod9IDbAp/Q2CNl3YNllCdM34O8u2g1BGJk9d3Rw7+olJUCU/mr96Dh9+6EXGyRPR3Ow86wVhQIYKM0Ym45Mj3IgOGLAAi8RiUe7sl4dutzAv+KROS9z/zTbnObdnyspaZLL52swMzRM0tLxVHxk4CwWcyN+r4F+qEoipvNz x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: V/sleYABh4hD3kvXUyuHknfHGQh75IjvUDfH2eCh7oI1ONI5G0iMamezct7trVUb1uxbDyng/fZX43lfz4AbNCz6Xw6crYRkKLOGz4ezfUFEqvA+dEskkWqrEatosyYACOclfgADT4BjIH2Q5CgByw== 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: fc60f75a-ff63-4027-152d-08d974e9c5c6 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2021 06:02:44.3701 (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: MN2PR04MB5629 Subject: [FFmpeg-devel] [PATCH v3 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: YGpx9ZzmkdlA 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,