From patchwork Sat Aug 1 11:07:23 2020 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: 21416 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 3CF0244930D for ; Sat, 1 Aug 2020 14:14:23 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 24C0068B923; Sat, 1 Aug 2020 14:14:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f65.google.com (mail-ej1-f65.google.com [209.85.218.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2479968B923 for ; Sat, 1 Aug 2020 14:14:17 +0300 (EEST) Received: by mail-ej1-f65.google.com with SMTP id g19so20106132ejc.9 for ; Sat, 01 Aug 2020 04:14:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VS/7eps5ZH2Cpb8+A7nw1oOINMMyK81Lo6+w3pBt/EA=; b=Wtx9jdTuRi8hHOIF4XeojKu+ne/dPIOtOuRc5HaN5/FyWrokMjMZrVwAjLp+auGM3H ILVt1mzXMTlwoNhikD7LbZg6Kii64KNCFXiW29NBW2m6JaIUAE3VJbYQyJvPOTDaoE2b t4B+2+U8zhpZmiNR8p8Cux0lY0BrALzuaeWSwouj5isOorHZazqbxdBlxQ/CVtVUjwiL wGIjpZT8ejIU3Ev/y4avEEqSlNTLfbWBwLd0vPO+7gqq4ShGoafY9wMTcSHhqDkYtAiq kxiv/yGZqb9pQIQm0H05bXcQ3fklNgHTLX1L6j2BunvQayTNykNQFQ4sl1TE4n9N85S6 KBzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VS/7eps5ZH2Cpb8+A7nw1oOINMMyK81Lo6+w3pBt/EA=; b=QHXmVxGVLrysP78iBVnHhuJmC/F7cCjMgs7OneLti0e7fJ+t/iQ3tkdxKNiiZCuyRs wJp79+6OHSM8iit23pb4xH2M1W6XbO5U25venTmOmmSwT6ixilVeKDbWlK4sQtC2iFZ2 vEfZlYSNDOXpeUj/VS+yczIztys/H3xiwbILoZb+1+YmPrIispHmTxVwOrywjx5SQaRb 7upGxG+8bd/ZpTAvQW56XReKDVs0JXtng/KvS4iy9HqNd6Cj0RZ6EwfNf0xo1XuDgoiw xBGLoiGkvBtvpPH9xDaz8ZzAM1SqW0EpsLxD9TuaEY9716eoTXx0Ho9eMxLY+sLHixEd v5YQ== X-Gm-Message-State: AOAM5309g8aF0OFxgGh/8gelXZV04cCS/oxeaBEAWjUdAqg2seYoes+S ZimnMvrC1hQx1BMsM3zrnXNisSZZ X-Google-Smtp-Source: ABdhPJzC1vaBZFX9cId1vgFE481/PSQzWUOa5H40snOuEo90cglNwqUFhNmkf4Nu9dPK48uiuV3aWw== X-Received: by 2002:a05:6512:6d6:: with SMTP id u22mr4109843lff.13.1596280052520; Sat, 01 Aug 2020 04:07:32 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id f24sm2694045ljc.99.2020.08.01.04.07.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Aug 2020 04:07:31 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Sat, 1 Aug 2020 14:07:23 +0300 Message-Id: <20200801110730.30642-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200729113952.14574-1-jeebjp@gmail.com> References: <20200729113952.14574-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/7 v3] 22.2 channel layout support for AAC decoding X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" The decoding parts of this patch set have not changed from v2. I have now added changes so that 22.2 gets properly handled as 5.1 (for which it has backwards compatibility) until it gets a proper remix matrix defined in swresample. So -channel_layout "5.1"` now has been verified to just re-utilize the six first channels as-is, and stereo output gets downmixed from these known six channels. Now that we actually have sample(s) for channel_config 13, it was possible to see at which various points the AAC decoder fails attempting to parse the bit stream. As the feature `-request_channel_layout 9223372036854775808` (AV_CH_LAYOUT_NATIVE) seems to work, the channel order has been validated both visually with Audacity, as well as by logging the post-reorder element ordering: (what specific CPE/SCE/LFE elements mean is documented in the `avcodec/aacdectab: add mapping for 22.2` commit): Setting layout map list after reorder... tag 0 = { pos: (null) (3), syn_elem: CPE, elem_id: 1 } tag 1 = { pos: FC (4), syn_elem: SCE, elem_id: 0 } tag 2 = { pos: LFE (8), syn_elem: LFE, elem_id: 0 } tag 3 = { pos: (null) (30), syn_elem: CPE, elem_id: 3 } tag 4 = { pos: (null) (c0), syn_elem: CPE, elem_id: 0 } tag 5 = { pos: BC (100), syn_elem: SCE, elem_id: 1 } tag 6 = { pos: LFE2 (800000000), syn_elem: LFE, elem_id: 1 } tag 7 = { pos: (null) (600), syn_elem: CPE, elem_id: 2 } tag 8 = { pos: (null) (5000), syn_elem: CPE, elem_id: 4 } tag 9 = { pos: TFC (2000), syn_elem: SCE, elem_id: 2 } tag 10 = { pos: TC (800), syn_elem: SCE, elem_id: 3 } tag 11 = { pos: (null) (28000), syn_elem: CPE, elem_id: 6 } tag 12 = { pos: (null) (3000000000), syn_elem: CPE, elem_id: 5 } tag 13 = { pos: TBC (10000), syn_elem: SCE, elem_id: 4 } tag 14 = { pos: BFC (8000000000), syn_elem: SCE, elem_id: 5 } tag 15 = { pos: (null) (14000000000), syn_elem: CPE, elem_id: 7 } Jan Ekström (7): avutil/channel_layout: add 22.2 layout swresample/matrix: switch internal clean_layout function to not drop high bits swresample/rematrix: treat 22.2 as 5.1 (back) when mixing avcodec/mpeg4audio: add newer channel_coding mappings avcodec/aacdectab: add mapping for 22.2 avcodec/aacdec_template: mark second LFE element as LFE2 avcodec/aacdec_template: add support for 22.2 / channel_config 13 doc/APIchanges | 5 ++ libavcodec/aacdec_template.c | 98 ++++++++++++++++++++++++++++++++---- libavcodec/aacdectab.h | 23 ++++++++- libavcodec/mpeg4audio.c | 17 ++++++- libavcodec/mpeg4audio.h | 2 +- libavutil/channel_layout.c | 6 +++ libavutil/channel_layout.h | 6 +++ libavutil/version.h | 2 +- libswresample/rematrix.c | 12 ++++- 9 files changed, 153 insertions(+), 18 deletions(-)