/***************************************************************************** description: encodes SBR Header information returns: number of bits written *****************************************************************************/ static int encodeSbrHeader (HANDLE_SBR_HEADER_DATA sbrHeaderData, HANDLE_SBR_BITSTREAM_DATA sbrBitstreamData, HANDLE_COMMON_DATA cmonData, SBR_ELEMENT_TYPE sbrElem) { int payloadBits = 0; /* counting previous operation */ if (sbrBitstreamData->CRCActive) { cmonData->sbrCrcLen = 1; } else { cmonData->sbrCrcLen = 0; } if (sbrBitstreamData->HeaderActive) { payloadBits += WriteBits (&cmonData->sbrBitbuf, 1, 1); payloadBits += encodeSbrHeaderData (sbrHeaderData, &cmonData->sbrBitbuf, sbrElem); } else { payloadBits += WriteBits (&cmonData->sbrBitbuf, 0, 1); } cmonData->sbrHdrBits = payloadBits; return payloadBits; }
void sbrEncoder_GetHeader(SBR_ENCODER *sbrEncoder, HANDLE_FDK_BITSTREAM hBs, INT element_index, int fSendHeaders) { encodeSbrHeaderData(&sbrEncoder->sbrElement[element_index]->sbrHeaderData, hBs); if (fSendHeaders == 0) { /* Prevent header being embedded into the SBR payload. */ sbrEncoder->sbrElement[element_index]->sbrBitstreamData.NrSendHeaderData = -1; sbrEncoder->sbrElement[element_index]->sbrBitstreamData.HeaderActive = 0; sbrEncoder->sbrElement[element_index] ->sbrBitstreamData.CountSendHeaderData = -1; } }
/***************************************************************************** functionname: encodeSbrHeader description: encodes SBR Header information returns: number of bits written input: output: *****************************************************************************/ static INT encodeSbrHeader(HANDLE_SBR_HEADER_DATA sbrHeaderData, HANDLE_SBR_BITSTREAM_DATA sbrBitstreamData, HANDLE_COMMON_DATA cmonData) { INT payloadBits = 0; if (sbrBitstreamData->HeaderActive) { payloadBits += FDKwriteBits(&cmonData->sbrBitbuf, 1, 1); payloadBits += encodeSbrHeaderData(sbrHeaderData, &cmonData->sbrBitbuf); } else { payloadBits += FDKwriteBits(&cmonData->sbrBitbuf, 0, 1); } cmonData->sbrHdrBits = payloadBits; return payloadBits; }