From patchwork Tue Feb 7 20:59:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 40319 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp4674532pzk; Tue, 7 Feb 2023 12:59:52 -0800 (PST) X-Google-Smtp-Source: AK7set9GhYKHedglHYhrLE9r7gYPDvGC/acGcxOSI4Ssn0ZN70ObxsR3mYe2AlvMLXjd4dBX18KK X-Received: by 2002:a17:906:f209:b0:878:6477:d7 with SMTP id gt9-20020a170906f20900b00878647700d7mr4859933ejb.72.1675803592282; Tue, 07 Feb 2023 12:59:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675803592; cv=none; d=google.com; s=arc-20160816; b=lkjr3mYNBs0ZuvZwNMVrRVh29C4q1NtfexwmAxqnPzHPyWFezq0nM1Gy+pPK+23foS CABHF/8Zqwz+fJVuBVEKA7mD6MnI1CttIobSIrm5cmAdigbFPjSqc4aZ7UWfZHdBgzBT 4bnlE2/yIy7a1tsbboNM1IYOMNLz6SzcmXuxZ8TBqjbwhtkKuGmOxJbQkpZHkhdh9qp6 TOI2hJodb6zjUEyfqHtO+BJu8WbhA1HllNyMxvEjTA4MOg6JDsn489hMCiaOg/Ne6xCK 4a43ar5XaGWrs4Wq/PRPrsYjiEjHrGus2tPu4EHgXY3xnRaPdbKjNSqSJZscnhlAm991 bYGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=WAehnqS/TGqe8vLqeHIGftVpb2NnCSeDszY8VnVznlE=; b=pkCSdWocxOh2wzpm9+iYgrbh5oNtkxLnjTJUuFys1pw29cJ5JQVwKow50Z/tV8kvrr Qjmm3dDSVUAB2fbDukoFSncbz8dR3wW4fOL57mj5cxYLIc9ESDomAqa00awSD+Kws81S FnZP+HXcBI/uD/re8puumsevOkokPsJ6WfpEwzUjSfm9mM5EqckBq5EZX4km6zeh511Z LoVHxFyCKqhnUeSfpP3ZqKPgIrI1NPMMEGbnMjUv8gLSFd18syX8oGOSYED43LG6MPtq 4l6Gzzesr7A2qDYyFwZzC0Cz0o5jy6lZJf6MaPzdAcQjrR2GKQZhQi7eqCaFOD/91MBi TsKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=GL4YWViL; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q19-20020a056402519300b004a25dc68341si22194815edd.214.2023.02.07.12.59.51; Tue, 07 Feb 2023 12:59:52 -0800 (PST) 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=@gmail.com header.s=20210112 header.b=GL4YWViL; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8FE0868BD35; Tue, 7 Feb 2023 22:59:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C362168B757 for ; Tue, 7 Feb 2023 22:59:41 +0200 (EET) Received: by mail-ej1-f41.google.com with SMTP id m2so45983409ejb.8 for ; Tue, 07 Feb 2023 12:59:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=XAQm0wZFkiyaOuMG0jRG28JodL+OU+yyHkmByxxiDd0=; b=GL4YWViLkFXamdcuMXplo3Nxl1FHK22qGhEGQbT5TKFyGQa+lcQ8P6p2TQTdsck4SA nZMpBAlj5JMpoh14M4Odane5lAgqIh4+ApRpJZk2BYjm3kCy8ugXXbrz0zy0T6H10MQD LBwhg11U6o+lPdtS5DuFnPfDRL0B/f5A4d6RxAY3G+QUO+Kzpo46ePFj/Hn58Rs3LYW3 kd7z0bVovDwOqr++ZfY/oNRn33ZIcn6vmJM8qYL/JGSYAyHngYZIWVTHy8aiuL7MfzOJ B95F7jC/f7A+TtnvW/u/cuphQzebJ6j8kGvQr77rDkR+f6C3wczKENK+GZhwpeE7SOf/ 0lTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XAQm0wZFkiyaOuMG0jRG28JodL+OU+yyHkmByxxiDd0=; b=olsa+zzuDJq4H39De5TDadQQ9dzhRLgcQjvbpTjWSw+mbFtP5kW6WKmZyQHe7YEdm1 n2VKBAUVik6iaubixUELB3IucEC8YaJbKwLZ62ZRSSqACVLQlHCzzw3hDqPXDTed7wdL +FTzg8SILjzqOLfB8FZj9on8tpt0ygGMLLpCXdjCjphG4kNLLoAZRnitNAS3yXj17LS0 i7nkVdLX0zyyc9R60Lb7ZhvRE0HRa18c5GeKT+fwhqPNyQY2oaGbpspA1+B2Vu1VhOVG jiqgxA6V3yiVuaWF/81Z5+Vyoz+wP9JkrPy6FzHEthB8e7JJ6oQO4KUHil6ihAnc/hO6 6Maw== X-Gm-Message-State: AO0yUKXwz9PflL7FG+Xnow2ocXi+5BQ5UwHKjchcsPi7s7XmGA21u1oM yx7PlAhy+Z/y57/LXtRMpLL9PPxCakc= X-Received: by 2002:a17:906:a0d7:b0:812:d53e:1222 with SMTP id bh23-20020a170906a0d700b00812d53e1222mr5047776ejb.31.1675803581164; Tue, 07 Feb 2023 12:59:41 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id ew10-20020a056402538a00b0048ecd372fc9sm6945588edb.2.2023.02.07.12.59.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Feb 2023 12:59:40 -0800 (PST) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 Feb 2023 22:59:34 +0200 Message-Id: <20230207205934.7584-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/movenc: allow writing out channel count in MP4 and 3GP 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: E8zRIygbCbdb ISOBMFF (14496-12) made this field ('channelcount') in the AudioSampleEntry structure non-template¹ somewhere before the release of the 2022 edition. As for ETSI TS 126 244 AKA 3GPP file format (V16.1.0, 2020-10), it does not seem contain any references limiting the channelcount entry in AudioSampleEntry or in its own definition of EVSSampleEntry. fate-mov-mp4-chapters test had to be adjusted as it output a mono vorbis stream, which would now be properly marked as such in the container. 1: As per 14496-12: Fields shown as “template” in the box descriptions are fields which are coded with a default value unless a derived specification defines their use and permits writers to use other values than the default. --- libavformat/movenc.c | 8 +------- tests/ref/fate/mov-mp4-chapters | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 8d31317838..f0e218e7b7 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1241,13 +1241,7 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex avio_wb16(pb, 16); avio_wb16(pb, track->audio_vbr ? -2 : 0); /* compression ID */ } else { /* reserved for mp4/3gp */ - if (track->par->codec_id == AV_CODEC_ID_FLAC || - track->par->codec_id == AV_CODEC_ID_ALAC || - track->par->codec_id == AV_CODEC_ID_OPUS) { - avio_wb16(pb, track->par->ch_layout.nb_channels); - } else { - avio_wb16(pb, 2); - } + avio_wb16(pb, track->par->ch_layout.nb_channels); if (track->par->codec_id == AV_CODEC_ID_FLAC || track->par->codec_id == AV_CODEC_ID_ALAC) { avio_wb16(pb, track->par->bits_per_raw_sample); diff --git a/tests/ref/fate/mov-mp4-chapters b/tests/ref/fate/mov-mp4-chapters index 34f84de1b1..75cd3b3438 100644 --- a/tests/ref/fate/mov-mp4-chapters +++ b/tests/ref/fate/mov-mp4-chapters @@ -1,4 +1,4 @@ -1fd844c2f5bf77c3344e88e30ad994e1 *tests/data/fate/mov-mp4-chapters.mp4 +7b6aaa99c86fa1f5abfc9f242abcfffa *tests/data/fate/mov-mp4-chapters.mp4 111248 tests/data/fate/mov-mp4-chapters.mp4 #extradata 0: 3469, 0xc6769ddc #tb 0: 1/44100