diff options
author | Fraunhofer IIS FDK <audio-fdk@iis.fraunhofer.de> | 2018-10-19 16:41:01 +0200 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2018-12-27 14:48:15 -0500 |
commit | 0271d6a6f3111be142456bf185e834aa5bc10309 (patch) | |
tree | bb2ced674e4890f61414d47f441b682c984b8121 /libSBRdec/src/sbrdecoder.cpp | |
parent | 804f41ac64168ea32bdf822aba930b1cfa4e1646 (diff) | |
download | fdk-aac-0271d6a6f3111be142456bf185e834aa5bc10309.tar.gz fdk-aac-0271d6a6f3111be142456bf185e834aa5bc10309.tar.bz2 fdk-aac-0271d6a6f3111be142456bf185e834aa5bc10309.zip |
Call QMF transposer initialization only with successful SBR processing
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I8a8626a83e1bd87b2c14fad7c90174e4172c01b6
Diffstat (limited to 'libSBRdec/src/sbrdecoder.cpp')
-rw-r--r-- | libSBRdec/src/sbrdecoder.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libSBRdec/src/sbrdecoder.cpp b/libSBRdec/src/sbrdecoder.cpp index e2455da..f40639b 100644 --- a/libSBRdec/src/sbrdecoder.cpp +++ b/libSBRdec/src/sbrdecoder.cpp @@ -1677,6 +1677,9 @@ static SBR_ERROR sbrDecoder_DecodeElement( /* reset */ if (hSbrHeader->status & SBRDEC_HDR_STAT_RESET) { int ch; + int applySbrProc = (hSbrHeader->syncState == SBR_ACTIVE || + (hSbrHeader->frameErrorFlag == 0 && + hSbrHeader->syncState == SBR_HEADER)); for (ch = 0; ch < numElementChannels; ch++) { SBR_ERROR errorStatusTmp = SBRDEC_OK; @@ -1688,7 +1691,9 @@ static SBR_ERROR sbrDecoder_DecodeElement( hSbrHeader->syncState = UPSAMPLING; } } - hSbrHeader->status &= ~SBRDEC_HDR_STAT_RESET; + if (applySbrProc) { + hSbrHeader->status &= ~SBRDEC_HDR_STAT_RESET; + } } /* decoding */ |