コード例 #1
0
ファイル: bit_sbr.cpp プロジェクト: ShiftMediaProject/fdk-aac
/*****************************************************************************

    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;
}
コード例 #2
0
ファイル: bit_sbr.c プロジェクト: Distrotech/libaacplus
/*****************************************************************************

    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;
}