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 1D0584542F for ; Sun, 29 Jan 2023 23:05:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4A86468BD45; Mon, 30 Jan 2023 01:05:53 +0200 (EET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2034.outbound.protection.outlook.com [40.92.66.34]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9DBAB68B934 for ; Mon, 30 Jan 2023 01:05:46 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j8SIU/D3ElV/VYnt1MFF8mnW/3OqpxJQCPoz0J/sOAXawF2sehdo8obV0jFCckET8XFbc/A4jlIGnobk6Gt/QEohoZCqebwdmsH4dT9UjiNgLCTvcHYV63ISgaIv2m4yUyyq8wgUJXtB24RBuDYqG/V3oTw0KPhgnIAGS2okV6VX1PFZ4N0f25pFT8kX9oEcqJNuSEXf0dwG8G/mNHn+xPlA4b/esGSHeoMVpL+vGQKBIh9Q7E1S82zEooHFwWMZ/EvgidsF9mecKtuZmj6uF80Y51KUZeLLNGn8Ds3cEgXnJfAQSLGE1BNscc6Sxq9rJcDhWx7J0u7oWUTGBo+K2A== 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=0UxKkPT0tv8SkVFJZUVv3xpvBgToagr9ZtXul6wcXn4=; b=OiVHILKZXTHFUN06zhO9thXzYnc8LSfT8yN28kEhPLD9ZnzvtfTbvqs0xSjp8dUOHBCScUCdSf1Q8HeeA/P+My1bKAsDyUO4ukQ7MxgKIwvAjkgo8PkADEVOiil0m+dmer3gvlz1goZ6VseBbYxRWOhPdkp2tGWCP/9+mr8/eVw1ZQ1Ec11Ebrbvanal+aEk2rnXFUVu8u73nPvNIY6F4i3gtKpVE8GPPo4bhJJsMW5QdkZnu/a86AAGTFOJdO2J2wpQOi7t9nZNRQxSZV5cR4cbSFsmKYd46ifXrkWrdEWXeM78PaTwKuYg1xk2wZWXZlCqY3P/53tmhUpn4Nznfg== 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=0UxKkPT0tv8SkVFJZUVv3xpvBgToagr9ZtXul6wcXn4=; b=RyAgdm178nXgV9HcQfBCfE7rDQQ3Hen3VeORAHnyPNjt9nwI5xhL2XfeUhXrf9SdWzapCagoTZn/bXBE99UobKWiqpisI2I40fkvVm4sC03bys5x+lNiOq8Z+qysDQ6xlf2FO13wYjZaGeV1WmiWY+HLFsIKbmRb1HhHtnHm4E7huDBvDzRMpRdDsM2hn3W+z14ZHg2bfKM3/arq/E5U47Iba67s6GX+0+pScM8Xn2PKjyfSKBtiqyr18+wG9wvgeFgmT/rckGgEYjw+4+skooHA+PiJ5jpyfmSv/s9M4fYDHVqYj0xU1E4aBZADw02UEraAQC+begq5Z49hr5/wOg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV2P250MB0803.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:af::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.28; Sun, 29 Jan 2023 23:05:43 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::a65f:2ae7:256a:ab96]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::a65f:2ae7:256a:ab96%9]) with mapi id 15.20.6002.033; Sun, 29 Jan 2023 23:05:43 +0000 Message-ID: Date: Mon, 30 Jan 2023 00:06:12 +0100 To: ffmpeg-devel@ffmpeg.org References: <20230113172640.52901-1-rcombs@rcombs.me> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20230113172640.52901-1-rcombs@rcombs.me> X-TMN: [Evh3XJaFk0H5zNVhL8l78pBuK/eAfDDt] X-ClientProxiedBy: ZR0P278CA0110.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <6b210b78-9026-fdca-b14d-a4d4c5b158d3@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV2P250MB0803:EE_ X-MS-Office365-Filtering-Correlation-Id: 87499fd4-b778-4951-8ccb-08db024d5926 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JeBM9MaHhjW/bc50djNeU6K3EqQ1Xpbb1WPiW0vpq973osMjtF95wgG5Wr9SZrEZJdSk57GR9fwSkZrqN5Td2wxObgj1HVX6StxvNkgUFG169kh/hJ6k+E0ve+mCc58WE63u/oVHMKQrRZlJ5M4+enQIF0UVsJ2U1mz9QOjZAFjdHXZSR7Zq3kW+hNaLquV4PT2TTcUGqw7cCa/S6lQurpFNv+c8TPfV6uT55cM8A6c92h/nrAuKVhpA2CSPSVSuGo+NC4YICl92GzhinohuvSiFoMYK2VZ4Ta3QSfQlJzyNVBYOidcRAgNlcYieGS1dIJ8wU1JF94WgMydfG3tKgzI6yp17katnd5BJ++moDy96wJkSzT1T2PxhkRUMMmkGgP8iEEdrd1L6O02kt0WyawrbGQ9CdARz6WqwdRMjvAk9kuip4pM988X8aOfo1SCf9CIaSPwZHczFIc41YEj4UO5YHoqrtpA/EfOnHWCFi4v0l7jeL50HMO3HLhvBsGHz960nHbUVdCB0+3/LugMwK6/I2o9dPuuXJgAjjWU4OeGUfF4fpT+Q/VfDIwWupsK3zVz0JIxghhXN8xa21bcG41p2boIBz23T7f9NVG66+ncKWUd+Zv6g6ee+KHzpmba2A3xtUKM6obdNebOJqC4jXA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y3U3QmpJQTBIN3p0WnQrbmg4SmxGL09TbTlKTkk3RUh3WHVDSHJ5bmFUL3JE?= =?utf-8?B?TVhzYnU4dWE0SHZwcmJzM3RSK2V0azZ4TUVEdjh2U1F1RnM4UUZWVlpIYVhZ?= =?utf-8?B?ZWJKV0xhTHZLQVdRSVdiTTYraTVyU3gwWDFCTmV3YzhRazZud2F0TUxlNm5j?= =?utf-8?B?WlZQQUh0aWJxZlVncGpFTXd3K0x6eHZZVXVJelFzMU1HQk1lUE9yc21hU3M0?= =?utf-8?B?b0NwUldXM2pGaWorQzFYOStoYXJtQitSTHJJOGl5bTVuSDU1TTA5Yk1RNjNX?= =?utf-8?B?SVdyRlA5ejRzU01tclByZExocDBoMTY2cUxldG95YkJXVTBranZ5MzBndWpv?= =?utf-8?B?eUdiQTB4S1BiOVRhWnl2NmRKZmdmN1M2NUg5cDN2dW9TOUlaTkNoQUtqOTZ2?= =?utf-8?B?c3EzOUsvaEpNSWJNcDZ3c1g1ZVlwVTJoRTFlNEgyRUtqeDArZEtPK25ZQVR3?= =?utf-8?B?ZGtHRURLOVpPZGFvbUxPb2FMa1pHSXBqTG11dkxYNklSdVdGWTBGZmRwWDZk?= =?utf-8?B?R3owT2UxRllWektNMC9oalQ5V0RwZHRnSnF4QlhvQWN1bm1yNVJVL3dtVDl4?= =?utf-8?B?S0FkaUpOZmY3YjJKMVdUNlNMVGVBdW5KT1FNTUR1bHBqVlE3ZVR4UDFRNjJk?= =?utf-8?B?aGR0cm5EWnZKaUM5cW5vYVhjKzlSaWVSeUpKNW9CeDRheVFXb2dJTWxxbGhB?= =?utf-8?B?akJyY09RenVIREVUM3lndWFRLzdHaDQwc1FLcjR0bDEwbGtWSWlRTmpPZHlK?= =?utf-8?B?ZDVHc3RxWTRkQm5YUHZmUTMySjRRZGYxd3NjaVBjbWdYcENLeG92VmJ3QlI0?= =?utf-8?B?RldnOFVEeSthb2hpWmo2aVVPVFBqcG1McC9ubDZqVUJnSjRSRnNhTDUwMXFG?= =?utf-8?B?V2lCSzJ1WVRRS3RCalZXSjdHTWszRXNTbk9KTXNKUnYrUW14enhnSFduVVRr?= =?utf-8?B?a2NDR0dHd01ZRVFRdTBpYzZTcWplUHNnS2Z0WGRHVHJlVU42QlBVY2E5NSs4?= =?utf-8?B?QzBOQ2pIc01xVUJldnNXNWdGWGZxMHRDeUtNUmQ5akkrSGZvQ21aS1ZoMEZl?= =?utf-8?B?bDNEMHJZZlpUanFDd0JQRzB4TzJiQWFWQlNPekt1NzB5SnAxZTlpbzd0TDFR?= =?utf-8?B?TUtIYUNoMjAwL3JBTXFJWmJFazVhNXJoZm5pd3NwNGkyWFJ3VVByNjJYNjBE?= =?utf-8?B?ZjVsZUVxeFpXQ05GMGkwWHZWUnF3ajBnUzhCQk80UFltMDNmTE5oUlN5U0l6?= =?utf-8?B?d0ROVDl6UzMranEvbnlZbUFqaFBOV2R5U3VjS2Fma1lrRjFrU0NRUlBGM3hl?= =?utf-8?B?M2QyZjZjRWhWVE1nR2ZiMVlNZnhUTWNMM0MxeGdWdHJkaE1MQ0dUb2d6cWhR?= =?utf-8?B?Um1WUDhNVU84WVJ5Y0F4N2JhVGRuemJhTkNlK0ZOTE1CWTFzRndjZVhDVmhW?= =?utf-8?B?YXY4UjNQY1c4NWt4WEJINE92aTdiTWxsSm1PbDlXM3p1bkQ3dlRJT2dsMnMx?= =?utf-8?B?UEpFNHlZOEM5MG0vUDhWOTVGLzdUeGI2U1FWdmhpNThKd0RHMEVXcmJBUHdo?= =?utf-8?B?anRtVUUrV25QOENMWm5ZSU9rUkZNbXVJcExCQU1pWlVFaFcvZnNwTit5NjFp?= =?utf-8?B?Skg0RTE5VzljQW5BbGEwSTY5bFNmMzExTXFyc2NGSnJqZFIyUFQ1cTI3bUw4?= =?utf-8?B?d1UxQ3RnMk5TRHBWSCtPSE9FdWc0b1p4ZDA0bExaTUxvUkRvV3hRWXR5V3Vv?= =?utf-8?Q?V4DowcwSPlZAdI/2O4=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87499fd4-b778-4951-8ccb-08db024d5926 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2023 23:05:43.6836 (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: GV2P250MB0803 Subject: Re: [FFmpeg-devel] [PATCH] lavf/matroska: add support for ARIB captions 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 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: rcombs: > Not yet ready for merge, pending finalization of the standard proposal for this mapping: > https://github.com/ietf-wg-cellar/matroska-specification/pull/724 > --- > libavformat/matroska.c | 1 + > libavformat/matroskadec.c | 30 ++++++++++++++++++++++++++++++ > libavformat/matroskaenc.c | 23 +++++++++++++++++++++++ > 3 files changed, 54 insertions(+) > > diff --git a/libavformat/matroska.c b/libavformat/matroska.c > index 90d94b65bf..79b2d09984 100644 > --- a/libavformat/matroska.c > +++ b/libavformat/matroska.c > @@ -76,6 +76,7 @@ const CodecTags ff_mkv_codec_tags[]={ > {"S_DVBSUB" , AV_CODEC_ID_DVB_SUBTITLE}, > {"S_HDMV/PGS" , AV_CODEC_ID_HDMV_PGS_SUBTITLE}, > {"S_HDMV/TEXTST" , AV_CODEC_ID_HDMV_TEXT_SUBTITLE}, > + {"S_ARIBSUB" , AV_CODEC_ID_ARIB_CAPTION}, > > {"V_AV1" , AV_CODEC_ID_AV1}, > {"V_AVS2" , AV_CODEC_ID_AVS2}, > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c > index d582f566a2..3a888e3ada 100644 > --- a/libavformat/matroskadec.c > +++ b/libavformat/matroskadec.c > @@ -50,6 +50,7 @@ > #include "libavutil/time_internal.h" > #include "libavutil/spherical.h" > > +#include "libavcodec/avcodec.h" > #include "libavcodec/bytestream.h" > #include "libavcodec/flac.h" > #include "libavcodec/mpeg4audio.h" > @@ -2813,6 +2814,35 @@ static int matroska_parse_tracks(AVFormatContext *s) > /* we don't need any value stored in CodecPrivate. > make sure that it's not exported as extradata. */ > track->codec_priv.size = 0; > + } 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) { > + st->codecpar->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) { > + st->codecpar->profile = FF_PROFILE_ARIB_PROFILE_C; > + } > + break; > + default: > + break; > + } > + > + if (st->codecpar->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; > } > track->codec_priv.size -= extradata_offset; > > diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c > index 2deb4284e8..67cfec761a 100644 > --- a/libavformat/matroskaenc.c > +++ b/libavformat/matroskaenc.c > @@ -58,6 +58,7 @@ > #include "libavutil/stereo3d.h" > > #include "libavcodec/av1.h" > +#include "libavcodec/avcodec.h" Why are these FF_PROFILE_* defines in avcodec.h and not either in a header of their own or in defs.h? > #include "libavcodec/codec_desc.h" > #include "libavcodec/xiph.h" > #include "libavcodec/mpeg4audio.h" > @@ -1142,6 +1143,27 @@ static int mkv_assemble_native_codecprivate(AVFormatContext *s, AVIOContext *dyn > else > *size_to_reserve = MAX_PCE_SIZE; > break; > + case AV_CODEC_ID_ARIB_CAPTION: { > + unsigned stream_identifier, data_component_id; > + switch (par->profile) { > + case FF_PROFILE_ARIB_PROFILE_A: > + stream_identifier = 0x30; > + data_component_id = 0x0008; > + break; > + case FF_PROFILE_ARIB_PROFILE_C: > + stream_identifier = 0x87; > + data_component_id = 0x0012; > + break; > + default: > + av_log(s, AV_LOG_ERROR, > + "Unset/unknown ARIB caption profile %d utilized!\n", > + par->profile); > + return AVERROR_INVALIDDATA; > + } > + avio_w8(dyn_cp, stream_identifier); > + avio_wb16(dyn_cp, data_component_id); > + break; > + } > #endif > default: > if (CONFIG_MATROSKA_MUXER && par->codec_id == AV_CODEC_ID_PRORES && > @@ -3274,6 +3296,7 @@ static const AVCodecTag additional_subtitle_tags[] = { > { AV_CODEC_ID_DVB_SUBTITLE, 0xFFFFFFFF }, > { AV_CODEC_ID_DVD_SUBTITLE, 0xFFFFFFFF }, > { AV_CODEC_ID_HDMV_PGS_SUBTITLE, 0xFFFFFFFF }, > + { AV_CODEC_ID_ARIB_CAPTION, 0xFFFFFFFF }, > { AV_CODEC_ID_NONE, 0xFFFFFFFF } > }; > _______________________________________________ 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".