From patchwork Fri Oct 28 12:21:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 39027 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:85a8:b0:a2:d5a7:ad9d with SMTP id s40csp754401pzd; Fri, 28 Oct 2022 05:22:52 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5tiXAdhpj2aBbONcm9Dg+m3OQ9gtXEN+tSy69vASveFzeT/n2xWqY48AwLQAubWum12vkY X-Received: by 2002:a05:6402:3484:b0:45d:2f59:fae1 with SMTP id v4-20020a056402348400b0045d2f59fae1mr50252708edc.237.1666959772385; Fri, 28 Oct 2022 05:22:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666959772; cv=none; d=google.com; s=arc-20160816; b=qakEXnPXYUmMUE4WSpZRWfnA9nbtrvk268TtjAV2Y0E7HTA6ZunKZDQv4fdqOtYh/w msIWrvv5dWyXGv71t5Wmq5ieV8DXvk/RCJ4XeA0VmzOO7FHFcyX/Id9Y4Zxr09zbnU5s 2s/jQp/4WtbVdzFS8WU+T8bvczl1saNJZ1+ZgBxiywSdR/DBBuMvNrsLWlvZAQpoJbtU tBylhJjljz/havODI9qp5YBMyu28fDd9DRdIuG/kflcrcBORmsrGd358FuVn4jnX2tZ6 Q36B/VE2mlXnXrUQKWclEb3j20slSD5o1wQgZfdf1hl+c3Fno9A1kwurOZs4C+cwowmp kzfA== 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=x+AO8XJC8TAez29TyvW3nvfhQ9l3eKAF0a0soIMdimY=; b=Fae6i8eDPXOLGl3yItpzLki2ODv8cU25gJcougFmpg5Ov8hWdT9yLTyRtQvGr/EzOE Oq59qYbUwfHg1+D2QjnbVS8p0idwigMUE9IfBgJeau1VvCeEOkijYz9GqepGl9KV1U6A fnrvJorwecnG5ot3hi9TfLIdexDdrYsLZxY07LjmXtrMeyNM/+ewo2YIRTYyUQ/LOWnK DTrFz5V3Osm8OkXw4t9ZPJ4kAycU89m+Wwdp9WuxFcMo6GYqdN6yaE96yJMmoStoZ0u0 oaLXj/d8FziJcChpqfT/vcROUI0xx3RVZq50mvQw2L6Ek/lMtr7B1x1Dwg/X8z+Nwofv +fAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=NuZNcGts; 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 g22-20020a1709065d1600b00773b8e3b6a1si4828311ejt.805.2022.10.28.05.22.51; Fri, 28 Oct 2022 05:22:52 -0700 (PDT) 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=NuZNcGts; 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 1015E68BB0D; Fri, 28 Oct 2022 15:22:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1C5E368B7B9 for ; Fri, 28 Oct 2022 15:22:41 +0300 (EEST) Received: by mail-oi1-f170.google.com with SMTP id y67so5968421oiy.1 for ; Fri, 28 Oct 2022 05:22:41 -0700 (PDT) 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=az4qDW46Hr+SOMsCTVt9TKc6EBleJYuyAzQtMInF29U=; b=NuZNcGtsVuq5tNICQ7T/B90k7NcUuEKX/7Hxjn9JuV/LcWubgsXJhlVCJyotNrHzN7 prpFlxJmoy6BJPpQAycjRfg61x4XZBUQ6mEkytaBDT6fhAyCaerQkWw4VitCsiOH8f5L +xQJ9rI3BxQHNo3E7fDgQ2cbtGKFu/g70owbje7d823fYP5WTKLBfN3g8GJW6bgSTAAF toYlIyKIMaDfNvbfAh5lto7M5TVF2GbMpf5w6IZ4HIhiVYZy5SdNbH+LpdVzOumEcemW 5f1mA0+oWGiZwyou+/yTkTWfWYn36pyLUdGzlMOX7ueFvaD6Z6vZzYXI8T1U4QVVVpsP cnbA== 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=az4qDW46Hr+SOMsCTVt9TKc6EBleJYuyAzQtMInF29U=; b=qfI66aKys9Rwh9uEPx/GKgwQUEX3iTn4n+8tu/JHJxrzwcWv0b4LsNTJf4Po+ckOIB za0HXxB38VlIz3fjn8useeiyYU3dYn6le9QXfFHbdzKJCwyDhriUKif91NWgW+VyUVAY +VdKxDx5j1HINodphe1TswMMMEEFfoyOYsmcIDdq8abBMDN5IXXJpvDPPyqMeHAN/RKi Kor3+qAUsaHi73g9h+ufTI4K8kZYqBKXBY2x3/Zt0quORENX7Dkw0dXlHBA8sdg2ZOpS zhPeO8GphBcfCeKPjMR3cbLtkwf2lNeLUZp4BK1e4l+JBYst5SsHDSIytY/LtnR+Lzs1 w9bg== X-Gm-Message-State: ACrzQf3i5qr60FEXunn7N4DHqGBAeFjm1Twrdu8/mnSeQrSazm8QS93r 8HNYIZGpyFjvjnmQcTHVxhYZC0UoAio= X-Received: by 2002:a05:6808:148f:b0:354:b8c5:495d with SMTP id e15-20020a056808148f00b00354b8c5495dmr8112152oiw.108.1666959759155; Fri, 28 Oct 2022 05:22:39 -0700 (PDT) Received: from localhost.localdomain ([191.97.187.183]) by smtp.gmail.com with ESMTPSA id v206-20020acaacd7000000b0035028730c90sm1458869oie.1.2022.10.28.05.22.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Oct 2022 05:22:38 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 28 Oct 2022 09:21:37 -0300 Message-Id: <20221028122140.1885-1-jamrial@gmail.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4 v2] avcodec/aacdec: fix parsing streams with channel configuration 11 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: 5OnGfApNLFVV Set the correct amount of tags in tags_per_config[] and ensure the side channels (Surround in the spec) are used. Signed-off-by: James Almer --- libavcodec/aacdec_template.c | 4 +--- libavcodec/aacdectab.h | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 4a9513d53e..c10bc743b6 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -731,9 +731,7 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id) return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][2]; } case 11: - if (ac->tags_mapped == 2 && - ac->oc[1].m4ac.chan_config == 11 && - type == TYPE_SCE) { + if (ac->tags_mapped == 3 && type == TYPE_SCE) { ac->tags_mapped++; return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][1]; } diff --git a/libavcodec/aacdectab.h b/libavcodec/aacdectab.h index e38b93a534..b820f10556 100644 --- a/libavcodec/aacdectab.h +++ b/libavcodec/aacdectab.h @@ -35,7 +35,7 @@ #include -static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 4, 5, 16, 5, 0 }; +static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 5, 5, 16, 5, 0 }; static const uint8_t aac_channel_layout_map[16][16][3] = { { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, }, @@ -48,7 +48,7 @@ static const uint8_t aac_channel_layout_map[16][16][3] = { { { 0, } }, { { 0, } }, { { 0, } }, - { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_BACK }, { TYPE_SCE, 1, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, }, + { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_SIDE }, { TYPE_SCE, 1, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, }, { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, { TYPE_CPE, 1, AAC_CHANNEL_SIDE }, { TYPE_CPE, 2, AAC_CHANNEL_BACK }, { TYPE_LFE, 0, AAC_CHANNEL_LFE }, }, { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, // SCE1 = FC,