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
diff --git a/libAACdec/src/aacdec_drc.cpp b/libAACdec/src/aacdec_drc.cpp
index 9cfc5d5..eb8e410 100644
--- a/libAACdec/src/aacdec_drc.cpp
+++ b/libAACdec/src/aacdec_drc.cpp
@@ -705,11 +705,7 @@
   }
   self->numPayloads = 0;
 
-  if (self->numThreads >= MAX_DRC_THREADS) {
-      self->numThreads = MAX_DRC_THREADS - 1;
-  }
-
-  if (self->dvbAncDataAvailable)
+  if (self->dvbAncDataAvailable && self->numThreads < MAX_DRC_THREADS)
   { /* Append a DVB heavy compression payload thread if available. */
     int bitsParsed;
 
@@ -735,10 +731,6 @@
 
   /* coupling channels not supported */
 
-  if (self->numThreads >= MAX_DRC_THREADS) {
-      self->numThreads = MAX_DRC_THREADS - 1;
-  }
-
   /* check for valid threads */
   for (thread = 0; thread < self->numThreads; thread++) {
     CDrcPayload *pThreadBs = &threadBs[thread];