/***************************************************************************** functionname: encodeSbrData description: encodes sbr Data information returns: number of bits written input: output: *****************************************************************************/ static INT encodeSbrData(HANDLE_SBR_ENV_DATA sbrEnvDataLeft, HANDLE_SBR_ENV_DATA sbrEnvDataRight, HANDLE_PARAMETRIC_STEREO hParametricStereo, HANDLE_COMMON_DATA cmonData, SBR_ELEMENT_TYPE sbrElem, INT coupling, UINT sbrSyntaxFlags) { INT payloadBits = 0; switch (sbrElem) { case SBR_ID_SCE: payloadBits += encodeSbrSingleChannelElement(sbrEnvDataLeft, &cmonData->sbrBitbuf, hParametricStereo, sbrSyntaxFlags); break; case SBR_ID_CPE: payloadBits += encodeSbrChannelPairElement( sbrEnvDataLeft, sbrEnvDataRight, hParametricStereo, &cmonData->sbrBitbuf, coupling, sbrSyntaxFlags); break; default: /* we never should apply SBR to any other element type */ FDK_ASSERT(0); } cmonData->sbrDataBits = payloadBits; return payloadBits; }
/***************************************************************************** description: encodes sbr Data information returns: number of bits written *****************************************************************************/ static int encodeSbrData (HANDLE_SBR_ENV_DATA sbrEnvDataLeft, HANDLE_SBR_ENV_DATA sbrEnvDataRight, HANDLE_COMMON_DATA cmonData, SBR_ELEMENT_TYPE sbrElem, int sampleRateMode, int data_extra, struct PS_ENC* h_ps_e, int bHeaderActive, int coupling) { int payloadBits = 0; /* counting previous operation */ switch (sbrElem) { case SBR_ID_SCE: payloadBits += encodeSbrSingleChannelElement (sbrEnvDataLeft, &cmonData->sbrBitbuf, data_extra); encodeExtendedData(sbrEnvDataLeft, NULL, h_ps_e, bHeaderActive, &cmonData->sbrBitbufPrev, &cmonData->sbrHdrBits, &cmonData->sbrBitbuf, &payloadBits); break; case SBR_ID_CPE: payloadBits += encodeSbrChannelPairElement (sbrEnvDataLeft, sbrEnvDataRight, &cmonData->sbrBitbuf, data_extra, coupling); encodeExtendedData(sbrEnvDataLeft, sbrEnvDataRight, NULL, 0, NULL, 0, &cmonData->sbrBitbuf, &payloadBits); break; default: /* we never should apply SBR to any other element type */ assert (0); } cmonData->sbrDataBits = payloadBits; return payloadBits; }