fdk-aac: add patch to fix uniDRC decoding (#6569)

This commit is contained in:
Robert Kausch
2022-01-25 09:41:03 +01:00
committed by GitHub
parent 1e6e6f72a9
commit c0bee2a02a
2 changed files with 33 additions and 1 deletions

View File

@@ -5,10 +5,11 @@ encoding and decoding scheme for digital audio."
HOMEPAGE="https://sourceforge.net/projects/opencore-amr"
COPYRIGHT="1995-2021 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V."
LICENSE="Fraunhofer FDK AAC Codec"
REVISION="1"
REVISION="2"
SOURCE_URI="https://downloads.sourceforge.net/opencore-amr/fdk-aac/fdk-aac-$portVersion.tar.gz"
CHECKSUM_SHA256="c9e8630cf9d433f3cead74906a1520d2223f89bcd3fa9254861017440b8eb22f"
SOURCE_DIR="fdk-aac-$portVersion"
PATCHES="fdk_aac-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

View File

@@ -0,0 +1,31 @@
From a4aa2e5898d690462d33fe13b15de5ff31b85669 Mon Sep 17 00:00:00 2001
From: Robert Kausch <robert.kausch@freac.org>
Date: Mon, 24 Jan 2022 15:44:13 +0000
Subject: Fix decoding of uniDRC extension data
diff --git a/libDRCdec/src/drcDec_reader.cpp b/libDRCdec/src/drcDec_reader.cpp
index ca35345..b76ae18 100644
--- a/libDRCdec/src/drcDec_reader.cpp
+++ b/libDRCdec/src/drcDec_reader.cpp
@@ -512,10 +512,13 @@ drcDec_readUniDrcGain(HANDLE_FDK_BITSTREAM hBs,
fMin(tmpNNodes, (UCHAR)16) * sizeof(GAIN_NODE));
}
- hUniDrcGain->uniDrcGainExtPresent = FDKreadBits(hBs, 1);
- if (hUniDrcGain->uniDrcGainExtPresent == 1) {
- err = _readUniDrcGainExtension(hBs, &(hUniDrcGain->uniDrcGainExtension));
- if (err) return err;
+ if (pCoef && (gainSequenceCount ==
+ pCoef->gainSequenceCount)) { /* all sequences have been read */
+ hUniDrcGain->uniDrcGainExtPresent = FDKreadBits(hBs, 1);
+ if (hUniDrcGain->uniDrcGainExtPresent == 1) {
+ err = _readUniDrcGainExtension(hBs, &(hUniDrcGain->uniDrcGainExtension));
+ if (err) return err;
+ }
}
if (err == DE_OK && gainSequenceCount > 0) {
--
2.30.2