mirror of https://github.com/mstorsjo/fdk-aac.git
Fix call to function sbrDecoder_Header() through pointer to incorrect function type.
While testing FDK in Android P DP3 x86 64bit emulator we observed a runtime error. The function parameter of the callback didn't use a typeless pointer. Following patch contains a revised sbr decoder callback function with explicit data type cast to be inline with all other callbacks in FDK. Bug: 112662306 Bug: 116075869 Test: on x86: atest DecoderTestXheAac ; atest DecoderTestAacDrc Change-Id: Id224de22beaf2eb9631babd838c4c3ceae0a801e Merged-In: Idc9c44a9755b8151d5c7d8107696f43ac592413b
This commit is contained in:
parent
78f80da872
commit
9db742a7d3
|
@ -368,6 +368,23 @@ static INT aacDecoder_CtrlCFGChangeCallback(
|
||||||
return errTp;
|
return errTp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INT aacDecoder_SbrCallback(
|
||||||
|
void *handle, HANDLE_FDK_BITSTREAM hBs, const INT sampleRateIn,
|
||||||
|
const INT sampleRateOut, const INT samplesPerFrame,
|
||||||
|
const AUDIO_OBJECT_TYPE coreCodec, const MP4_ELEMENT_ID elementID,
|
||||||
|
const INT elementIndex, const UCHAR harmonicSBR,
|
||||||
|
const UCHAR stereoConfigIndex, const UCHAR configMode, UCHAR *configChanged,
|
||||||
|
const INT downscaleFactor) {
|
||||||
|
HANDLE_SBRDECODER self = (HANDLE_SBRDECODER)handle;
|
||||||
|
|
||||||
|
INT errTp = sbrDecoder_Header(self, hBs, sampleRateIn, sampleRateOut,
|
||||||
|
samplesPerFrame, coreCodec, elementID,
|
||||||
|
elementIndex, harmonicSBR, stereoConfigIndex,
|
||||||
|
configMode, configChanged, downscaleFactor);
|
||||||
|
|
||||||
|
return errTp;
|
||||||
|
}
|
||||||
|
|
||||||
static INT aacDecoder_SscCallback(void *handle, HANDLE_FDK_BITSTREAM hBs,
|
static INT aacDecoder_SscCallback(void *handle, HANDLE_FDK_BITSTREAM hBs,
|
||||||
const AUDIO_OBJECT_TYPE coreCodec,
|
const AUDIO_OBJECT_TYPE coreCodec,
|
||||||
const INT samplingRate,
|
const INT samplingRate,
|
||||||
|
@ -959,7 +976,7 @@ LINKSPEC_CPP HANDLE_AACDECODER aacDecoder_Open(TRANSPORT_TYPE transportFmt,
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
aacDec->qmfModeUser = NOT_DEFINED;
|
aacDec->qmfModeUser = NOT_DEFINED;
|
||||||
transportDec_RegisterSbrCallback(aacDec->hInput, (cbSbr_t)sbrDecoder_Header,
|
transportDec_RegisterSbrCallback(aacDec->hInput, aacDecoder_SbrCallback,
|
||||||
(void *)aacDec->hSbrDecoder);
|
(void *)aacDec->hSbrDecoder);
|
||||||
|
|
||||||
if (mpegSurroundDecoder_Open(
|
if (mpegSurroundDecoder_Open(
|
||||||
|
|
Loading…
Reference in New Issue