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 71B3C4033E for ; Fri, 21 Jan 2022 19:52:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AA67668B1DF; Fri, 21 Jan 2022 21:52:10 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074058.outbound.protection.outlook.com [40.92.74.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8D81268B17F for ; Fri, 21 Jan 2022 21:52:04 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NqJ2jqK6Q+VwvOn9QIycsJyaQ2DNSAtDdAm62+RG0YAcUqh/jBRjev8vNgJPPa4cqXRRu3VWh2LhGWerYmxl82y++3px5dCCa4ZpLFaUea8fz0rGCXf7osL/fhqmKiTTqltTgcdYJ1lzJygZ0Mf8XDwJr+TaPdKEu+P4+akKHZRieeCvQtCJl3eQBz3rYbox9uDoYiLaN8aproGjToa01iZdiXr/h8FhQZRP/V7o9Jd76+vZ+pP5w11g3lr86GIDIcAfhfGjrlH0gY9cg2tVQ2PDDmcN/zGd43gPu9ilocrYu+PEUT+yiQHobf3J82ctV8ioqzmv0vclOYkd9F3A+w== 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=Y9Puh2Lj1PlvIa495IO1hKbOtIPWKp0KqC7oJZkFyhE=; b=ZLYDlm5AhCHFZiVYpE3MZc3IeDeSOnRNQgtoKvGaYRbuIjnV86aGSigTxm9qJlBdE1cYwwCmo5UThbCfIug7DE3y6j4mWaeyviaMSTeQYVJm1yHHMTUjHXryvOc0lBfyouswYM4eGVxoEgPJO3yXMVCmgOvuBGPHme0nFT6qvzCH0O6czbMnNTleAH3nsoy2oBtrN2NPpbjBXexHRPUla96N3kYwozEBkaq6vM1DQz1GqvUF/fFdKZsQzcRNuXJnh3drbQKpEmw/23g2SuUVFr4l/e8HeWppOsmw8zAmL5k5zaetqfCGuoP6pio40QMTNq8BHsvxbzErOrewvzOnyg== 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=Y9Puh2Lj1PlvIa495IO1hKbOtIPWKp0KqC7oJZkFyhE=; b=s0EpSdoHYrq8qPvVAm7k7GYvzeg7ES0G6uAUyQZaVSZ/n6xegozdW7IoBg+wzyKGxqSMp3nTjk1wy8h8OuzSeMm3cu6LYR49/mXutkZJ47B/9t37Ajo/I79oLllMwzL9PsXydmTisXAC+fl3OrFgLCn81toAJkvbaZezEuLTEdtdgLORgYYu2Bugdubf+DGpWz4rh1hgeEXVouQ5aDsXKBiPWLO5BC5FVnw8a9T5tFNuxjg6ZxQ2TePK6OsEOP+d5+7+4DwJ8QSWFmnMNdA1Ypwb9664MtyCVAVuU0HeZ1efte/fRpSkE7bbZ27CVkXj3e5JJ0X5rSJVo3f9UMqWgw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM4PR0302MB2803.eurprd03.prod.outlook.com (2603:10a6:200:91::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Fri, 21 Jan 2022 19:52:02 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 19:52:02 +0000 Message-ID: Date: Fri, 21 Jan 2022 20:52:00 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220113015101.4-1-jamrial@gmail.com> <20220113015612.448-3-jamrial@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20220113015612.448-3-jamrial@gmail.com> X-TMN: [7UPMTaBKwgSIYWpcVPyGNXZT1Gecl09Y] X-ClientProxiedBy: AM6PR02CA0036.eurprd02.prod.outlook.com (2603:10a6:20b:6e::49) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <8b0031e6-5868-1ab1-c936-e8664b3205fb@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 34282c48-61d1-41a2-db14-08d9dd177e0f X-MS-TrafficTypeDiagnostic: AM4PR0302MB2803:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ul6f9zMSHjyfYQ40m92x9Clml6vFGwlX+ahWout2tFDeiF0iA1RvkZPzHVxWffg7SqE6zMJYNdS5oxk0hiCkLADU6nAW5kUE0ZX1lbTdrKnMMA42L/IJ7JhSjLUFcmT1zXJ6iV1VaQQ+VME3L0ubZ0VlA6W2calie5Zt+5WC9CYR+73QUzsTW+bCL0XcmMNPlaksNXnpvwx3XxQ1QUxLcwOPbTJm8EkFzgUlb2196iVfLBFC9h9MvYS+hN/lGvjDLHOM3Lg28iU1KiQu8UCyvgzmAG2MdkgHAoQ7xEFhDcTpfIo7DDWlugIIY1BpLzyIh4469pUb+izdphcg3KSAQu6os+zWU6+LtFkWAwRcsGiya0md5cgFA7oV/TvDPnIyig2Uguiifge5VWxP3YzAnuwLcXpH4nPi8v+tZ/9OLDCVwfV6+oWyuQ8j+L72QQMfOF2Orn1+i1S6a4qtuZzTbwTJspnBK9YxYEW+uySeZ74OJxKzoBzJBCF+Th9skw8Q7BkAIdgIJrXm1m3v/A/ArYUrsDP0huN62V/x9WoNdiBnS2FNfQyKc00UwF0x5mhoRV4cNQEltk30zF7GxWhaCQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZlM4aTZwcWtmVkluc0I4STNVdzc4VGZVeTNQS3hMMHk4TFE1cUQ2MG90ZTly?= =?utf-8?B?Y01XY2VKUXArL2hRVGF2MU9wZFVCL3ZVaDlOZTZwdlNOemY5UnJWaUh5eDYz?= =?utf-8?B?aDUydVFkWmo4NzFLN1EwaXpmQlhjcFRwQVNGa0xmSmcxbThIMXVXQnMwU2hB?= =?utf-8?B?QkZ5ZERFYjVoR2VaZzBxTVRFODJETHgvaFY2U1dXekpjRW9CUld6VlZ5OUtS?= =?utf-8?B?Qy9vUnFBYjVvSThiR3J2WlhyZmNTQW1sLzJzcExvUkI4cU5uN2NlRGlaY1l3?= =?utf-8?B?dDNDNVJMbjd6cU9kcmM5bW5NL29PWjFTdDhyKy90bnlFTFBmRE0zdWR6ajNV?= =?utf-8?B?T2Z0SUJVMm4rSGdrM0oxaC80TjlmSFhrR2JCRHEwTWhPdFdtc3NYSmhteWht?= =?utf-8?B?UFZlQ3J6U2V5UFpQWkc1WGwxeTR1ZVVzLy9zbHQ3YXNKTjArNUVybFNUWnYy?= =?utf-8?B?b3VwTFRncitvdWM4aUp0OXRxQVF3M1pCMkhSWlpLVmVBRjhwaXl3SXE2WVZI?= =?utf-8?B?QW54a0JBSEh5L2xPMmNDb2ZLUG4yNWM0Z2RsVFFoZ0Q1TXQzUmRpV20rVUhj?= =?utf-8?B?RTFQS0QwUEFoOVltQlhRVGt4elBwYWRjc2J6bUR6ZlIyeFNxMlJUK242Uit2?= =?utf-8?B?cnlyYnhxMkxDSmZhTjdwdi83cjJoRzJEVmZteForNEFaWVJ3WUFmWllkajBM?= =?utf-8?B?U2hXZnljbHUzVGNONnFDT0NHWTA1eEljM3R5TUM5UGNDTys0OWdDdGliNWUw?= =?utf-8?B?V0RsZW9UWm1kMVFpd2tIcSs1YXpVekxJRUpLRDI0TnAxODhwUlZUeE9FRGNX?= =?utf-8?B?NS90YVlPUU5neE8zdlE3ZU5DaTZnRlpTVVlPbnpwTUJEakJQODBaTVorOU4r?= =?utf-8?B?T0s0MFhud1RzTGN3V0htMnlodFN6cXU3N0ZaVHRZKzI1T2hWMG5lM2wzUWxw?= =?utf-8?B?RklOOTRPVmRFVjV6WTJkdmJvQVdWbXYxbjBTYXpTTGhuMThKM3M3VTZQcUpj?= =?utf-8?B?MnUxd1JDbmpydityYkdxbjhVdkU2RDI4UU00anFlTmkzQUJIWDcvQTBSOTlF?= =?utf-8?B?QUhZRXJDcUppdnduY2V2S1hVY3pOZUxiMnBoM2dnMVF4MklUeFgrRGJZZFZs?= =?utf-8?B?NjBtazl6R0x2RU5RUTM4Ni9Nd2JHblkyb3EwWlFNWm5obFFJT2hocU5tS2dR?= =?utf-8?B?QkJELzkwdEY3cHZVaktWRnB5Y3ZtZDBINnJiMjFwQ2xDVGQyQjZqTEhnVmd5?= =?utf-8?B?Z04zUm1BY3BQYm5KZlhoVDlReGVPeU14U2NBbDllRGxkSmIzQT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34282c48-61d1-41a2-db14-08d9dd177e0f X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2022 19:52:02.0933 (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: AM4PR0302MB2803 Subject: Re: [FFmpeg-devel] [PATCH 091/281] matroska: convert to new channel layout API 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: James Almer: > From: Vittorio Giovara > > Signed-off-by: Vittorio Giovara > Signed-off-by: Anton Khirnov > Signed-off-by: James Almer > --- > libavformat/matroskadec.c | 8 ++++++-- > libavformat/matroskaenc.c | 10 +++++----- > 2 files changed, 11 insertions(+), 7 deletions(-) > > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c > index 78e5a4a203..62a36cbb8c 100644 > --- a/libavformat/matroskadec.c > +++ b/libavformat/matroskadec.c > @@ -2083,7 +2083,7 @@ static int matroska_parse_flac(AVFormatContext *s, > av_log(s, AV_LOG_WARNING, > "Invalid value of WAVEFORMATEXTENSIBLE_CHANNEL_MASK\n"); > } else > - st->codecpar->channel_layout = mask; > + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); > } > av_dict_free(&dict); > } > @@ -2911,7 +2911,11 @@ static int matroska_parse_tracks(AVFormatContext *s) > st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; > st->codecpar->codec_tag = fourcc; > st->codecpar->sample_rate = track->audio.out_samplerate; > - st->codecpar->channels = track->audio.channels; > + // channel layout may be already set by codec private checks above > + if (st->codecpar->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && > + !st->codecpar->ch_layout.u.mask) > + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; > + st->codecpar->ch_layout.nb_channels = track->audio.channels; > if (!st->codecpar->bits_per_coded_sample) > st->codecpar->bits_per_coded_sample = track->audio.bitdepth; > if (st->codecpar->codec_id == AV_CODEC_ID_MP3 || > diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c > index 152312102a..5278166e8c 100644 > --- a/libavformat/matroskaenc.c > +++ b/libavformat/matroskaenc.c > @@ -657,9 +657,9 @@ static int put_wv_codecpriv(AVIOContext *pb, const AVCodecParameters *par) > static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb, > const AVCodecParameters *par) > { > - int write_comment = (par->channel_layout && > - !(par->channel_layout & ~0x3ffffULL) && > - !ff_flac_is_native_layout(par->channel_layout)); > + int write_comment = (par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && par->ch_layout.u.mask && > + !av_channel_layout_subset(&par->ch_layout, ~0x3ffffULL) && Why are you using this function although you already know that it is a native layout, so that the typical & works fine? > + !ff_flac_is_native_layout(par->ch_layout.u.mask)); > int ret = ff_flac_write_header(pb, par->extradata, par->extradata_size, > !write_comment); > > @@ -673,7 +673,7 @@ static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb, > uint8_t buf[32]; > int64_t len; > > - snprintf(buf, sizeof(buf), "0x%"PRIx64, par->channel_layout); > + snprintf(buf, sizeof(buf), "0x%"PRIx64, par->ch_layout.u.mask); > av_dict_set(&dict, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0); > > len = ff_vorbiscomment_length(dict, vendor, NULL, 0); > @@ -1396,7 +1396,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, > put_ebml_string(pb, MATROSKA_ID_CODECID, "A_MS/ACM"); > > subinfo = start_ebml_master(pb, MATROSKA_ID_TRACKAUDIO, 6 + 4 * 9); > - put_ebml_uint (pb, MATROSKA_ID_AUDIOCHANNELS , par->channels); > + put_ebml_uint(pb, MATROSKA_ID_AUDIOCHANNELS, par->ch_layout.nb_channels); > > track->sample_rate_offset = avio_tell(pb); > put_ebml_float (pb, MATROSKA_ID_AUDIOSAMPLINGFREQ, sample_rate); > _______________________________________________ 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".