aboutsummaryrefslogtreecommitdiffstats
path: root/libAACdec/src/channel.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2017-07-21 14:31:41 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2017-07-21 14:31:41 +0200
commit89639e36b29a622c641c3de3a4737a4c848dc365 (patch)
tree2eadccdf7e7eb39cdc8c0087a7bf933150a412d5 /libAACdec/src/channel.cpp
parentd450e652c5f963a2ef3a9392f55ca07c7e06dc6c (diff)
parentaf5863a78efdfccd003dd6bea68c4a2cd2ad9f37 (diff)
downloadfdk-aac-89639e36b29a622c641c3de3a4737a4c848dc365.tar.gz
fdk-aac-89639e36b29a622c641c3de3a4737a4c848dc365.tar.bz2
fdk-aac-89639e36b29a622c641c3de3a4737a4c848dc365.zip
Merge 'mstorjo/master' into dabplus
This adds support for AArch64 and other improvements listed in the ChangeLog
Diffstat (limited to 'libAACdec/src/channel.cpp')
-rw-r--r--libAACdec/src/channel.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/libAACdec/src/channel.cpp b/libAACdec/src/channel.cpp
index 5475079..4b182e0 100644
--- a/libAACdec/src/channel.cpp
+++ b/libAACdec/src/channel.cpp
@@ -411,11 +411,15 @@ AAC_DECODER_ERROR CChannelElement_Read(HANDLE_FDK_BITSTREAM hBs,
case drmcrc_end_reg:
if (pTpDec != NULL) {
transportDec_CrcEndReg(pTpDec, crcReg1);
+ crcReg1 = -1;
}
break;
case adtscrc_end_reg2:
- if (pTpDec != NULL) {
+ if (crcReg1 != -1) {
+ error = AAC_DEC_DECODE_FRAME_ERROR;
+ } else if (pTpDec != NULL) {
transportDec_CrcEndReg(pTpDec, crcReg2);
+ crcReg2 = -1;
}
break;
case drmcrc_start_reg:
@@ -447,5 +451,16 @@ AAC_DECODER_ERROR CChannelElement_Read(HANDLE_FDK_BITSTREAM hBs,
} while (list->id[i] != end_of_sequence);
bail:
+ if (crcReg1 != -1 || crcReg2 != -1) {
+ if (error == AAC_DEC_OK) {
+ error = AAC_DEC_DECODE_FRAME_ERROR;
+ }
+ if (crcReg1 != -1) {
+ transportDec_CrcEndReg(pTpDec, crcReg1);
+ }
+ if (crcReg2 != -1) {
+ transportDec_CrcEndReg(pTpDec, crcReg2);
+ }
+ }
return error;
}