From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 019C1472A1 for ; Mon, 4 Sep 2023 11:30:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5AC4668C7DF; Mon, 4 Sep 2023 14:29:57 +0300 (EEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2069.outbound.protection.outlook.com [40.92.73.69]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2BDD268C7BC for ; Mon, 4 Sep 2023 14:29:54 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AnOpPhgkpTvYNW5OJ+L970EwwRJSZq70Ihul/x1qqUAw0+LpdUSpo4hzGadOZ8ca9Y69hrpTzjiuAePnyE2PaxTtWEQRvjIfxyO5SO5SyzG/hBexvDmnJd3o5gsqHqKj1VBpjr7QIedvSQUr8tW40nS2GGlOBc1mHQzTPEo+8yEXK3tUsjY8U1oQqd+V7AsAeADfYseL/Ia5cEb9sQMp1iSwsyXZx9W5CDDonysgXibEFYN/x+TVgH/AspAYYEfc25Z/w1QmohXVYv0rie1vdY4cgJ2lO1rglvEW7aDsTObGu2Q5rFnKnqpA73ObdVsY3fNBqoAP1ZBHK+xixWFnfQ== 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=Wy/UYruUG52dx0sbEfZYUHIcqDXOF8OEED/x9ocxzLU=; b=KIbhOkCXmXV2v+Qh+6MBOy8Sj5JDN6I22XCVHQi0DphYNzof+yKHHxkI97TgSOdXaZM7FivGHqOXpAfXtNN0jfo6cWs3wp30zTEGQWwP3YRiJDfNFDs6LbUQ61tRc6Fw5LXbIX7q1FiTMCCcWdND9UG0b3zLfO/rQrbtCTpFNMciiTj3cuzGocGs0fOksBieBRmZ9m3p3ReEA35eGfzL41KoL/JJ9ofS6jaJ1KYkKM6FnVtg3+SGslXu+p5w5AnQSUCU8DetNENrWdLG1QuVQW8W23U83ejzVNRBY0s0Ug+x+JVsEa3d8hsZPKTyQx1D6c6loCzw9QNpEBR8zqYxwg== 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=Wy/UYruUG52dx0sbEfZYUHIcqDXOF8OEED/x9ocxzLU=; b=NCiUNjoQ2U03X6mP3bRHKI8lkR2jsiYlyhZmpV0TOeE5V00tLSKDIIDyW2oPnGzs5PsK+gnCROC9V5V4cTjgAeLXMwfAOlk5ViunwljYKAza5PyfaZeACRuTWx/sn2aI95dmoew6H8Dphn60FnQx36AkEbZxiErtpZa2ElmXzDa48ptc+/R35mhZHh6BhTpd4N/TSDVc5f6LMzIuPXQO7RClQUc7PcuG317N4px2QAdscmsfFV039VwDC2M4ZiNI15xvBo6q6MbHFrII908M6h0jNd1KJmZEG3YNsDynX0tGeAf1RCoazbvdMosBcZQ13uavqeBHCSQS0eg69pZOLQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0280.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:32b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.32; Mon, 4 Sep 2023 11:29:53 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6745.030; Mon, 4 Sep 2023 11:29:53 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 13:27:53 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [AFx/QAYdmcy0ecQi32/qAguiRwlSBKlcHNHpYA7W5UU=] X-ClientProxiedBy: ZR2P278CA0078.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:65::13) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230904112759.2652347-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0280:EE_ X-MS-Office365-Filtering-Correlation-Id: cd8b3606-4170-4a71-bc0d-08dbad3a4204 X-MS-Exchange-SLBlob-MailProps: 0wLWl8rLpvtlEyItUpZmgfjbRm+zWpoMVsOfPDm+Ti0pT1wmmxtpDn7WrgVDqAa2KuAEdLJ1+CJOILklBJiJzIeFxQIZPAoQPF/tKDsgipI6ym1ZwJDZbmKsHY+BiYT4Fc2t9Z43aOhahVwmyYLfcZgW3o5LGigvA889RGB5mEI7ILG80qDF45dCkKm5tVDgyyo/VCnjBBV2otOwNfsBH2F+hL1o2Mw4FWyEud9AsIZhAAtqo1veerpgD6ztsRMrcyi+ipaw4HCQaZEzRSMDN1AtjuB3VH6FZbaAHevP5Cg8Q1byJFmHsdBcjd3CMCalGWQXdoNTaLrK724cRk/p7InjldS5GPjMp7VNyTmGLzLCE6H8z8Nr9PJ8VTkJF+l2XiREGxl8EFkzMx/tj2KANjW8rscb2aSjM3BaGgDc8/OwkHcvcOhiJrmUS25jUC3hNnOFvsXqljkrZ8hllFWpHQZmqQOeUX9m/yAtawKg4MIfptJCJH9vwt9WDMwoJVAgoP7xC/c8y31aaKSVGbv/NW6ud2TbPOgkuXZke6Zjh7mY/r8Nvfi75YNi+B0AWDVeBE+Omg/IvszBBgPHg+1QiiZeCRetZdb/4916gBAmvLsDF8VqNVfU8PVr9GAMmef1JxtAZhLQrcp+KfERwhIsyuoQQFLg9Q4qGV7YaqgiMKJhLtq6ADirAJg6fyJLrQLVh21923g2e6yFfTdq6RewVuoTSPeEYjigBJf4SnBjcXTp4knXi6x7S48oWj6V1CZtuuHiO32mFuw= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EmjkYFK0GXIRNJYv19QXxOW9m4s98kINDS/Bp6X/zglRZw/N/UqkfDABbR6w1PoF6oX6X0ZUJ+Ls+YkIQXc2CFkSdvWGycczs8TrkCSh1Z6HeSttgo1O01KcHnUWNewlPX73yVQijp1rdiI0Orrt/E/3A1oWU9AU146+eM7W/lntuorl8pdU3EGcCufRaEwLyvzBtWgSYGNvDg5kwjvbzW/I6CyQdTNHcOxjU0ylyM12r+oF3eBdrUIyCQFtpwMBJNegChdtr7C/xPQTRpr1roWVlnUJzucexK4hFpXUDDftAoLBcIfwEWbN5qv3uQ7r6rfGA4zQP4oq3MduJUKPbnelRbp7ALJEMmYp77gYVJyA98AVthGSHyfhYeN+/k9szjQPdqPgfL6h3lgRHVV31mA9KCinxlRIqGm4P2EQ0mcajA/at5rDUsekJ+iVFkxWJAUNavrw6Utx6Z4JCn+iqm+fk346j+vByHgk0NwSNWuLU/MXAfKxLWCbgfAKVwE5sgQe12Wm9yKnvnu4DP9Hlv12vjQqFfrEofXgUwOP3iqNhc57StbDYDAVInoky0t2XQZGId9WBaB0QRZ7aOFl1/abIF95YGivtH98+CFZdIWkxqHfyDA281bh1pOxHI1o X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kMdwFUjpW5An4bjZiINAs1yWPbF068zVPgBFINtIHRXUdSZkud3yNRuA6Bb5?= =?us-ascii?Q?SzWkXD5lR7xpQX9c5y6qDimO6cbfcE28VBV+MqNSx7Yua2j4bqu3PRtd0/7U?= =?us-ascii?Q?y85KisM+VyXT3ccrpbxc13hmVqDWHT7Fg6uH8EJdDEFCEqeMfNjSm+CNfi2u?= =?us-ascii?Q?8QFc9BPBkQfuuALaRxBgRTSjblXJsDEQDLkDEGKfi5RC7hkwCEoMn9bMhMHI?= =?us-ascii?Q?qN3LBNW0+wNrdWMxGFDJdmPpgh2Kb2s7U9iuGdI6F/7LnbXB+/s7KVL+Co8C?= =?us-ascii?Q?wu6qpNbqjc3755T4lIMkUAUoVZxXHGWOpC5BjzOy+Lgh5dc7hPMgpLq9pnb+?= =?us-ascii?Q?pkar59tiKcCFv1aYoq55XFEv8ZRAKB8+pdEqJgXDvq/0urAdQKT9kvyR8JJi?= =?us-ascii?Q?Bjd6IKRLj9KexWYSWm+pN+lRA/OyQSBnk+0qQCpD45aa++gX9077Cn+ksubF?= =?us-ascii?Q?+sVCPs2oPE9Vakf8q0bpAlDXuEXvnZy9MxO4dIbn7sR1YN7rIDjh0X4PILZ2?= =?us-ascii?Q?/bgX6X1UZvykKJAGE0cl5FYbgb21M0VyA+8/LePrGBfnfGxANaZ1xswJYZp+?= =?us-ascii?Q?U3p1h+AJI7TX1YaEONvNp2V37GWuez2zmoNAFr0/VsbrKHirVPDk1dHnJokY?= =?us-ascii?Q?IixtNR4x7Yg7BnsdSub4/Meqd1Qhc1x7sg4viP/P3QBA7m5xVyGRTQaGS8QM?= =?us-ascii?Q?lunBJBGZ1qEU/sgEGSL7HQEVXLFzu24kqpbwuFMUtdtxc1q+BBwDShdQPzcy?= =?us-ascii?Q?wl8b9i+4hv63UWIKvmpWHmUsmt6Q01rUCy+pfOHjGSVdkcYV05K44XRBM5dG?= =?us-ascii?Q?Ql32aOpfgzhIeEhAPERMf7a4gqB7/evd1wT0QRZ9GVLCeFgDqGDplxcjwucH?= =?us-ascii?Q?Nz3rj/Bx3EgBTGbywHQZID2uFYR0XhkA/DbZ5F1sssxL7Vlru7izUaGF1WGR?= =?us-ascii?Q?tgNtxy+Y+ydhwOXNqylJjgVmt2y3jPlYb2MKX+/eLnda5jZnkQY2fArzoK0d?= =?us-ascii?Q?0SCxVlPQSkWvfaG8xvHax3DpPfG7+KeOmw7bQLVoKH7hfafGL0ZInGaQU2cJ?= =?us-ascii?Q?6wXk/FGY4z3g1gg8hJziC5/8GXojJgQuSDJjNk7MJPlZLPC/liZeHp9zc8ms?= =?us-ascii?Q?Qc1DbQJzj0HFPLtyDUYfrsGUeYWpo6IR5ALRilQGXwhDZ3FH0yUyKuTlwViz?= =?us-ascii?Q?asglu3+EIz5zoZpNlmNUW/y0qT5mWQNHkGbda1tm430HJyS/mNqqsSO6Yedd?= =?us-ascii?Q?ejG6TrhQgmgngoSTS1PC?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd8b3606-4170-4a71-bc0d-08dbad3a4204 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2023 11:29:53.2725 (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: AM8P250MB0280 Subject: [FFmpeg-devel] [PATCH 14/20] avformat/matroskadec: Factor parsing subtitle codecs out 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Signed-off-by: Andreas Rheinhardt --- libavformat/matroskadec.c | 75 ++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index ee546bfffb..97e944df7c 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2803,6 +2803,48 @@ static int mkv_parse_video_codec(MatroskaTrack *track, AVCodecParameters *par, return 0; } +/* Performs the codec-specific part of parsing a subtitle track. */ +static int mkv_parse_subtitle_codec(MatroskaTrack *track, AVCodecParameters *par, + const MatroskaDemuxContext *matroska) +{ + switch (par->codec_id) { + case AV_CODEC_ID_ARIB_CAPTION: + if (track->codec_priv.size == 3) { + int component_tag = track->codec_priv.data[0]; + int data_component_id = AV_RB16(track->codec_priv.data + 1); + + switch (data_component_id) { + case 0x0008: + // [0x30..0x37] are component tags utilized for + // non-mobile captioning service ("profile A"). + if (component_tag >= 0x30 && component_tag <= 0x37) { + par->profile = FF_PROFILE_ARIB_PROFILE_A; + } + break; + case 0x0012: + // component tag 0x87 signifies a mobile/partial reception + // (1seg) captioning service ("profile C"). + if (component_tag == 0x87) { + par->profile = FF_PROFILE_ARIB_PROFILE_C; + } + break; + default: + break; + } + + if (par->profile == FF_PROFILE_UNKNOWN) + av_log(matroska->ctx, AV_LOG_WARNING, + "Unknown ARIB caption profile utilized: %02x / %04x\n", + component_tag, data_component_id); + + track->codec_priv.size = 0; + } + break; + } + + return 0; +} + static int matroska_parse_tracks(AVFormatContext *s) { MatroskaDemuxContext *matroska = s->priv_data; @@ -3006,35 +3048,10 @@ static int matroska_parse_tracks(AVFormatContext *s) &extradata_offset); if (ret < 0) return ret; - } else if (codec_id == AV_CODEC_ID_ARIB_CAPTION && track->codec_priv.size == 3) { - int component_tag = track->codec_priv.data[0]; - int data_component_id = AV_RB16(track->codec_priv.data + 1); - - switch (data_component_id) { - case 0x0008: - // [0x30..0x37] are component tags utilized for - // non-mobile captioning service ("profile A"). - if (component_tag >= 0x30 && component_tag <= 0x37) { - par->profile = FF_PROFILE_ARIB_PROFILE_A; - } - break; - case 0x0012: - // component tag 0x87 signifies a mobile/partial reception - // (1seg) captioning service ("profile C"). - if (component_tag == 0x87) { - par->profile = FF_PROFILE_ARIB_PROFILE_C; - } - break; - default: - break; - } - - if (par->profile == FF_PROFILE_UNKNOWN) - av_log(matroska->ctx, AV_LOG_WARNING, - "Unknown ARIB caption profile utilized: %02x / %04x\n", - component_tag, data_component_id); - - track->codec_priv.size = 0; + } else if (track->type == MATROSKA_TRACK_TYPE_SUBTITLE) { + ret = mkv_parse_subtitle_codec(track, par, matroska); + if (ret < 0) + return ret; } if (par->codec_id == AV_CODEC_ID_NONE) -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".