mirror of
https://github.com/mstorsjo/fdk-aac.git
synced 2025-02-26 07:27:44 +01:00
Fix aacDecoder_drcExtractAndMap()
Parse DVB DRC data only when numThreads is below MAX_DRC_THREADS. The post-increment is necessary as it is used in fill element DRC data section. This solution parses as many DRC payloads as allowed by MAX_DRC_THREADS and skips all remaining DRC elements in the stream. Bug 27792766 Bug 26751339 Change-Id: Ie1641888bac1757c4d1491119f977fc5d436eaea
This commit is contained in:
parent
e1c78ed73f
commit
4834f01bdf
@ -705,11 +705,7 @@ static int aacDecoder_drcExtractAndMap (
|
|||||||
}
|
}
|
||||||
self->numPayloads = 0;
|
self->numPayloads = 0;
|
||||||
|
|
||||||
if (self->numThreads >= MAX_DRC_THREADS) {
|
if (self->dvbAncDataAvailable && self->numThreads < MAX_DRC_THREADS)
|
||||||
self->numThreads = MAX_DRC_THREADS - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self->dvbAncDataAvailable)
|
|
||||||
{ /* Append a DVB heavy compression payload thread if available. */
|
{ /* Append a DVB heavy compression payload thread if available. */
|
||||||
int bitsParsed;
|
int bitsParsed;
|
||||||
|
|
||||||
@ -735,10 +731,6 @@ static int aacDecoder_drcExtractAndMap (
|
|||||||
|
|
||||||
/* coupling channels not supported */
|
/* coupling channels not supported */
|
||||||
|
|
||||||
if (self->numThreads >= MAX_DRC_THREADS) {
|
|
||||||
self->numThreads = MAX_DRC_THREADS - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* check for valid threads */
|
/* check for valid threads */
|
||||||
for (thread = 0; thread < self->numThreads; thread++) {
|
for (thread = 0; thread < self->numThreads; thread++) {
|
||||||
CDrcPayload *pThreadBs = &threadBs[thread];
|
CDrcPayload *pThreadBs = &threadBs[thread];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user