_Z17FDK_Delay_DestroyP15FDK_SignalDelay:
  164|     25|void FDK_Delay_Destroy(FDK_SignalDelay* data) {
  165|     25|  if (data->delay_line != NULL) {
  ------------------
  |  Branch (165:7): [True: 0, False: 25]
  ------------------
  166|      0|    FDKfree(data->delay_line);
  167|      0|  }
  168|     25|  data->delay_line = NULL;
  169|     25|  data->delay = 0;
  170|     25|  data->num_channels = 0;
  171|       |
  172|     25|  return;
  173|     25|}

_Z19aacDecoder_drcResetP8CDrcInfo:
  172|     25|void aacDecoder_drcReset(HANDLE_AAC_DRC self) {
  173|     25|  self->applyExtGain = 0;
  174|     25|  self->additionalGainPrev = AACDEC_DRC_GAIN_INIT_VALUE;
  ------------------
  |  |  114|     25|  (FL2FXCONST_DBL(                 \
  |  |  ------------------
  |  |  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  |  |  ------------------
  |  |  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  |  |  ------------------
  |  |  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     25|      1.0f / (1 << AACDEC_DRC_GAIN_SCALING))) /* Init value for DRC gains */
  ------------------
  175|     25|  self->additionalGainFilterState = AACDEC_DRC_GAIN_INIT_VALUE;
  ------------------
  |  |  114|     25|  (FL2FXCONST_DBL(                 \
  |  |  ------------------
  |  |  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  |  |  ------------------
  |  |  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  |  |  ------------------
  |  |  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     25|      1.0f / (1 << AACDEC_DRC_GAIN_SCALING))) /* Init value for DRC gains */
  ------------------
  176|     25|  self->additionalGainFilterState1 = AACDEC_DRC_GAIN_INIT_VALUE;
  ------------------
  |  |  114|     25|  (FL2FXCONST_DBL(                 \
  |  |  ------------------
  |  |  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  |  |  ------------------
  |  |  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  |  |  ------------------
  |  |  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     25|      1.0f / (1 << AACDEC_DRC_GAIN_SCALING))) /* Init value for DRC gains */
  ------------------
  177|     25|}
_Z18aacDecoder_drcInitP8CDrcInfo:
  186|     25|void aacDecoder_drcInit(HANDLE_AAC_DRC self) {
  187|     25|  CDrcParams *pParams;
  188|       |
  189|     25|  if (self == NULL) {
  ------------------
  |  Branch (189:7): [True: 0, False: 25]
  ------------------
  190|      0|    return;
  191|      0|  }
  192|       |
  193|       |  /* init control fields */
  194|     25|  self->enable = OFF;
  ------------------
  |  |  134|     25|#define OFF 0
  ------------------
  195|     25|  self->numThreads = 0;
  196|       |
  197|       |  /* init params */
  198|     25|  pParams = &self->params;
  199|     25|  pParams->bsDelayEnable = 0;
  200|     25|  pParams->cut = FL2FXCONST_DBL(0.0f);
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  201|     25|  pParams->usrCut = FL2FXCONST_DBL(0.0f);
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  202|     25|  pParams->boost = FL2FXCONST_DBL(0.0f);
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  203|     25|  pParams->usrBoost = FL2FXCONST_DBL(0.0f);
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  204|     25|  pParams->targetRefLevel = 96;
  205|     25|  pParams->expiryFrame = AACDEC_DRC_DFLT_EXPIRY_FRAMES;
  ------------------
  |  |  118|     25|  (0) /* Default DRC data expiry time in AAC frames   */
  ------------------
  206|     25|  pParams->applyHeavyCompression = OFF;
  ------------------
  |  |  134|     25|#define OFF 0
  ------------------
  207|     25|  pParams->usrApplyHeavyCompression = OFF;
  ------------------
  |  |  134|     25|#define OFF 0
  ------------------
  208|       |
  209|     25|  pParams->defaultPresentationMode = DISABLED_PARAMETER_HANDLING;
  210|     25|  pParams->encoderTargetLevel = MAX_REFERENCE_LEVEL; /* worst case assumption */
  ------------------
  |  |  128|     25|#define MAX_REFERENCE_LEVEL (127)
  ------------------
  211|       |
  212|     25|  self->update = 1;
  213|     25|  self->numOutChannels = 0;
  214|     25|  self->prevAacNumChannels = 0;
  215|       |
  216|       |  /* initial program ref level = target ref level */
  217|     25|  self->progRefLevel = pParams->targetRefLevel;
  218|     25|  self->progRefLevelPresent = 0;
  219|     25|  self->presMode = -1;
  220|       |
  221|     25|  aacDecoder_drcReset(self);
  222|     25|}
_Z22aacDecoder_drcSetParamP8CDrcInfo16AACDEC_DRC_PARAMi:
  252|     50|                                         AACDEC_DRC_PARAM param, INT value) {
  253|     50|  AAC_DECODER_ERROR ErrorStatus = AAC_DEC_OK;
  254|       |
  255|     50|  switch (param) {
  256|      0|    case DRC_CUT_SCALE:
  ------------------
  |  Branch (256:5): [True: 0, False: 50]
  ------------------
  257|       |      /* set attenuation scale factor */
  258|      0|      if ((value < 0) || (value > DRC_MAX_QUANT_FACTOR)) {
  ------------------
  |  |  117|      0|#define DRC_MAX_QUANT_FACTOR (DRC_MAX_QUANT_STEPS - 1)
  |  |  ------------------
  |  |  |  |  116|      0|#define DRC_MAX_QUANT_STEPS (1 << DRC_PARAMETER_BITS)
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define DRC_PARAMETER_BITS (7)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (258:11): [True: 0, False: 0]
  |  Branch (258:26): [True: 0, False: 0]
  ------------------
  259|      0|        return AAC_DEC_SET_PARAM_FAIL;
  260|      0|      }
  261|      0|      if (self == NULL) {
  ------------------
  |  Branch (261:11): [True: 0, False: 0]
  ------------------
  262|      0|        return AAC_DEC_INVALID_HANDLE;
  263|      0|      }
  264|      0|      self->params.usrCut = (FIXP_DBL)(
  265|      0|          (INT)(DRC_PARAM_QUANT_STEP >> DRC_PARAM_SCALE) * (INT)value);
  ------------------
  |  |  119|      0|  (FL2FXCONST_DBL(1.0f / (float)DRC_MAX_QUANT_FACTOR))
  |  |  ------------------
  |  |  |  |  192|      0|  (FIXP_DBL)(                                                                \
  |  |  |  |  193|      0|      ((val) >= 0)                                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (193:7): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  194|      0|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  198|      0|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                        (INT)(DRC_PARAM_QUANT_STEP >> DRC_PARAM_SCALE) * (INT)value);
  ------------------
  |  |  120|      0|#define DRC_PARAM_SCALE (1)
  ------------------
  266|      0|      self->update = 1;
  267|      0|      break;
  268|      0|    case DRC_BOOST_SCALE:
  ------------------
  |  Branch (268:5): [True: 0, False: 50]
  ------------------
  269|       |      /* set boost factor */
  270|      0|      if ((value < 0) || (value > DRC_MAX_QUANT_FACTOR)) {
  ------------------
  |  |  117|      0|#define DRC_MAX_QUANT_FACTOR (DRC_MAX_QUANT_STEPS - 1)
  |  |  ------------------
  |  |  |  |  116|      0|#define DRC_MAX_QUANT_STEPS (1 << DRC_PARAMETER_BITS)
  |  |  |  |  ------------------
  |  |  |  |  |  |  115|      0|#define DRC_PARAMETER_BITS (7)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (270:11): [True: 0, False: 0]
  |  Branch (270:26): [True: 0, False: 0]
  ------------------
  271|      0|        return AAC_DEC_SET_PARAM_FAIL;
  272|      0|      }
  273|      0|      if (self == NULL) {
  ------------------
  |  Branch (273:11): [True: 0, False: 0]
  ------------------
  274|      0|        return AAC_DEC_INVALID_HANDLE;
  275|      0|      }
  276|      0|      self->params.usrBoost = (FIXP_DBL)(
  277|      0|          (INT)(DRC_PARAM_QUANT_STEP >> DRC_PARAM_SCALE) * (INT)value);
  ------------------
  |  |  119|      0|  (FL2FXCONST_DBL(1.0f / (float)DRC_MAX_QUANT_FACTOR))
  |  |  ------------------
  |  |  |  |  192|      0|  (FIXP_DBL)(                                                                \
  |  |  |  |  193|      0|      ((val) >= 0)                                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (193:7): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  194|      0|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  198|      0|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                        (INT)(DRC_PARAM_QUANT_STEP >> DRC_PARAM_SCALE) * (INT)value);
  ------------------
  |  |  120|      0|#define DRC_PARAM_SCALE (1)
  ------------------
  278|      0|      self->update = 1;
  279|      0|      break;
  280|      0|    case TARGET_REF_LEVEL:
  ------------------
  |  Branch (280:5): [True: 0, False: 50]
  ------------------
  281|      0|      if (value > MAX_REFERENCE_LEVEL || value < -MAX_REFERENCE_LEVEL) {
  ------------------
  |  |  128|      0|#define MAX_REFERENCE_LEVEL (127)
  ------------------
                    if (value > MAX_REFERENCE_LEVEL || value < -MAX_REFERENCE_LEVEL) {
  ------------------
  |  |  128|      0|#define MAX_REFERENCE_LEVEL (127)
  ------------------
  |  Branch (281:11): [True: 0, False: 0]
  |  Branch (281:42): [True: 0, False: 0]
  ------------------
  282|      0|        return AAC_DEC_SET_PARAM_FAIL;
  283|      0|      }
  284|      0|      if (self == NULL) {
  ------------------
  |  Branch (284:11): [True: 0, False: 0]
  ------------------
  285|      0|        return AAC_DEC_INVALID_HANDLE;
  286|      0|      }
  287|      0|      if (value < 0) {
  ------------------
  |  Branch (287:11): [True: 0, False: 0]
  ------------------
  288|      0|        self->params.targetRefLevel = -1;
  289|      0|      } else {
  290|      0|        if (self->params.targetRefLevel != (SCHAR)value) {
  ------------------
  |  Branch (290:13): [True: 0, False: 0]
  ------------------
  291|      0|          self->params.targetRefLevel = (SCHAR)value;
  292|      0|          self->progRefLevel = (SCHAR)value; /* Always set the program reference
  293|       |                                                level equal to the target level
  294|       |                                                according to 4.5.2.7.3 of
  295|       |                                                ISO/IEC 14496-3. */
  296|      0|        }
  297|      0|        self->update = 1;
  298|      0|      }
  299|      0|      break;
  300|      0|    case APPLY_HEAVY_COMPRESSION:
  ------------------
  |  Branch (300:5): [True: 0, False: 50]
  ------------------
  301|      0|      if ((value != OFF) && (value != ON)) {
  ------------------
  |  |  134|      0|#define OFF 0
  ------------------
                    if ((value != OFF) && (value != ON)) {
  ------------------
  |  |  135|      0|#define ON 1
  ------------------
  |  Branch (301:11): [True: 0, False: 0]
  |  Branch (301:29): [True: 0, False: 0]
  ------------------
  302|      0|        return AAC_DEC_SET_PARAM_FAIL;
  303|      0|      }
  304|      0|      if (self == NULL) {
  ------------------
  |  Branch (304:11): [True: 0, False: 0]
  ------------------
  305|      0|        return AAC_DEC_INVALID_HANDLE;
  306|      0|      }
  307|       |      /* Store new parameter value */
  308|      0|      self->params.usrApplyHeavyCompression = (UCHAR)value;
  309|      0|      self->update = 1;
  310|      0|      break;
  311|      0|    case DEFAULT_PRESENTATION_MODE:
  ------------------
  |  Branch (311:5): [True: 0, False: 50]
  ------------------
  312|      0|      if (value < AAC_DRC_PARAMETER_HANDLING_DISABLED ||
  ------------------
  |  Branch (312:11): [True: 0, False: 0]
  ------------------
  313|      0|          value > AAC_DRC_PRESENTATION_MODE_2_DEFAULT) {
  ------------------
  |  Branch (313:11): [True: 0, False: 0]
  ------------------
  314|      0|        return AAC_DEC_SET_PARAM_FAIL;
  315|      0|      }
  316|      0|      if (self == NULL) {
  ------------------
  |  Branch (316:11): [True: 0, False: 0]
  ------------------
  317|      0|        return AAC_DEC_INVALID_HANDLE;
  318|      0|      }
  319|      0|      self->params.defaultPresentationMode =
  320|      0|          (AACDEC_DRC_PARAMETER_HANDLING)value;
  321|      0|      self->update = 1;
  322|      0|      break;
  323|      0|    case ENCODER_TARGET_LEVEL:
  ------------------
  |  Branch (323:5): [True: 0, False: 50]
  ------------------
  324|      0|      if (value > MAX_REFERENCE_LEVEL || value < 0) {
  ------------------
  |  |  128|      0|#define MAX_REFERENCE_LEVEL (127)
  ------------------
  |  Branch (324:11): [True: 0, False: 0]
  |  Branch (324:42): [True: 0, False: 0]
  ------------------
  325|      0|        return AAC_DEC_SET_PARAM_FAIL;
  326|      0|      }
  327|      0|      if (self == NULL) {
  ------------------
  |  Branch (327:11): [True: 0, False: 0]
  ------------------
  328|      0|        return AAC_DEC_INVALID_HANDLE;
  329|      0|      }
  330|      0|      self->params.encoderTargetLevel = (UCHAR)value;
  331|      0|      self->update = 1;
  332|      0|      break;
  333|     50|    case DRC_BS_DELAY:
  ------------------
  |  Branch (333:5): [True: 50, False: 0]
  ------------------
  334|     50|      if (value < 0 || value > 1) {
  ------------------
  |  Branch (334:11): [True: 0, False: 50]
  |  Branch (334:24): [True: 0, False: 50]
  ------------------
  335|      0|        return AAC_DEC_SET_PARAM_FAIL;
  336|      0|      }
  337|     50|      if (self == NULL) {
  ------------------
  |  Branch (337:11): [True: 0, False: 50]
  ------------------
  338|      0|        return AAC_DEC_INVALID_HANDLE;
  339|      0|      }
  340|     50|      self->params.bsDelayEnable = value;
  341|     50|      break;
  342|      0|    case DRC_DATA_EXPIRY_FRAME:
  ------------------
  |  Branch (342:5): [True: 0, False: 50]
  ------------------
  343|      0|      if (self == NULL) {
  ------------------
  |  Branch (343:11): [True: 0, False: 0]
  ------------------
  344|      0|        return AAC_DEC_INVALID_HANDLE;
  345|      0|      }
  346|      0|      self->params.expiryFrame = (value > 0) ? (UINT)value : 0;
  ------------------
  |  Branch (346:34): [True: 0, False: 0]
  ------------------
  347|      0|      break;
  348|      0|    case MAX_OUTPUT_CHANNELS:
  ------------------
  |  Branch (348:5): [True: 0, False: 50]
  ------------------
  349|      0|      if (self == NULL) {
  ------------------
  |  Branch (349:11): [True: 0, False: 0]
  ------------------
  350|      0|        return AAC_DEC_INVALID_HANDLE;
  351|      0|      }
  352|      0|      self->numOutChannels = (INT)value;
  353|      0|      self->update = 1;
  354|      0|      break;
  355|      0|    default:
  ------------------
  |  Branch (355:5): [True: 0, False: 50]
  ------------------
  356|      0|      return AAC_DEC_SET_PARAM_FAIL;
  357|     50|  } /* switch(param) */
  358|       |
  359|     50|  return ErrorStatus;
  360|     50|}

_Z23CAacDecoder_AncDataInitP8CAncDataPhi:
  341|     25|                                          unsigned char *buffer, int size) {
  342|     25|  if (size >= 0) {
  ------------------
  |  Branch (342:7): [True: 25, False: 0]
  ------------------
  343|     25|    ancData->buffer = buffer;
  344|     25|    ancData->bufferSize = size;
  345|       |
  346|     25|    CAacDecoder_AncDataReset(ancData);
  347|       |
  348|     25|    return AAC_DEC_OK;
  349|     25|  }
  350|       |
  351|      0|  return AAC_DEC_ANC_DATA_ERROR;
  352|     25|}
_Z16CAacDecoder_Open14TRANSPORT_TYPE:
 1282|     25|{
 1283|     25|  HANDLE_AACDECODER self;
 1284|       |
 1285|     25|  self = GetAacDecoder();
 1286|     25|  if (self == NULL) {
  ------------------
  |  Branch (1286:7): [True: 0, False: 25]
  ------------------
 1287|      0|    goto bail;
 1288|      0|  }
 1289|       |
 1290|     25|  FDK_QmfDomain_ClearRequested(&self->qmfDomain.globalConf);
 1291|       |
 1292|       |  /* Assign channel mapping info arrays (doing so removes dependency of settings
 1293|       |   * header in API header). */
 1294|     25|  self->streamInfo.pChannelIndices = self->channelIndices;
 1295|     25|  self->streamInfo.pChannelType = self->channelType;
 1296|     25|  self->downscaleFactor = 1;
 1297|     25|  self->downscaleFactorInBS = 1;
 1298|       |
 1299|       |  /* initialize anc data */
 1300|     25|  CAacDecoder_AncDataInit(&self->ancData, NULL, 0);
 1301|       |
 1302|       |  /* initialize stream info */
 1303|     25|  CStreamInfoInit(&self->streamInfo);
 1304|       |
 1305|       |  /* initialize progam config */
 1306|     25|  CProgramConfig_Init(&self->pce);
 1307|       |
 1308|       |  /* initialize error concealment common data */
 1309|     25|  CConcealment_InitCommonData(&self->concealCommonData);
 1310|     25|  self->concealMethodUser = ConcealMethodNone; /* undefined -> auto mode */
 1311|       |
 1312|     25|  self->hDrcInfo = GetDrcInfo();
 1313|     25|  if (self->hDrcInfo == NULL) {
  ------------------
  |  Branch (1313:7): [True: 0, False: 25]
  ------------------
 1314|      0|    goto bail;
 1315|      0|  }
 1316|       |  /* Init common DRC structure */
 1317|     25|  aacDecoder_drcInit(self->hDrcInfo);
 1318|       |  /* Set default frame delay */
 1319|     25|  aacDecoder_drcSetParam(self->hDrcInfo, DRC_BS_DELAY,
 1320|     25|                         CConcealment_GetDelay(&self->concealCommonData));
 1321|     25|  self->workBufferCore1 = (FIXP_DBL *)GetWorkBufferCore1();
 1322|       |
 1323|     25|  self->workBufferCore2 = GetWorkBufferCore2();
 1324|     25|  if (self->workBufferCore2 == NULL) goto bail;
  ------------------
  |  Branch (1324:7): [True: 0, False: 25]
  ------------------
 1325|       |
 1326|       |  /* When RSVD60 is active use dedicated memory for core decoding */
 1327|     25|  self->pTimeData2 = GetWorkBufferCore5();
 1328|     25|  self->timeData2Size = GetRequiredMemWorkBufferCore5();
 1329|     25|  if (self->pTimeData2 == NULL) {
  ------------------
  |  Branch (1329:7): [True: 0, False: 25]
  ------------------
 1330|      0|    goto bail;
 1331|      0|  }
 1332|       |
 1333|     25|  return self;
 1334|       |
 1335|      0|bail:
 1336|      0|  CAacDecoder_Close(self);
 1337|       |
 1338|       |  return NULL;
 1339|     25|}
_Z17CAacDecoder_CloseP20AAC_DECODER_INSTANCE:
 1500|     25|LINKSPEC_CPP void CAacDecoder_Close(HANDLE_AACDECODER self) {
 1501|     25|  if (self == NULL) return;
  ------------------
  |  Branch (1501:7): [True: 0, False: 25]
  ------------------
 1502|       |
 1503|     25|  CAacDecoder_DeInit(self, 0);
 1504|       |
 1505|     25|  {
 1506|     25|    int ch;
 1507|    225|    for (ch = 0; ch < (8); ch++) {
  ------------------
  |  Branch (1507:18): [True: 200, False: 25]
  ------------------
 1508|    200|      if (self->pTimeDataFlush[ch] != NULL) {
  ------------------
  |  Branch (1508:11): [True: 0, False: 200]
  ------------------
 1509|      0|        FreeTimeDataFlush(&self->pTimeDataFlush[ch]);
 1510|      0|      }
 1511|    200|    }
 1512|     25|  }
 1513|       |
 1514|     25|  if (self->hDrcInfo) {
  ------------------
  |  Branch (1514:7): [True: 25, False: 0]
  ------------------
 1515|     25|    FreeDrcInfo(&self->hDrcInfo);
 1516|     25|  }
 1517|       |
 1518|     25|  if (self->workBufferCore1 != NULL) {
  ------------------
  |  Branch (1518:7): [True: 25, False: 0]
  ------------------
 1519|     25|    FreeWorkBufferCore1((CWorkBufferCore1 **)&self->workBufferCore1);
 1520|     25|  }
 1521|       |
 1522|       |  /* Free WorkBufferCore2 */
 1523|     25|  if (self->workBufferCore2 != NULL) {
  ------------------
  |  Branch (1523:7): [True: 25, False: 0]
  ------------------
 1524|     25|    FreeWorkBufferCore2(&self->workBufferCore2);
 1525|     25|  }
 1526|     25|  if (self->pTimeData2 != NULL) {
  ------------------
  |  Branch (1526:7): [True: 25, False: 0]
  ------------------
 1527|     25|    FreeWorkBufferCore5(&self->pTimeData2);
 1528|     25|  }
 1529|       |
 1530|     25|  FDK_QmfDomain_Close(&self->qmfDomain);
 1531|       |
 1532|     25|  FreeAacDecoder(&self);
 1533|     25|}
aacdecoder.cpp:_ZL24CAacDecoder_AncDataResetP8CAncData:
  321|     25|static AAC_DECODER_ERROR CAacDecoder_AncDataReset(CAncData *ancData) {
  322|     25|  int i;
  323|    225|  for (i = 0; i < 8; i++) {
  ------------------
  |  Branch (323:15): [True: 200, False: 25]
  ------------------
  324|    200|    ancData->offset[i] = 0;
  325|    200|  }
  326|     25|  ancData->nrElements = 0;
  327|       |
  328|     25|  return AAC_DEC_OK;
  329|     25|}
aacdecoder.cpp:_ZL15CStreamInfoInitP11CStreamInfo:
 1239|     25|static void CStreamInfoInit(CStreamInfo *pStreamInfo) {
 1240|     25|  pStreamInfo->aacSampleRate = 0;
 1241|     25|  pStreamInfo->profile = -1;
 1242|     25|  pStreamInfo->aot = AOT_NONE;
 1243|       |
 1244|     25|  pStreamInfo->channelConfig = -1;
 1245|     25|  pStreamInfo->bitRate = 0;
 1246|     25|  pStreamInfo->aacSamplesPerFrame = 0;
 1247|       |
 1248|     25|  pStreamInfo->extAot = AOT_NONE;
 1249|     25|  pStreamInfo->extSamplingRate = 0;
 1250|       |
 1251|     25|  pStreamInfo->flags = 0;
 1252|       |
 1253|     25|  pStreamInfo->epConfig = -1; /* default: no ER */
 1254|       |
 1255|     25|  pStreamInfo->numChannels = 0;
 1256|     25|  pStreamInfo->sampleRate = 0;
 1257|     25|  pStreamInfo->frameSize = 0;
 1258|       |
 1259|     25|  pStreamInfo->outputDelay = 0;
 1260|       |
 1261|       |  /* DRC */
 1262|     25|  pStreamInfo->drcProgRefLev =
 1263|     25|      -1; /* set program reference level to not indicated */
 1264|     25|  pStreamInfo->drcPresMode = -1; /* default: presentation mode not indicated */
 1265|       |
 1266|     25|  pStreamInfo->outputLoudness = -1; /* default: no loudness metadata present */
 1267|     25|}
aacdecoder.cpp:_ZL18CAacDecoder_DeInitP20AAC_DECODER_INSTANCEi:
 1343|     25|                               const int subStreamIndex) {
 1344|     25|  int ch;
 1345|     25|  int aacChannelOffset = 0, aacChannels = (8);
 1346|     25|  int numElements = (3 * ((8) * 2) + (((8) * 2)) / 2 + 4 * (1) + 1),
 1347|     25|      elementOffset = 0;
 1348|       |
 1349|     25|  if (self == NULL) return;
  ------------------
  |  Branch (1349:7): [True: 0, False: 25]
  ------------------
 1350|       |
 1351|     25|  {
 1352|     25|    self->ascChannels[0] = 0;
 1353|     25|    self->elements[0] = ID_END;
 1354|     25|  }
 1355|       |
 1356|    225|  for (ch = aacChannelOffset; ch < aacChannelOffset + aacChannels; ch++) {
  ------------------
  |  Branch (1356:31): [True: 200, False: 25]
  ------------------
 1357|    200|    if (self->pAacDecoderChannelInfo[ch] != NULL) {
  ------------------
  |  Branch (1357:9): [True: 0, False: 200]
  ------------------
 1358|      0|      if (self->pAacDecoderChannelInfo[ch]->pComStaticData != NULL) {
  ------------------
  |  Branch (1358:11): [True: 0, False: 0]
  ------------------
 1359|      0|        if (self->pAacDecoderChannelInfo[ch]
  ------------------
  |  Branch (1359:13): [True: 0, False: 0]
  ------------------
 1360|      0|                ->pComStaticData->pWorkBufferCore1 != NULL) {
 1361|      0|          if (ch == aacChannelOffset) {
  ------------------
  |  Branch (1361:15): [True: 0, False: 0]
  ------------------
 1362|      0|            FreeWorkBufferCore1(&self->pAacDecoderChannelInfo[ch]
 1363|      0|                                     ->pComStaticData->pWorkBufferCore1);
 1364|      0|          }
 1365|      0|        }
 1366|      0|        if (self->pAacDecoderChannelInfo[ch]
  ------------------
  |  Branch (1366:13): [True: 0, False: 0]
  ------------------
 1367|      0|                ->pComStaticData->cplxPredictionData != NULL) {
 1368|      0|          FreeCplxPredictionData(&self->pAacDecoderChannelInfo[ch]
 1369|      0|                                      ->pComStaticData->cplxPredictionData);
 1370|      0|        }
 1371|       |        /* Avoid double free of linked pComStaticData in case of CPE by settings
 1372|       |         * pointer to NULL. */
 1373|      0|        if (ch < (8) - 1) {
  ------------------
  |  Branch (1373:13): [True: 0, False: 0]
  ------------------
 1374|      0|          if ((self->pAacDecoderChannelInfo[ch + 1] != NULL) &&
  ------------------
  |  Branch (1374:15): [True: 0, False: 0]
  ------------------
 1375|      0|              (self->pAacDecoderChannelInfo[ch + 1]->pComStaticData ==
  ------------------
  |  Branch (1375:15): [True: 0, False: 0]
  ------------------
 1376|      0|               self->pAacDecoderChannelInfo[ch]->pComStaticData)) {
 1377|      0|            self->pAacDecoderChannelInfo[ch + 1]->pComStaticData = NULL;
 1378|      0|          }
 1379|      0|        }
 1380|      0|        FDKfree(self->pAacDecoderChannelInfo[ch]->pComStaticData);
 1381|      0|        self->pAacDecoderChannelInfo[ch]->pComStaticData = NULL;
 1382|      0|      }
 1383|      0|      if (self->pAacDecoderChannelInfo[ch]->pComData != NULL) {
  ------------------
  |  Branch (1383:11): [True: 0, False: 0]
  ------------------
 1384|       |        /* Avoid double free of linked pComData in case of CPE by settings
 1385|       |         * pointer to NULL. */
 1386|      0|        if (ch < (8) - 1) {
  ------------------
  |  Branch (1386:13): [True: 0, False: 0]
  ------------------
 1387|      0|          if ((self->pAacDecoderChannelInfo[ch + 1] != NULL) &&
  ------------------
  |  Branch (1387:15): [True: 0, False: 0]
  ------------------
 1388|      0|              (self->pAacDecoderChannelInfo[ch + 1]->pComData ==
  ------------------
  |  Branch (1388:15): [True: 0, False: 0]
  ------------------
 1389|      0|               self->pAacDecoderChannelInfo[ch]->pComData)) {
 1390|      0|            self->pAacDecoderChannelInfo[ch + 1]->pComData = NULL;
 1391|      0|          }
 1392|      0|        }
 1393|      0|        if (ch == aacChannelOffset) {
  ------------------
  |  Branch (1393:13): [True: 0, False: 0]
  ------------------
 1394|      0|          FreeWorkBufferCore6(
 1395|      0|              (SCHAR **)&self->pAacDecoderChannelInfo[ch]->pComData);
 1396|      0|        } else {
 1397|      0|          FDKafree(self->pAacDecoderChannelInfo[ch]->pComData);
 1398|      0|        }
 1399|      0|        self->pAacDecoderChannelInfo[ch]->pComData = NULL;
 1400|      0|      }
 1401|      0|    }
 1402|    200|    if (self->pAacDecoderStaticChannelInfo[ch] != NULL) {
  ------------------
  |  Branch (1402:9): [True: 0, False: 200]
  ------------------
 1403|      0|      if (self->pAacDecoderStaticChannelInfo[ch]->pOverlapBuffer != NULL) {
  ------------------
  |  Branch (1403:11): [True: 0, False: 0]
  ------------------
 1404|      0|        FreeOverlapBuffer(
 1405|      0|            &self->pAacDecoderStaticChannelInfo[ch]->pOverlapBuffer);
 1406|      0|      }
 1407|      0|      if (self->pAacDecoderStaticChannelInfo[ch]->hArCo != NULL) {
  ------------------
  |  Branch (1407:11): [True: 0, False: 0]
  ------------------
 1408|      0|        CArco_Destroy(self->pAacDecoderStaticChannelInfo[ch]->hArCo);
 1409|      0|      }
 1410|      0|      FreeAacDecoderStaticChannelInfo(&self->pAacDecoderStaticChannelInfo[ch]);
 1411|      0|    }
 1412|    200|    if (self->pAacDecoderChannelInfo[ch] != NULL) {
  ------------------
  |  Branch (1412:9): [True: 0, False: 200]
  ------------------
 1413|      0|      FreeAacDecoderChannelInfo(&self->pAacDecoderChannelInfo[ch]);
 1414|      0|    }
 1415|    200|  }
 1416|       |
 1417|     25|  {
 1418|     25|    int el;
 1419|  1.55k|    for (el = elementOffset; el < elementOffset + numElements; el++) {
  ------------------
  |  Branch (1419:30): [True: 1.52k, False: 25]
  ------------------
 1420|  1.52k|      if (self->cpeStaticData[el] != NULL) {
  ------------------
  |  Branch (1420:11): [True: 0, False: 1.52k]
  ------------------
 1421|      0|        FreeCpePersistentData(&self->cpeStaticData[el]);
 1422|      0|      }
 1423|  1.52k|    }
 1424|     25|  }
 1425|       |
 1426|     25|  FDK_Delay_Destroy(&self->usacResidualDelay);
 1427|       |
 1428|     25|  self->aacChannels = 0;
 1429|     25|  self->streamInfo.aacSampleRate = 0;
 1430|     25|  self->streamInfo.sampleRate = 0;
 1431|       |  /* This samplerate value is checked for configuration change, not the others
 1432|       |   * above. */
 1433|     25|  self->samplingRateInfo[subStreamIndex].samplingRate = 0;
 1434|     25|}

aacDecoder_Open:
  957|     62|                                               UINT nrOfLayers) {
  958|     62|  AAC_DECODER_INSTANCE *aacDec = NULL;
  959|     62|  HANDLE_TRANSPORTDEC pIn;
  960|     62|  int err = 0;
  961|     62|  int stereoConfigIndex = -1;
  962|       |
  963|     62|  UINT nrOfLayers_min = fMin(nrOfLayers, (UINT)1);
  964|       |
  965|       |  /* Allocate transport layer struct. */
  966|     62|  pIn = transportDec_Open(transportFmt, TP_FLAG_MPEG4, nrOfLayers_min);
  ------------------
  |  |  322|     62|#define TP_FLAG_MPEG4 1
  ------------------
  967|     62|  if (pIn == NULL) {
  ------------------
  |  Branch (967:7): [True: 37, False: 25]
  ------------------
  968|     37|    return NULL;
  969|     37|  }
  970|       |
  971|       |  /* Allocate AAC decoder core struct. */
  972|     25|  aacDec = CAacDecoder_Open(transportFmt);
  973|       |
  974|     25|  if (aacDec == NULL) {
  ------------------
  |  Branch (974:7): [True: 0, False: 25]
  ------------------
  975|      0|    transportDec_Close(&pIn);
  976|      0|    goto bail;
  977|      0|  }
  978|     25|  aacDec->hInput = pIn;
  979|       |
  980|     25|  aacDec->nrOfLayers = nrOfLayers_min;
  981|       |
  982|       |  /* Setup channel mapping descriptor. */
  983|     25|  FDK_chMapDescr_init(&aacDec->mapDescr, NULL, 0, 0);
  984|       |
  985|       |  /* Register Config Update callback. */
  986|     25|  transportDec_RegisterAscCallback(pIn, aacDecoder_ConfigCallback,
  987|     25|                                   (void *)aacDec);
  988|       |
  989|       |  /* Register Free Memory callback. */
  990|     25|  transportDec_RegisterFreeMemCallback(pIn, aacDecoder_FreeMemCallback,
  991|     25|                                       (void *)aacDec);
  992|       |
  993|       |  /* Register config switch control callback. */
  994|     25|  transportDec_RegisterCtrlCFGChangeCallback(
  995|     25|      pIn, aacDecoder_CtrlCFGChangeCallback, (void *)aacDec);
  996|       |
  997|     25|  FDKmemclear(&aacDec->qmfDomain, sizeof(FDK_QMF_DOMAIN));
  998|       |  /* open SBR decoder */
  999|     25|  if (SBRDEC_OK != sbrDecoder_Open(&aacDec->hSbrDecoder, &aacDec->qmfDomain)) {
  ------------------
  |  Branch (999:7): [True: 0, False: 25]
  ------------------
 1000|      0|    err = -1;
 1001|      0|    goto bail;
 1002|      0|  }
 1003|     25|  aacDec->qmfModeUser = NOT_DEFINED;
 1004|     25|  transportDec_RegisterSbrCallback(aacDec->hInput, aacDecoder_SbrCallback,
 1005|     25|                                   (void *)aacDec->hSbrDecoder);
 1006|       |
 1007|     25|  if (mpegSurroundDecoder_Open(
  ------------------
  |  Branch (1007:7): [True: 0, False: 25]
  ------------------
 1008|     25|          (CMpegSurroundDecoder **)&aacDec->pMpegSurroundDecoder,
 1009|     25|          stereoConfigIndex, &aacDec->qmfDomain)) {
 1010|      0|    err = -1;
 1011|      0|    goto bail;
 1012|      0|  }
 1013|       |  /* Set MPEG Surround defaults */
 1014|     25|  aacDec->mpsEnableUser = 0;
 1015|     25|  aacDec->mpsEnableCurr = 0;
 1016|     25|  aacDec->mpsApplicable = 0;
 1017|     25|  aacDec->mpsOutputMode = (SCHAR)SACDEC_OUT_MODE_NORMAL;
 1018|     25|  transportDec_RegisterSscCallback(pIn, aacDecoder_SscCallback, (void *)aacDec);
 1019|       |
 1020|     25|  {
 1021|     25|    if (FDK_drcDec_Open(&(aacDec->hUniDrcDecoder), DRC_DEC_ALL) != 0) {
  ------------------
  |  Branch (1021:9): [True: 0, False: 25]
  ------------------
 1022|      0|      err = -1;
 1023|      0|      goto bail;
 1024|      0|    }
 1025|     25|  }
 1026|       |
 1027|     25|  transportDec_RegisterUniDrcConfigCallback(pIn, aacDecoder_UniDrcCallback,
 1028|     25|                                            (void *)aacDec,
 1029|     25|                                            aacDec->loudnessInfoSetPosition);
 1030|     25|  aacDec->defaultTargetLoudness = (SCHAR)96;
 1031|       |
 1032|     25|  pcmDmx_Open(&aacDec->hPcmUtils);
 1033|     25|  if (aacDec->hPcmUtils == NULL) {
  ------------------
  |  Branch (1033:7): [True: 0, False: 25]
  ------------------
 1034|      0|    err = -1;
 1035|      0|    goto bail;
 1036|      0|  }
 1037|       |
 1038|     25|  aacDec->hLimiter =
 1039|     25|      pcmLimiter_Create(TDL_ATTACK_DEFAULT_MS, TDL_RELEASE_DEFAULT_MS,
  ------------------
  |  |  109|     25|#define TDL_ATTACK_DEFAULT_MS (15)  /* default attack  time in ms */
  ------------------
                    pcmLimiter_Create(TDL_ATTACK_DEFAULT_MS, TDL_RELEASE_DEFAULT_MS,
  ------------------
  |  |  110|     25|#define TDL_RELEASE_DEFAULT_MS (50) /* default release time in ms */
  ------------------
 1040|     25|                        (FIXP_DBL)MAXVAL_DBL, (8), 96000);
  ------------------
  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  ------------------
 1041|     25|  if (NULL == aacDec->hLimiter) {
  ------------------
  |  Branch (1041:7): [True: 0, False: 25]
  ------------------
 1042|      0|    err = -1;
 1043|      0|    goto bail;
 1044|      0|  }
 1045|     25|  aacDec->limiterEnableUser = (UCHAR)-1;
 1046|     25|  aacDec->limiterEnableCurr = 0;
 1047|       |
 1048|       |  /* Assure that all modules have same delay */
 1049|     25|  if (setConcealMethod(aacDec,
  ------------------
  |  Branch (1049:7): [True: 0, False: 25]
  ------------------
 1050|     25|                       CConcealment_GetMethod(&aacDec->concealCommonData))) {
 1051|      0|    err = -1;
 1052|      0|    goto bail;
 1053|      0|  }
 1054|       |
 1055|     25|bail:
 1056|     25|  if (err == -1) {
  ------------------
  |  Branch (1056:7): [True: 0, False: 25]
  ------------------
 1057|      0|    aacDecoder_Close(aacDec);
 1058|       |    aacDec = NULL;
 1059|      0|  }
 1060|     25|  return aacDec;
 1061|     25|}
aacDecoder_Close:
 2044|     25|LINKSPEC_CPP void aacDecoder_Close(HANDLE_AACDECODER self) {
 2045|     25|  if (self == NULL) return;
  ------------------
  |  Branch (2045:7): [True: 0, False: 25]
  ------------------
 2046|       |
 2047|     25|  if (self->hLimiter != NULL) {
  ------------------
  |  Branch (2047:7): [True: 25, False: 0]
  ------------------
 2048|     25|    pcmLimiter_Destroy(self->hLimiter);
 2049|     25|  }
 2050|       |
 2051|     25|  if (self->hPcmUtils != NULL) {
  ------------------
  |  Branch (2051:7): [True: 25, False: 0]
  ------------------
 2052|     25|    pcmDmx_Close(&self->hPcmUtils);
 2053|     25|  }
 2054|       |
 2055|     25|  FDK_drcDec_Close(&self->hUniDrcDecoder);
 2056|       |
 2057|     25|  if (self->pMpegSurroundDecoder != NULL) {
  ------------------
  |  Branch (2057:7): [True: 25, False: 0]
  ------------------
 2058|     25|    mpegSurroundDecoder_Close(
 2059|     25|        (CMpegSurroundDecoder *)self->pMpegSurroundDecoder);
 2060|     25|  }
 2061|       |
 2062|     25|  if (self->hSbrDecoder != NULL) {
  ------------------
  |  Branch (2062:7): [True: 25, False: 0]
  ------------------
 2063|     25|    sbrDecoder_Close(&self->hSbrDecoder);
 2064|     25|  }
 2065|       |
 2066|     25|  if (self->hInput != NULL) {
  ------------------
  |  Branch (2066:7): [True: 25, False: 0]
  ------------------
 2067|     25|    transportDec_Close(&self->hInput);
 2068|     25|  }
 2069|       |
 2070|     25|  CAacDecoder_Close(self);
 2071|     25|}
aacdecoder_lib.cpp:_ZL16setConcealMethodP20AAC_DECODER_INSTANCEi:
  565|     25|    const INT method) {
  566|     25|  AAC_DECODER_ERROR errorStatus = AAC_DEC_OK;
  567|     25|  CConcealParams *pConcealData = NULL;
  568|     25|  int method_revert = 0;
  569|     25|  HANDLE_SBRDECODER hSbrDec = NULL;
  570|     25|  HANDLE_AAC_DRC hDrcInfo = NULL;
  571|     25|  HANDLE_PCM_DOWNMIX hPcmDmx = NULL;
  572|     25|  CConcealmentMethod backupMethod = ConcealMethodNone;
  573|     25|  int backupDelay = 0;
  574|     25|  int bsDelay = 0;
  575|       |
  576|       |  /* check decoder handle */
  577|     25|  if (self != NULL) {
  ------------------
  |  Branch (577:7): [True: 25, False: 0]
  ------------------
  578|     25|    pConcealData = &self->concealCommonData;
  579|     25|    hSbrDec = self->hSbrDecoder;
  580|     25|    hDrcInfo = self->hDrcInfo;
  581|     25|    hPcmDmx = self->hPcmUtils;
  582|     25|    if (self->flags[0] & (AC_USAC | AC_RSVD50 | AC_RSV603DA) && method >= 2) {
  ------------------
  |  |  307|     25|#define AC_USAC 0x000100        /*!< USAC */
  ------------------
                  if (self->flags[0] & (AC_USAC | AC_RSVD50 | AC_RSV603DA) && method >= 2) {
  ------------------
  |  |  310|     25|#define AC_RSVD50 0x004000      /*!< Rsvd50 */
  ------------------
                  if (self->flags[0] & (AC_USAC | AC_RSVD50 | AC_RSV603DA) && method >= 2) {
  ------------------
  |  |  308|     25|#define AC_RSV603DA 0x000200    /*!< RSVD60 3D audio */
  ------------------
  |  Branch (582:9): [True: 0, False: 25]
  |  Branch (582:65): [True: 0, False: 0]
  ------------------
  583|       |      /* Interpolation concealment is not implemented for USAC/RSVD50 */
  584|       |      /* errorStatus = AAC_DEC_SET_PARAM_FAIL;
  585|       |         goto bail; */
  586|      0|      method_revert = 1;
  587|      0|    }
  588|     25|    if (self->flags[0] & (AC_USAC | AC_RSVD50 | AC_RSV603DA) && method >= 2) {
  ------------------
  |  |  307|     25|#define AC_USAC 0x000100        /*!< USAC */
  ------------------
                  if (self->flags[0] & (AC_USAC | AC_RSVD50 | AC_RSV603DA) && method >= 2) {
  ------------------
  |  |  310|     25|#define AC_RSVD50 0x004000      /*!< Rsvd50 */
  ------------------
                  if (self->flags[0] & (AC_USAC | AC_RSVD50 | AC_RSV603DA) && method >= 2) {
  ------------------
  |  |  308|     25|#define AC_RSV603DA 0x000200    /*!< RSVD60 3D audio */
  ------------------
  |  Branch (588:9): [True: 0, False: 25]
  |  Branch (588:65): [True: 0, False: 0]
  ------------------
  589|       |      /* Interpolation concealment is not implemented for USAC/RSVD50 */
  590|      0|      errorStatus = AAC_DEC_SET_PARAM_FAIL;
  591|      0|      goto bail;
  592|      0|    }
  593|     25|  }
  594|       |
  595|       |  /* Get current method/delay */
  596|     25|  backupMethod = CConcealment_GetMethod(pConcealData);
  597|     25|  backupDelay = CConcealment_GetDelay(pConcealData);
  598|       |
  599|       |  /* Be sure to set AAC and SBR concealment method simultaneously! */
  600|     25|  errorStatus = CConcealment_SetParams(
  601|     25|      pConcealData,
  602|     25|      (method_revert == 0) ? (int)method : (int)1,  // concealMethod
  ------------------
  |  Branch (602:7): [True: 25, False: 0]
  ------------------
  603|     25|      AACDEC_CONCEAL_PARAM_NOT_SPECIFIED,           // concealFadeOutSlope
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  604|     25|      AACDEC_CONCEAL_PARAM_NOT_SPECIFIED,           // concealFadeInSlope
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  605|     25|      AACDEC_CONCEAL_PARAM_NOT_SPECIFIED,           // concealMuteRelease
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  606|     25|      AACDEC_CONCEAL_PARAM_NOT_SPECIFIED            // concealComfNoiseLevel
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  607|     25|  );
  608|     25|  if ((errorStatus != AAC_DEC_OK) && (errorStatus != AAC_DEC_INVALID_HANDLE)) {
  ------------------
  |  Branch (608:7): [True: 0, False: 25]
  |  Branch (608:38): [True: 0, False: 0]
  ------------------
  609|      0|    goto bail;
  610|      0|  }
  611|       |
  612|       |  /* Get new delay */
  613|     25|  bsDelay = CConcealment_GetDelay(pConcealData);
  614|       |
  615|     25|  {
  616|     25|    SBR_ERROR sbrErr = SBRDEC_OK;
  617|       |
  618|       |    /* set SBR bitstream delay */
  619|     25|    sbrErr = sbrDecoder_SetParam(hSbrDec, SBR_SYSTEM_BITSTREAM_DELAY, bsDelay);
  620|       |
  621|     25|    switch (sbrErr) {
  622|     25|      case SBRDEC_OK:
  ------------------
  |  Branch (622:7): [True: 25, False: 0]
  ------------------
  623|     25|      case SBRDEC_NOT_INITIALIZED:
  ------------------
  |  Branch (623:7): [True: 0, False: 25]
  ------------------
  624|     25|        if (self != NULL) {
  ------------------
  |  Branch (624:13): [True: 25, False: 0]
  ------------------
  625|       |          /* save the param value and set later
  626|       |             (when SBR has been initialized) */
  627|     25|          self->sbrParams.bsDelay = bsDelay;
  628|     25|        }
  629|     25|        break;
  630|      0|      default:
  ------------------
  |  Branch (630:7): [True: 0, False: 25]
  ------------------
  631|      0|        errorStatus = AAC_DEC_SET_PARAM_FAIL;
  632|      0|        goto bail;
  633|     25|    }
  634|     25|  }
  635|       |
  636|     25|  errorStatus = aacDecoder_drcSetParam(hDrcInfo, DRC_BS_DELAY, bsDelay);
  637|     25|  if ((errorStatus != AAC_DEC_OK) && (errorStatus != AAC_DEC_INVALID_HANDLE)) {
  ------------------
  |  Branch (637:7): [True: 0, False: 25]
  |  Branch (637:38): [True: 0, False: 0]
  ------------------
  638|      0|    goto bail;
  639|      0|  }
  640|       |
  641|     25|  if (errorStatus == AAC_DEC_OK) {
  ------------------
  |  Branch (641:7): [True: 25, False: 0]
  ------------------
  642|     25|    PCMDMX_ERROR err = pcmDmx_SetParam(hPcmDmx, DMX_BS_DATA_DELAY, bsDelay);
  643|     25|    switch (err) {
  644|      0|      case PCMDMX_INVALID_HANDLE:
  ------------------
  |  Branch (644:7): [True: 0, False: 25]
  ------------------
  645|      0|        errorStatus = AAC_DEC_INVALID_HANDLE;
  646|      0|        break;
  647|     25|      case PCMDMX_OK:
  ------------------
  |  Branch (647:7): [True: 25, False: 0]
  ------------------
  648|     25|        break;
  649|      0|      default:
  ------------------
  |  Branch (649:7): [True: 0, False: 25]
  ------------------
  650|      0|        errorStatus = AAC_DEC_SET_PARAM_FAIL;
  651|      0|        goto bail;
  652|     25|    }
  653|     25|  }
  654|       |
  655|     25|bail:
  656|     25|  if ((errorStatus != AAC_DEC_OK) && (errorStatus != AAC_DEC_INVALID_HANDLE)) {
  ------------------
  |  Branch (656:7): [True: 0, False: 25]
  |  Branch (656:38): [True: 0, False: 0]
  ------------------
  657|       |    /* Revert to the initial state */
  658|      0|    CConcealment_SetParams(
  659|      0|        pConcealData, (int)backupMethod, AACDEC_CONCEAL_PARAM_NOT_SPECIFIED,
  ------------------
  |  |  108|      0|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  660|      0|        AACDEC_CONCEAL_PARAM_NOT_SPECIFIED, AACDEC_CONCEAL_PARAM_NOT_SPECIFIED,
  ------------------
  |  |  108|      0|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
                      AACDEC_CONCEAL_PARAM_NOT_SPECIFIED, AACDEC_CONCEAL_PARAM_NOT_SPECIFIED,
  ------------------
  |  |  108|      0|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  661|      0|        AACDEC_CONCEAL_PARAM_NOT_SPECIFIED);
  ------------------
  |  |  108|      0|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  662|       |    /* Revert SBR bitstream delay */
  663|      0|    sbrDecoder_SetParam(hSbrDec, SBR_SYSTEM_BITSTREAM_DELAY, backupDelay);
  664|       |    /* Revert DRC bitstream delay */
  665|      0|    aacDecoder_drcSetParam(hDrcInfo, DRC_BS_DELAY, backupDelay);
  666|       |    /* Revert PCM mixdown bitstream delay */
  667|      0|    pcmDmx_SetParam(hPcmDmx, DMX_BS_DATA_DELAY, backupDelay);
  668|      0|  }
  669|       |
  670|     25|  return errorStatus;
  671|     25|}

_Z27CConcealment_InitCommonDataP14CConcealParams:
  265|     25|void CConcealment_InitCommonData(CConcealParams *pConcealCommonData) {
  266|     25|  if (pConcealCommonData != NULL) {
  ------------------
  |  Branch (266:7): [True: 25, False: 0]
  ------------------
  267|     25|    int i;
  268|       |
  269|       |    /* Set default error concealment technique */
  270|     25|    pConcealCommonData->method = ConcealMethodInter;
  271|       |
  272|     25|    pConcealCommonData->numFadeOutFrames = CONCEAL_DFLT_FADEOUT_FRAMES;
  ------------------
  |  |  161|     25|#define CONCEAL_DFLT_FADEOUT_FRAMES (6)
  ------------------
  273|     25|    pConcealCommonData->numFadeInFrames = CONCEAL_DFLT_FADEIN_FRAMES;
  ------------------
  |  |  162|     25|#define CONCEAL_DFLT_FADEIN_FRAMES (5)
  ------------------
  274|     25|    pConcealCommonData->numMuteReleaseFrames = CONCEAL_DFLT_MUTE_RELEASE_FRAMES;
  ------------------
  |  |  163|     25|#define CONCEAL_DFLT_MUTE_RELEASE_FRAMES (0)
  ------------------
  275|       |
  276|     25|    pConcealCommonData->comfortNoiseLevel =
  277|     25|        (FIXP_DBL)CONCEAL_DFLT_COMF_NOISE_LEVEL;
  ------------------
  |  |  156|     25|#define CONCEAL_DFLT_COMF_NOISE_LEVEL (0x100000)
  ------------------
  278|       |
  279|       |    /* Init fade factors (symetric) */
  280|     25|    pConcealCommonData->fadeOutFactor[0] =
  281|     25|        FL2FXCONST_SGL(CONCEAL_DFLT_FADE_FACTOR);
  ------------------
  |  |  180|     25|  (FIXP_SGL)(                                                                \
  |  |  181|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (181:7): [True: 25, Folded]
  |  |  ------------------
  |  |  182|     25|          ? ((((double)(val) * (FRACT_FIX_SCALE) + 0.5) >=                   \
  |  |  ------------------
  |  |  |  |  146|     25|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (182:14): [Folded, False: 25]
  |  |  ------------------
  |  |  183|     25|              (double)(MAXVAL_SGL))                                          \
  |  |  ------------------
  |  |  |  |  152|     25|  ((signed)0x00007FFF) /* this has to be synchronized to FRACT_BITS */
  |  |  ------------------
  |  |  184|     25|                 ? (SHORT)(MAXVAL_SGL)                                       \
  |  |  ------------------
  |  |  |  |  152|      0|  ((signed)0x00007FFF) /* this has to be synchronized to FRACT_BITS */
  |  |  ------------------
  |  |  185|     25|                 : (SHORT)((double)(val) * (double)(FRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  146|     25|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  186|     25|          : ((((double)(val) * (FRACT_FIX_SCALE)-0.5) <=                     \
  |  |  ------------------
  |  |  |  |  146|      0|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (186:14): [Folded, False: 0]
  |  |  ------------------
  |  |  187|      0|              (double)(MINVAL_SGL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  177|      0|#define MINVAL_SGL_CONST MINVAL_SGL
  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|  ((signed)0xFFFF8000) /* this has to be synchronized to FRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  188|      0|                 ? (SHORT)(MINVAL_SGL_CONST)                                 \
  |  |  ------------------
  |  |  |  |  177|      0|#define MINVAL_SGL_CONST MINVAL_SGL
  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|  ((signed)0xFFFF8000) /* this has to be synchronized to FRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  189|      0|                 : (SHORT)((double)(val) * (double)(FRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  146|      0|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  282|     25|    pConcealCommonData->fadeInFactor[0] = pConcealCommonData->fadeOutFactor[0];
  283|       |
  284|    800|    for (i = 1; i < CONCEAL_MAX_NUM_FADE_FACTORS; i++) {
  ------------------
  |  |  113|    800|#define CONCEAL_MAX_NUM_FADE_FACTORS (32)
  ------------------
  |  Branch (284:17): [True: 775, False: 25]
  ------------------
  285|    775|      pConcealCommonData->fadeOutFactor[i] =
  286|    775|          FX_DBL2FX_SGL(fMult(pConcealCommonData->fadeOutFactor[i - 1],
  ------------------
  |  |  220|  3.10k|#define FX_DBL2FX_SGL(val) ((FIXP_SGL)((val) >> (DFRACT_BITS - FRACT_BITS)))
  |  |  ------------------
  |  |  |  |  113|    775|#define DFRACT_BITS 32 /* double precision */
  |  |  ------------------
  |  |               #define FX_DBL2FX_SGL(val) ((FIXP_SGL)((val) >> (DFRACT_BITS - FRACT_BITS)))
  |  |  ------------------
  |  |  |  |  112|    775|#define FRACT_BITS 16  /* single precision */
  |  |  ------------------
  |  |  |  Branch (220:41): [Folded, False: 775]
  |  |  |  Branch (220:41): [Folded, False: 0]
  |  |  |  Branch (220:41): [True: 775, Folded]
  |  |  ------------------
  ------------------
  287|    775|                              FL2FXCONST_SGL(CONCEAL_DFLT_FADE_FACTOR)));
  288|    775|      pConcealCommonData->fadeInFactor[i] =
  289|    775|          pConcealCommonData->fadeOutFactor[i];
  290|    775|    }
  291|     25|  }
  292|     25|}
_Z22CConcealment_GetMethodP14CConcealParams:
  300|     50|CConcealmentMethod CConcealment_GetMethod(CConcealParams *pConcealCommonData) {
  301|     50|  CConcealmentMethod method = ConcealMethodNone;
  302|       |
  303|     50|  if (pConcealCommonData != NULL) {
  ------------------
  |  Branch (303:7): [True: 50, False: 0]
  ------------------
  304|     50|    method = pConcealCommonData->method;
  305|     50|  }
  306|       |
  307|     50|  return (method);
  308|     50|}
_Z22CConcealment_SetParamsP14CConcealParamsiiiii:
  375|     25|                       FIXP_DBL comfNoiseLevel) {
  376|       |  /* set concealment technique */
  377|     25|  if (method != AACDEC_CONCEAL_PARAM_NOT_SPECIFIED) {
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  |  Branch (377:7): [True: 25, False: 0]
  ------------------
  378|     25|    switch ((CConcealmentMethod)method) {
  379|      0|      case ConcealMethodMute:
  ------------------
  |  Branch (379:7): [True: 0, False: 25]
  ------------------
  380|      0|      case ConcealMethodNoise:
  ------------------
  |  Branch (380:7): [True: 0, False: 25]
  ------------------
  381|     25|      case ConcealMethodInter:
  ------------------
  |  Branch (381:7): [True: 25, False: 0]
  ------------------
  382|       |        /* Be sure to enable delay adjustment of SBR decoder! */
  383|     25|        if (concealParams == NULL) {
  ------------------
  |  Branch (383:13): [True: 0, False: 25]
  ------------------
  384|      0|          return AAC_DEC_INVALID_HANDLE;
  385|     25|        } else {
  386|       |          /* set param */
  387|     25|          concealParams->method = (CConcealmentMethod)method;
  388|     25|        }
  389|     25|        break;
  390|       |
  391|     25|      default:
  ------------------
  |  Branch (391:7): [True: 0, False: 25]
  ------------------
  392|      0|        return AAC_DEC_SET_PARAM_FAIL;
  393|     25|    }
  394|     25|  }
  395|       |
  396|       |  /* set number of frames for fade-out slope */
  397|     25|  if (fadeOutSlope != AACDEC_CONCEAL_PARAM_NOT_SPECIFIED) {
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  |  Branch (397:7): [True: 0, False: 25]
  ------------------
  398|      0|    if ((fadeOutSlope < CONCEAL_MAX_NUM_FADE_FACTORS) && (fadeOutSlope >= 0)) {
  ------------------
  |  |  113|      0|#define CONCEAL_MAX_NUM_FADE_FACTORS (32)
  ------------------
  |  Branch (398:9): [True: 0, False: 0]
  |  Branch (398:58): [True: 0, False: 0]
  ------------------
  399|      0|      if (concealParams == NULL) {
  ------------------
  |  Branch (399:11): [True: 0, False: 0]
  ------------------
  400|      0|        return AAC_DEC_INVALID_HANDLE;
  401|      0|      } else {
  402|       |        /* set param */
  403|      0|        concealParams->numFadeOutFrames = fadeOutSlope;
  404|      0|      }
  405|      0|    } else {
  406|      0|      return AAC_DEC_SET_PARAM_FAIL;
  407|      0|    }
  408|      0|  }
  409|       |
  410|       |  /* set number of frames for fade-in slope */
  411|     25|  if (fadeInSlope != AACDEC_CONCEAL_PARAM_NOT_SPECIFIED) {
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  |  Branch (411:7): [True: 0, False: 25]
  ------------------
  412|      0|    if ((fadeInSlope < CONCEAL_MAX_NUM_FADE_FACTORS) && (fadeInSlope >= 0)) {
  ------------------
  |  |  113|      0|#define CONCEAL_MAX_NUM_FADE_FACTORS (32)
  ------------------
  |  Branch (412:9): [True: 0, False: 0]
  |  Branch (412:57): [True: 0, False: 0]
  ------------------
  413|      0|      if (concealParams == NULL) {
  ------------------
  |  Branch (413:11): [True: 0, False: 0]
  ------------------
  414|      0|        return AAC_DEC_INVALID_HANDLE;
  415|      0|      } else {
  416|       |        /* set param */
  417|      0|        concealParams->numFadeInFrames = fadeInSlope;
  418|      0|      }
  419|      0|    } else {
  420|      0|      return AAC_DEC_SET_PARAM_FAIL;
  421|      0|    }
  422|      0|  }
  423|       |
  424|       |  /* set number of error-free frames after which the muting will be released */
  425|     25|  if (muteRelease != AACDEC_CONCEAL_PARAM_NOT_SPECIFIED) {
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  |  Branch (425:7): [True: 0, False: 25]
  ------------------
  426|      0|    if ((muteRelease < (CONCEAL_MAX_NUM_FADE_FACTORS << 1)) &&
  ------------------
  |  |  113|      0|#define CONCEAL_MAX_NUM_FADE_FACTORS (32)
  ------------------
  |  Branch (426:9): [True: 0, False: 0]
  ------------------
  427|      0|        (muteRelease >= 0)) {
  ------------------
  |  Branch (427:9): [True: 0, False: 0]
  ------------------
  428|      0|      if (concealParams == NULL) {
  ------------------
  |  Branch (428:11): [True: 0, False: 0]
  ------------------
  429|      0|        return AAC_DEC_INVALID_HANDLE;
  430|      0|      } else {
  431|       |        /* set param */
  432|      0|        concealParams->numMuteReleaseFrames = muteRelease;
  433|      0|      }
  434|      0|    } else {
  435|      0|      return AAC_DEC_SET_PARAM_FAIL;
  436|      0|    }
  437|      0|  }
  438|       |
  439|       |  /* set confort noise level which will be inserted while in state 'muting' */
  440|     25|  if (comfNoiseLevel != (FIXP_DBL)AACDEC_CONCEAL_PARAM_NOT_SPECIFIED) {
  ------------------
  |  |  108|     25|#define AACDEC_CONCEAL_PARAM_NOT_SPECIFIED (0xFFFE)
  ------------------
  |  Branch (440:7): [True: 0, False: 25]
  ------------------
  441|      0|    if ((comfNoiseLevel < (FIXP_DBL)0) ||
  ------------------
  |  Branch (441:9): [True: 0, False: 0]
  ------------------
  442|      0|        (comfNoiseLevel > (FIXP_DBL)MAXVAL_DBL)) {
  ------------------
  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  ------------------
  |  Branch (442:9): [True: 0, False: 0]
  ------------------
  443|      0|      return AAC_DEC_SET_PARAM_FAIL;
  444|      0|    }
  445|      0|    if (concealParams == NULL) {
  ------------------
  |  Branch (445:9): [True: 0, False: 0]
  ------------------
  446|      0|      return AAC_DEC_INVALID_HANDLE;
  447|      0|    } else {
  448|      0|      concealParams->comfortNoiseLevel = (FIXP_DBL)comfNoiseLevel;
  449|      0|    }
  450|      0|  }
  451|       |
  452|     25|  return (AAC_DEC_OK);
  453|     25|}
_Z21CConcealment_GetDelayP14CConcealParams:
 1651|     75|UINT CConcealment_GetDelay(CConcealParams *pConcealCommonData) {
 1652|     75|  UINT frameDelay = 0;
 1653|       |
 1654|     75|  if (pConcealCommonData != NULL) {
  ------------------
  |  Branch (1654:7): [True: 75, False: 0]
  ------------------
 1655|     75|    switch (pConcealCommonData->method) {
 1656|      0|      case ConcealMethodTonal:
  ------------------
  |  Branch (1656:7): [True: 0, False: 75]
  ------------------
 1657|     75|      case ConcealMethodInter:
  ------------------
  |  Branch (1657:7): [True: 75, False: 0]
  ------------------
 1658|     75|        frameDelay = 1;
 1659|     75|        break;
 1660|      0|      default:
  ------------------
  |  Branch (1660:7): [True: 0, False: 75]
  ------------------
 1661|      0|        break;
 1662|     75|    }
 1663|     75|  }
 1664|       |
 1665|     75|  return frameDelay;
 1666|     75|}

FDK_drcDec_Open:
  216|     25|                const DRC_DEC_FUNCTIONAL_RANGE functionalRange) {
  217|     25|  DRC_ERROR dErr = DE_OK;
  218|     25|  DRCDEC_SELECTION_PROCESS_RETURN sErr = DRCDEC_SELECTION_PROCESS_NO_ERROR;
  219|     25|  HANDLE_DRC_DECODER hDrcDec;
  220|       |
  221|     25|  *phDrcDec = (HANDLE_DRC_DECODER)FDKcalloc(1, sizeof(DRC_DECODER));
  222|     25|  if (!*phDrcDec) return DRC_DEC_OUT_OF_MEMORY;
  ------------------
  |  Branch (222:7): [True: 0, False: 25]
  ------------------
  223|     25|  hDrcDec = *phDrcDec;
  224|       |
  225|     25|  hDrcDec->functionalRange = functionalRange;
  226|       |
  227|     25|  hDrcDec->status = DRC_DEC_NOT_INITIALIZED;
  228|     25|  hDrcDec->codecMode = DRC_DEC_CODEC_MODE_UNDEFINED;
  229|       |
  230|     25|  if (hDrcDec->functionalRange & DRC_DEC_SELECTION) {
  ------------------
  |  Branch (230:7): [True: 25, False: 0]
  ------------------
  231|     25|    sErr = drcDec_SelectionProcess_Create(&(hDrcDec->hSelectionProc));
  232|     25|    if (sErr) return DRC_DEC_OUT_OF_MEMORY;
  ------------------
  |  Branch (232:9): [True: 0, False: 25]
  ------------------
  233|     25|    sErr = drcDec_SelectionProcess_Init(hDrcDec->hSelectionProc);
  234|     25|    if (sErr) return DRC_DEC_NOT_OK;
  ------------------
  |  Branch (234:9): [True: 0, False: 25]
  ------------------
  235|     25|    hDrcDec->selProcInputDiff = 1;
  236|     25|  }
  237|       |
  238|     25|  if (hDrcDec->functionalRange & DRC_DEC_GAIN) {
  ------------------
  |  Branch (238:7): [True: 25, False: 0]
  ------------------
  239|     25|    dErr = drcDec_GainDecoder_Open(&(hDrcDec->hGainDec));
  240|     25|    if (dErr) return DRC_DEC_OUT_OF_MEMORY;
  ------------------
  |  Branch (240:9): [True: 0, False: 25]
  ------------------
  241|     25|  }
  242|       |
  243|     25|  return DRC_DEC_OK;
  244|     25|}
FDK_drcDec_Close:
  361|     25|FDK_drcDec_Close(HANDLE_DRC_DECODER* phDrcDec) {
  362|     25|  HANDLE_DRC_DECODER hDrcDec;
  363|       |
  364|     25|  if (phDrcDec == NULL) {
  ------------------
  |  Branch (364:7): [True: 0, False: 25]
  ------------------
  365|      0|    return DRC_DEC_OK;
  366|      0|  }
  367|       |
  368|     25|  hDrcDec = *phDrcDec;
  369|       |
  370|     25|  if (hDrcDec == NULL) return DRC_DEC_NOT_OPENED;
  ------------------
  |  Branch (370:7): [True: 0, False: 25]
  ------------------
  371|       |
  372|     25|  if (hDrcDec->functionalRange & DRC_DEC_GAIN) {
  ------------------
  |  Branch (372:7): [True: 25, False: 0]
  ------------------
  373|     25|    drcDec_GainDecoder_Close(&(hDrcDec->hGainDec));
  374|     25|  }
  375|       |
  376|     25|  if (hDrcDec->functionalRange & DRC_DEC_SELECTION) {
  ------------------
  |  Branch (376:7): [True: 25, False: 0]
  ------------------
  377|     25|    drcDec_SelectionProcess_Delete(&(hDrcDec->hSelectionProc));
  378|     25|  }
  379|       |
  380|     25|  FDKfree(*phDrcDec);
  381|     25|  *phDrcDec = NULL;
  382|       |
  383|     25|  return DRC_DEC_OK;
  384|     25|}

_Z23drcDec_GainDecoder_OpenPP16DRC_GAIN_DECODER:
  158|     25|drcDec_GainDecoder_Open(HANDLE_DRC_GAIN_DECODER* phGainDec) {
  159|     25|  DRC_GAIN_DECODER* hGainDec = NULL;
  160|       |
  161|     25|  hGainDec = (DRC_GAIN_DECODER*)FDKcalloc(1, sizeof(DRC_GAIN_DECODER));
  162|     25|  if (hGainDec == NULL) return DE_MEMORY_ERROR;
  ------------------
  |  Branch (162:7): [True: 0, False: 25]
  ------------------
  163|       |
  164|     25|  hGainDec->multiBandActiveDrcIndex = -1;
  165|     25|  hGainDec->channelGainActiveDrcIndex = -1;
  166|       |
  167|     25|  *phGainDec = hGainDec;
  168|       |
  169|     25|  return DE_OK;
  170|     25|}
_Z24drcDec_GainDecoder_ClosePP16DRC_GAIN_DECODER:
  243|     25|drcDec_GainDecoder_Close(HANDLE_DRC_GAIN_DECODER* phGainDec) {
  244|     25|  if (*phGainDec != NULL) {
  ------------------
  |  Branch (244:7): [True: 25, False: 0]
  ------------------
  245|     25|    FDKfree(*phGainDec);
  246|     25|    *phGainDec = NULL;
  247|     25|  }
  248|       |
  249|     25|  return DE_OK;
  250|     25|}

_Z30drcDec_SelectionProcess_CreatePP26s_drcdec_selection_process:
  436|     25|drcDec_SelectionProcess_Create(HANDLE_DRC_SELECTION_PROCESS* phInstance) {
  437|     25|  HANDLE_DRC_SELECTION_PROCESS hInstance;
  438|     25|  hInstance = (HANDLE_DRC_SELECTION_PROCESS)FDKcalloc(
  439|     25|      1, sizeof(struct s_drcdec_selection_process));
  440|       |
  441|     25|  if (!hInstance) return DRCDEC_SELECTION_PROCESS_OUTOFMEMORY;
  ------------------
  |  Branch (441:7): [True: 0, False: 25]
  ------------------
  442|       |
  443|     25|  hInstance->codecMode = SEL_PROC_CODEC_MODE_UNDEFINED;
  444|       |
  445|     25|  *phInstance = hInstance;
  446|     25|  return DRCDEC_SELECTION_PROCESS_NO_ERROR;
  447|     25|}
_Z28drcDec_SelectionProcess_InitP26s_drcdec_selection_process:
  450|     25|drcDec_SelectionProcess_Init(HANDLE_DRC_SELECTION_PROCESS hInstance) {
  451|     25|  if (!hInstance) return DRCDEC_SELECTION_PROCESS_NOT_OK;
  ------------------
  |  Branch (451:7): [True: 0, False: 25]
  ------------------
  452|       |
  453|     25|  _initDefaultParams(&hInstance->selProcInput);
  454|     25|  return DRCDEC_SELECTION_PROCESS_NO_ERROR;
  455|     25|}
_Z30drcDec_SelectionProcess_DeletePP26s_drcdec_selection_process:
  647|     25|drcDec_SelectionProcess_Delete(HANDLE_DRC_SELECTION_PROCESS* phInstance) {
  648|     25|  if (phInstance == NULL || *phInstance == NULL)
  ------------------
  |  Branch (648:7): [True: 0, False: 25]
  |  Branch (648:29): [True: 0, False: 25]
  ------------------
  649|      0|    return DRCDEC_SELECTION_PROCESS_INVALID_HANDLE;
  650|       |
  651|     25|  FDKfree(*phInstance);
  652|       |  *phInstance = NULL;
  653|     25|  return DRCDEC_SELECTION_PROCESS_NO_ERROR;
  654|     25|}
drcDec_selectionProcess.cpp:_ZL18_initDefaultParamsP14SEL_PROC_INPUT:
  737|     25|    HANDLE_SEL_PROC_INPUT hSelProcInput) {
  738|     25|  DRCDEC_SELECTION_PROCESS_RETURN retVal = DRCDEC_SELECTION_PROCESS_NO_ERROR;
  739|       |
  740|     25|  if (hSelProcInput == NULL) return DRCDEC_SELECTION_PROCESS_INVALID_HANDLE;
  ------------------
  |  Branch (740:7): [True: 0, False: 25]
  ------------------
  741|       |
  742|       |  /* system parameters */
  743|     25|  hSelProcInput->baseChannelCount = -1;
  744|     25|  hSelProcInput->baseLayout = -1;
  745|     25|  hSelProcInput->targetConfigRequestType = TCRT_DOWNMIX_ID;
  746|     25|  hSelProcInput->numDownmixIdRequests = 0;
  747|       |
  748|       |  /* loudness normalization parameters */
  749|     25|  hSelProcInput->albumMode = 0;
  750|     25|  hSelProcInput->peakLimiterPresent = 0;
  751|     25|  hSelProcInput->loudnessNormalizationOn = 1;
  752|     25|  hSelProcInput->targetLoudness = FL2FXCONST_DBL(-24.0f / (float)(1 << 7));
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [Folded, False: 25]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 25]
  |  |  ------------------
  |  |  199|     25|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|     25|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|     25|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|     25|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  753|     25|  hSelProcInput->loudnessDeviationMax = DEFAULT_LOUDNESS_DEVIATION_MAX;
  ------------------
  |  |  137|     25|#define DEFAULT_LOUDNESS_DEVIATION_MAX 63
  ------------------
  754|     25|  hSelProcInput->loudnessMeasurementMethod = MDR_ANCHOR_LOUDNESS;
  755|     25|  hSelProcInput->loudnessMeasurementSystem = MSR_EXPERT_PANEL;
  756|     25|  hSelProcInput->loudnessMeasurementPreProc = LPR_DEFAULT;
  757|     25|  hSelProcInput->deviceCutOffFrequency = 500;
  758|     25|  hSelProcInput->loudnessNormalizationGainDbMax =
  759|     25|      (FIXP_DBL)MAXVAL_DBL; /* infinity as default */
  ------------------
  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  ------------------
  760|     25|  hSelProcInput->loudnessNormalizationGainModificationDb = (FIXP_DBL)0;
  761|     25|  hSelProcInput->outputPeakLevelMax = (FIXP_DBL)0;
  762|     25|  if (hSelProcInput->peakLimiterPresent == 1) {
  ------------------
  |  Branch (762:7): [True: 0, False: 25]
  ------------------
  763|      0|    hSelProcInput->outputPeakLevelMax = FL2FXCONST_DBL(6.0f / (float)(1 << 7));
  ------------------
  |  |  192|      0|  (FIXP_DBL)(                                                                \
  |  |  193|      0|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 0, Folded]
  |  |  ------------------
  |  |  194|      0|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|      0|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  764|      0|  }
  765|       |
  766|       |  /* dynamic range control parameters */
  767|     25|  hSelProcInput->dynamicRangeControlOn = 1;
  768|       |
  769|     25|  hSelProcInput->numDrcFeatureRequests = 0;
  770|       |
  771|       |  /* other parameters */
  772|     25|  hSelProcInput->boost = FL2FXCONST_SGL(1.f / (float)(1 << 1));
  ------------------
  |  |  180|     25|  (FIXP_SGL)(                                                                \
  |  |  181|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (181:7): [True: 25, Folded]
  |  |  ------------------
  |  |  182|     25|          ? ((((double)(val) * (FRACT_FIX_SCALE) + 0.5) >=                   \
  |  |  ------------------
  |  |  |  |  146|     25|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (182:14): [Folded, False: 25]
  |  |  ------------------
  |  |  183|     25|              (double)(MAXVAL_SGL))                                          \
  |  |  ------------------
  |  |  |  |  152|     25|  ((signed)0x00007FFF) /* this has to be synchronized to FRACT_BITS */
  |  |  ------------------
  |  |  184|     25|                 ? (SHORT)(MAXVAL_SGL)                                       \
  |  |  ------------------
  |  |  |  |  152|      0|  ((signed)0x00007FFF) /* this has to be synchronized to FRACT_BITS */
  |  |  ------------------
  |  |  185|     25|                 : (SHORT)((double)(val) * (double)(FRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  146|     25|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  186|     25|          : ((((double)(val) * (FRACT_FIX_SCALE)-0.5) <=                     \
  |  |  ------------------
  |  |  |  |  146|      0|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (186:14): [Folded, False: 0]
  |  |  ------------------
  |  |  187|      0|              (double)(MINVAL_SGL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  177|      0|#define MINVAL_SGL_CONST MINVAL_SGL
  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|  ((signed)0xFFFF8000) /* this has to be synchronized to FRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  188|      0|                 ? (SHORT)(MINVAL_SGL_CONST)                                 \
  |  |  ------------------
  |  |  |  |  177|      0|#define MINVAL_SGL_CONST MINVAL_SGL
  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|  ((signed)0xFFFF8000) /* this has to be synchronized to FRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  189|      0|                 : (SHORT)((double)(val) * (double)(FRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  146|      0|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  773|     25|  hSelProcInput->compress = FL2FXCONST_SGL(1.f / (float)(1 << 1));
  ------------------
  |  |  180|     25|  (FIXP_SGL)(                                                                \
  |  |  181|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (181:7): [True: 25, Folded]
  |  |  ------------------
  |  |  182|     25|          ? ((((double)(val) * (FRACT_FIX_SCALE) + 0.5) >=                   \
  |  |  ------------------
  |  |  |  |  146|     25|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (182:14): [Folded, False: 25]
  |  |  ------------------
  |  |  183|     25|              (double)(MAXVAL_SGL))                                          \
  |  |  ------------------
  |  |  |  |  152|     25|  ((signed)0x00007FFF) /* this has to be synchronized to FRACT_BITS */
  |  |  ------------------
  |  |  184|     25|                 ? (SHORT)(MAXVAL_SGL)                                       \
  |  |  ------------------
  |  |  |  |  152|      0|  ((signed)0x00007FFF) /* this has to be synchronized to FRACT_BITS */
  |  |  ------------------
  |  |  185|     25|                 : (SHORT)((double)(val) * (double)(FRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  146|     25|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|     25|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  186|     25|          : ((((double)(val) * (FRACT_FIX_SCALE)-0.5) <=                     \
  |  |  ------------------
  |  |  |  |  146|      0|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (186:14): [Folded, False: 0]
  |  |  ------------------
  |  |  187|      0|              (double)(MINVAL_SGL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  177|      0|#define MINVAL_SGL_CONST MINVAL_SGL
  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|  ((signed)0xFFFF8000) /* this has to be synchronized to FRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  188|      0|                 ? (SHORT)(MINVAL_SGL_CONST)                                 \
  |  |  ------------------
  |  |  |  |  177|      0|#define MINVAL_SGL_CONST MINVAL_SGL
  |  |  |  |  ------------------
  |  |  |  |  |  |  154|      0|  ((signed)0xFFFF8000) /* this has to be synchronized to FRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  189|      0|                 : (SHORT)((double)(val) * (double)(FRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  146|      0|#define FRACT_FIX_SCALE ((INT64(1) << (FRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#define FRACT_BITS 16  /* single precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  774|     25|  hSelProcInput->drcCharacteristicTarget = 0;
  775|       |
  776|     25|  return retVal;
  777|     25|}

tpdec_lib.cpp:_ZL16FDKinitBitStreamP13FDK_BITSTREAMPhjj10FDK_BS_CFG:
  166|     24|                      FDK_BS_CFG config = BS_READER) {
  167|     24|  FDK_InitBitBuffer(&hBitStream->hBitBuf, pBuffer, bufSize, validBits);
  168|       |
  169|       |  /* init cache */
  170|     24|  hBitStream->CacheWord = hBitStream->BitsInCache = 0;
  171|     24|  hBitStream->ConfigCache = config;
  172|     24|}

_Z4fMinjj:
  416|     62|inline UINT fMin(UINT a, UINT b) { return fixmin_UI(a, b); }
  ------------------
  |  |  129|     62|#define fixmin_UI(a, b) fixmin(a, b)
  ------------------
conceal.cpp:_ZL5fMultss:
  238|    775|FDK_INLINE LONG fMult(SHORT a, SHORT b) { return fixmul_SS(a, b); }
fixpoint_math.cpp:_ZL5fMultii:
  241|    800|FDK_INLINE LONG fMult(LONG a, LONG b) { return fixmul_DD(a, b); }
fixpoint_math.cpp:_ZL4fAbsi:
  275|     50|FDK_INLINE FIXP_DBL fAbs(FIXP_DBL x) { return fixabs_D(x); }
fixpoint_math.cpp:_ZL12fMultAddDiv2isi:
  317|    750|FDK_INLINE FIXP_DBL fMultAddDiv2(FIXP_DBL x, FIXP_SGL a, FIXP_DBL b) {
  318|    750|  return fixmadddiv2_SD(x, a, b);
  319|    750|}
fixpoint_math.cpp:_ZL9fMultDiv2ii:
  248|    800|FDK_INLINE LONG fMultDiv2(LONG a, LONG b) { return fixmuldiv2_DD(a, b); }
fixpoint_math.cpp:_ZL6fNormzi:
  292|     50|FDK_INLINE INT fNormz(FIXP_DBL x) { return fixnormz_D(x); }
fixpoint_math.cpp:_ZL12fMultAddDiv2iii:
  314|     50|FDK_INLINE FIXP_DBL fMultAddDiv2(FIXP_DBL x, FIXP_DBL a, FIXP_DBL b) {
  315|     50|  return fixmadddiv2_DD(x, a, b);
  316|     50|}
fixpoint_math.cpp:_ZL5fNormi:
  294|     50|FDK_INLINE INT fNorm(FIXP_DBL x) { return fixnorm_D(x); }

_Z14fixmadddiv2_DDiii:
  124|    800|inline FIXP_DBL fixmadddiv2_DD(FIXP_DBL x, const FIXP_DBL a, const FIXP_DBL b) {
  125|    800|  return (x + fMultDiv2(a, b));
  126|    800|}
_Z14fixmadddiv2_SDisi:
  130|    750|inline FIXP_DBL fixmadddiv2_SD(FIXP_DBL x, const FIXP_SGL a, const FIXP_DBL b) {
  131|       |#ifdef FUNCTION_fixmadddiv2_DS
  132|       |  return fixmadddiv2_DS(x, b, a);
  133|       |#else
  134|    750|  return fixmadddiv2_DD(x, FX_SGL2FX_DBL(a), b);
  ------------------
  |  |  219|    750|  ((FIXP_DBL)((LONG)(val) << (DFRACT_BITS - FRACT_BITS)))
  |  |  ------------------
  |  |  |  |  113|    750|#define DFRACT_BITS 32 /* double precision */
  |  |  ------------------
  |  |                 ((FIXP_DBL)((LONG)(val) << (DFRACT_BITS - FRACT_BITS)))
  |  |  ------------------
  |  |  |  |  112|    750|#define FRACT_BITS 16  /* single precision */
  |  |  ------------------
  ------------------
  135|    750|#endif
  136|    750|}

_Z6fixminIjET_S0_S0_:
  113|     62|inline T fixmin(T a, T b) {
  114|     62|  return (a < b ? a : b);
  ------------------
  |  Branch (114:11): [True: 2, False: 60]
  ------------------
  115|     62|}

_Z9fixmul_SSss:
  163|    775|inline LONG fixmul_SS(const SHORT a, const SHORT b) { return (a * b) << 1; }

fixpoint_math.cpp:_ZL5fLog2iiPi:
  807|     50|FDK_INLINE FIXP_DBL fLog2(FIXP_DBL x_m, INT x_e, INT *result_e) {
  808|     50|  FIXP_DBL result_m;
  809|       |
  810|       |  /* Short cut for zero and negative numbers. */
  811|     50|  if (x_m <= FL2FXCONST_DBL(0.0f)) {
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 50, Folded]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 50]
  |  |  ------------------
  |  |  195|     50|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     50|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     50|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (811:7): [True: 0, False: 50]
  ------------------
  812|      0|    *result_e = DFRACT_BITS - 1;
  ------------------
  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  ------------------
  813|      0|    return FL2FXCONST_DBL(-1.0f);
  ------------------
  |  |  192|      0|  (FIXP_DBL)(                                                                \
  |  |  193|      0|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [Folded, False: 0]
  |  |  ------------------
  |  |  194|      0|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|      0|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [True: 0, Folded]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  814|      0|  }
  815|       |
  816|       |  /* Calculate log2() */
  817|     50|  {
  818|     50|    FIXP_DBL x2_m;
  819|       |
  820|       |    /* Move input value x_m * 2^x_e toward 1.0, where the taylor approximation
  821|       |       of the function log(1-x) centered at 0 is most accurate. */
  822|     50|    {
  823|     50|      INT b_norm;
  824|       |
  825|     50|      b_norm = fNormz(x_m) - 1;
  826|     50|      x2_m = x_m << b_norm;
  827|     50|      x_e = x_e - b_norm;
  828|     50|    }
  829|       |
  830|       |    /* map x from log(x) domain to log(1-x) domain. */
  831|     50|    x2_m = -(x2_m + FL2FXCONST_DBL(-1.0));
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [Folded, False: 50]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [True: 50, Folded]
  |  |  ------------------
  |  |  199|     50|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|     50|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|     50|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|     50|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|     50|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|     50|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  832|       |
  833|       |    /* Taylor polynomial approximation of ln(1-x) */
  834|     50|    {
  835|     50|      FIXP_DBL px2_m;
  836|     50|      result_m = FL2FXCONST_DBL(0.0);
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 50, Folded]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 50]
  |  |  ------------------
  |  |  195|     50|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     50|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     50|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  837|     50|      px2_m = x2_m;
  838|    550|      for (int i = 0; i < LD_PRECISION; i++) {
  ------------------
  |  |  117|    550|#define LD_PRECISION 10
  ------------------
  |  Branch (838:23): [True: 500, False: 50]
  ------------------
  839|    500|        result_m = fMultAddDiv2(result_m, ldCoeff[i], px2_m);
  840|    500|        px2_m = fMult(px2_m, x2_m);
  841|    500|      }
  842|     50|    }
  843|       |    /* Multiply result with 1/ln(2) = 1.0 + 0.442695040888 (get log2(x) from
  844|       |     * ln(x) result). */
  845|     50|    result_m =
  846|     50|        fMultAddDiv2(result_m, result_m,
  847|     50|                     FL2FXCONST_DBL(2.0 * 0.4426950408889634073599246810019));
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 50, Folded]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 50]
  |  |  ------------------
  |  |  195|     50|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     50|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     50|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  848|       |
  849|       |    /* Add exponent part. log2(x_m * 2^x_e) = log2(x_m) + x_e */
  850|     50|    if (x_e != 0) {
  ------------------
  |  Branch (850:9): [True: 50, False: 0]
  ------------------
  851|     50|      int enorm;
  852|       |
  853|     50|      enorm = DFRACT_BITS - fNorm((FIXP_DBL)x_e);
  ------------------
  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  ------------------
  854|       |      /* The -1 in the right shift of result_m compensates the fMultDiv2() above
  855|       |       * in the taylor polynomial evaluation loop.*/
  856|     50|      result_m = (result_m >> (enorm - 1)) +
  857|     50|                 ((FIXP_DBL)x_e << (DFRACT_BITS - 1 - enorm));
  ------------------
  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  ------------------
  858|       |
  859|     50|      *result_e = enorm;
  860|     50|    } else {
  861|       |      /* 1 compensates the fMultDiv2() above in the taylor polynomial evaluation
  862|       |       * loop.*/
  863|      0|      *result_e = 1;
  864|      0|    }
  865|     50|  }
  866|       |
  867|     50|  return result_m;
  868|     50|}

_Z10scaleValueii:
  155|     50|) {
  156|     50|  if (scalefactor > 0)
  ------------------
  |  Branch (156:7): [True: 50, False: 0]
  ------------------
  157|     50|    return (value << scalefactor);
  158|      0|  else
  159|      0|    return (value >> (-scalefactor));
  160|     50|}

_Z8fixabs_Di:
  110|     50|inline INT fixabs_D(INT x) { return ((x) > (INT)(0)) ? (x) : -(x); }
  ------------------
  |  Branch (110:37): [True: 50, False: 0]
  ------------------

_Z10fixnormz_Di:
  111|    150|inline INT fixnormz_D(LONG value) {
  112|    150|  INT result;
  113|       |
  114|    150|  if (value != 0) {
  ------------------
  |  Branch (114:7): [True: 150, False: 0]
  ------------------
  115|    150|    result = __builtin_clz(value);
  116|    150|  } else {
  117|      0|    result = 32;
  118|      0|  }
  119|    150|  return result;
  120|    150|}
_Z9fixnorm_Di:
  122|    100|inline INT fixnorm_D(LONG value) {
  123|    100|  INT result;
  124|    100|  if (value == 0) {
  ------------------
  |  Branch (124:7): [True: 0, False: 100]
  ------------------
  125|      0|    return 0;
  126|      0|  }
  127|    100|  if (value < 0) {
  ------------------
  |  Branch (127:7): [True: 50, False: 50]
  ------------------
  128|     50|    value = ~value;
  129|     50|  }
  130|    100|  result = fixnormz_D(value);
  131|    100|  return result - 1;
  132|    100|}

_Z9fixmul_DDii:
  164|    800|inline INT fixmul_DD(INT a, const INT b) {
  165|    800|  INT result;
  166|       |
  167|    800|  asm("imul %2;\n"
  168|    800|      "shl $1, %0;\n"
  169|    800|      : "=d"(result), "+a"(a)
  170|    800|      : "r"(b));
  171|       |
  172|    800|  return result;
  173|    800|}
_Z13fixmuldiv2_DDii:
  175|    800|inline INT fixmuldiv2_DD(INT a, const INT b) {
  176|    800|  INT result;
  177|       |
  178|    800|  asm("imul %2;" : "=d"(result), "+a"(a) : "r"(b));
  179|       |
  180|    800|  return result;
  181|    800|}

_Z7invFixpi:
  154|     50|inline FIXP_DBL invFixp(FIXP_DBL op) {
  155|     50|  float result;
  156|     50|  INT result_e;
  157|     50|  if ((op == (FIXP_DBL)0) || (op == (FIXP_DBL)1)) {
  ------------------
  |  Branch (157:7): [True: 0, False: 50]
  |  Branch (157:30): [True: 0, False: 50]
  ------------------
  158|      0|    return ((LONG)0x7fffffff);
  159|      0|  }
  160|     50|  result = (float)(1.0 / (float)(INT)op);
  161|     50|  result = frexpf(result, &result_e);
  162|     50|  result = ldexpf(result, 31 + result_e);
  163|       |
  164|     50|  return (FIXP_DBL)(INT)result;
  165|     50|}

FDK_InitBitBuffer:
  127|     24|                       UINT validBits) {
  128|     24|  hBitBuf->ValidBits = validBits;
  129|     24|  hBitBuf->ReadOffset = 0;
  130|     24|  hBitBuf->WriteOffset = 0;
  131|     24|  hBitBuf->BitNdx = 0;
  132|       |
  133|     24|  hBitBuf->Buffer = pBuffer;
  134|     24|  hBitBuf->bufSize = bufSize;
  135|     24|  hBitBuf->bufBits = (bufSize << 3);
  136|       |  /*assure bufsize (2^n) */
  137|     24|  FDK_ASSERT(hBitBuf->ValidBits <= hBitBuf->bufBits);
  ------------------
  |  |  221|     24|#define FDK_ASSERT(x) assert(x)
  ------------------
  |  Branch (137:3): [True: 24, False: 0]
  ------------------
  138|     24|  FDK_ASSERT((bufSize > 0) && (bufSize <= MAX_BUFSIZE_BYTES));
  ------------------
  |  |  221|     24|#define FDK_ASSERT(x) assert(x)
  ------------------
  |  Branch (138:3): [True: 24, False: 0]
  |  Branch (138:3): [True: 24, False: 0]
  |  Branch (138:3): [True: 24, False: 0]
  ------------------
  139|     24|  {
  140|     24|    UINT x = 0, n = bufSize;
  141|    408|    for (x = 0; n > 0; x++, n >>= 1) {
  ------------------
  |  Branch (141:17): [True: 384, False: 24]
  ------------------
  142|    384|    }
  143|     24|    if (bufSize != ((UINT)1 << (x - 1))) {
  ------------------
  |  Branch (143:9): [True: 0, False: 24]
  ------------------
  144|       |      FDK_ASSERT(0);
  ------------------
  |  |  221|      0|#define FDK_ASSERT(x) assert(x)
  ------------------
  |  Branch (144:7): [Folded, False: 0]
  ------------------
  145|      0|    }
  146|     24|  }
  147|     24|}

_Z10FDKcrcInitP11FDK_CRCINFOjjj:
  229|      7|                const UINT crcStartValue, const UINT crcLen) {
  230|       |  /* crc polynom example:
  231|       |  x^16 + x^15 + x^5 + x^0        (1) 1000 0000 0010 0001 -> 0x8021
  232|       |  x^16 + x^15 + x^2 + x^0        (1) 1000 0000 0000 0101 -> 0x8005
  233|       |  x^16 + x^12 + x^5 + x^0        (1) 0001 0000 0010 0001 -> 0x1021
  234|       |  x^8 + x^4 + x^3 + x^2 + x^0              (1) 0001 1101 -> 0x001d */
  235|       |
  236|      7|  hCrcInfo->crcLen = crcLen;
  237|      7|  hCrcInfo->crcPoly = crcPoly;
  238|      7|  hCrcInfo->startValue = crcStartValue;
  239|      7|  hCrcInfo->crcMask = (crcLen) ? (1 << (crcLen - 1)) : 0;
  ------------------
  |  Branch (239:23): [True: 7, False: 0]
  ------------------
  240|       |
  241|      7|  FDKcrcReset(hCrcInfo);
  242|       |
  243|      7|  hCrcInfo->pCrcLookup =
  244|      7|      0; /* Preset 0 for "crcLen" != 16 or unknown 16-bit polynoms "crcPoly" */
  245|       |
  246|      7|  if (hCrcInfo->crcLen == 16) {
  ------------------
  |  Branch (246:7): [True: 4, False: 3]
  ------------------
  247|      4|    switch (crcPoly) {
  248|      0|      case 0x8021:
  ------------------
  |  Branch (248:7): [True: 0, False: 4]
  ------------------
  249|      0|        hCrcInfo->pCrcLookup = crcLookup_16_15_5_0;
  250|      0|        break;
  251|      4|      case 0x8005:
  ------------------
  |  Branch (251:7): [True: 4, False: 0]
  ------------------
  252|      4|        hCrcInfo->pCrcLookup = crcLookup_16_15_2_0;
  253|      4|        break;
  254|      0|      case 0x1021:
  ------------------
  |  Branch (254:7): [True: 0, False: 4]
  ------------------
  255|      0|        hCrcInfo->pCrcLookup = crcLookup_16_12_5_0;
  256|      0|        break;
  257|      0|      case 0x001d:
  ------------------
  |  Branch (257:7): [True: 0, False: 4]
  ------------------
  258|      0|      default:
  ------------------
  |  Branch (258:7): [True: 0, False: 4]
  ------------------
  259|       |        /* no lookup table */
  260|      0|        break;
  261|      4|    }
  262|      4|  }
  263|      7|}
_Z11FDKcrcResetP11FDK_CRCINFO:
  265|      7|void FDKcrcReset(HANDLE_FDK_CRCINFO hCrcInfo) {
  266|      7|  int i;
  267|       |
  268|      7|  hCrcInfo->crcValue = hCrcInfo->startValue;
  269|       |
  270|     28|  for (i = 0; i < MAX_CRC_REGS; i++) {
  ------------------
  |  |  109|     28|  3 /*!< Maximal number of overlapping crc region in ADTS channel pair element \
  ------------------
  |  Branch (270:15): [True: 21, False: 7]
  ------------------
  271|     21|    hCrcInfo->crcRegData[i].isActive = 0;
  272|     21|  }
  273|      7|  hCrcInfo->regStart = 0;
  274|      7|  hCrcInfo->regStop = 0;
  275|      7|}

_Z15fdkFreeMatrix1DPv:
  119|    150|void fdkFreeMatrix1D(void *p) {
  120|    150|  if (p != NULL) {
  ------------------
  |  Branch (120:7): [True: 150, False: 0]
  ------------------
  121|    150|    FDKfree_L(p);
  122|    150|  }
  123|    150|}
_Z17fdkCallocMatrix1Djj:
  131|    150|void *fdkCallocMatrix1D(UINT dim1, UINT size) { return FDKcalloc(dim1, size); }

_Z28FDK_QmfDomain_ClearRequestedP17FDK_QMF_DOMAIN_GC:
  779|     25|void FDK_QmfDomain_ClearRequested(HANDLE_FDK_QMF_DOMAIN_GC hgc) {
  780|     25|  hgc->qmfDomainExplicitConfig = 0;
  781|     25|  hgc->flags_requested = 0;
  782|     25|  hgc->nInputChannels_requested = 0;
  783|     25|  hgc->nOutputChannels_requested = 0;
  784|     25|  hgc->parkChannel_requested = 0;
  785|     25|  hgc->nBandsAnalysis_requested = 0;
  786|     25|  hgc->nBandsSynthesis_requested = 0;
  787|     25|  hgc->nQmfTimeSlots_requested = 0;
  788|     25|  hgc->nQmfOvTimeSlots_requested = 0;
  789|     25|  hgc->nQmfProcBands_requested = 0;
  790|     25|  hgc->nQmfProcChannels_requested = 0;
  791|     25|}
_Z19FDK_QmfDomain_CloseP14FDK_QMF_DOMAIN:
 1009|     25|void FDK_QmfDomain_Close(HANDLE_FDK_QMF_DOMAIN hqd) {
 1010|     25|  FDK_QmfDomain_FreeWorkBuffer(hqd);
 1011|       |
 1012|     25|  FDK_QmfDomain_FreePersistentMemory(hqd);
 1013|     25|}
FDK_qmf_domain.cpp:_ZL28FDK_QmfDomain_FreeWorkBufferP14FDK_QMF_DOMAIN:
  987|     25|static void FDK_QmfDomain_FreeWorkBuffer(HANDLE_FDK_QMF_DOMAIN hqd) {
  988|     25|  FIXP_DBL **pWorkBuffer = hqd->globalConf.pWorkBuffer;
  989|       |
  990|     25|  if (pWorkBuffer[0]) FreeQmfWorkBufferCore6(&pWorkBuffer[0]);
  ------------------
  |  Branch (990:7): [True: 0, False: 25]
  ------------------
  991|     25|  if (pWorkBuffer[1]) FreeQmfWorkBufferCore1(&pWorkBuffer[1]);
  ------------------
  |  Branch (991:7): [True: 0, False: 25]
  ------------------
  992|     25|  if (pWorkBuffer[2]) FreeQmfWorkBufferCore3(&pWorkBuffer[2]);
  ------------------
  |  Branch (992:7): [True: 0, False: 25]
  ------------------
  993|     25|  if (pWorkBuffer[3]) FreeQmfWorkBufferCore4(&pWorkBuffer[3]);
  ------------------
  |  Branch (993:7): [True: 0, False: 25]
  ------------------
  994|     25|  if (pWorkBuffer[4]) FreeQmfWorkBufferCore7(&pWorkBuffer[4]);
  ------------------
  |  Branch (994:7): [True: 0, False: 25]
  ------------------
  995|     25|}
FDK_qmf_domain.cpp:_ZL34FDK_QmfDomain_FreePersistentMemoryP14FDK_QMF_DOMAIN:
  199|     25|static int FDK_QmfDomain_FreePersistentMemory(HANDLE_FDK_QMF_DOMAIN qd) {
  200|     25|  int err = 0;
  201|     25|  int ch;
  202|       |
  203|    250|  for (ch = 0; ch < ((8) + (1)); ch++) {
  ------------------
  |  Branch (203:16): [True: 225, False: 25]
  ------------------
  204|    225|    if (qd->QmfDomainIn[ch].pAnaQmfStates) {
  ------------------
  |  Branch (204:9): [True: 0, False: 225]
  ------------------
  205|      0|      if (qd->globalConf.nBandsAnalysis == QMF_DOMAIN_ANALYSIS_QMF_BANDS_16) {
  ------------------
  |  |  137|      0|#define QMF_DOMAIN_ANALYSIS_QMF_BANDS_16 (16)
  ------------------
  |  Branch (205:11): [True: 0, False: 0]
  ------------------
  206|      0|        FreeAnaQmfStates16(&qd->QmfDomainIn[ch].pAnaQmfStates);
  207|      0|      } else if (qd->globalConf.nBandsAnalysis ==
  ------------------
  |  Branch (207:18): [True: 0, False: 0]
  ------------------
  208|      0|                 QMF_DOMAIN_ANALYSIS_QMF_BANDS_24) {
  ------------------
  |  |  138|      0|#define QMF_DOMAIN_ANALYSIS_QMF_BANDS_24 (24)
  ------------------
  209|      0|        FreeAnaQmfStates24(&qd->QmfDomainIn[ch].pAnaQmfStates);
  210|      0|      } else if (qd->globalConf.nBandsAnalysis ==
  ------------------
  |  Branch (210:18): [True: 0, False: 0]
  ------------------
  211|      0|                 QMF_DOMAIN_ANALYSIS_QMF_BANDS_32) {
  ------------------
  |  |  139|      0|#define QMF_DOMAIN_ANALYSIS_QMF_BANDS_32 (32)
  ------------------
  212|      0|        FreeAnaQmfStates32(&qd->QmfDomainIn[ch].pAnaQmfStates);
  213|      0|      } else {
  214|      0|        FreeAnaQmfStates(&qd->QmfDomainIn[ch].pAnaQmfStates);
  215|      0|      }
  216|      0|    }
  217|       |
  218|    225|    if (qd->QmfDomainIn[ch].pOverlapBuffer) {
  ------------------
  |  Branch (218:9): [True: 0, False: 225]
  ------------------
  219|      0|      if (qd->globalConf.nQmfOvTimeSlots == QMF_DOMAIN_OV_TIMESLOTS_16) {
  ------------------
  |  |  144|      0|#define QMF_DOMAIN_OV_TIMESLOTS_16 (3)
  ------------------
  |  Branch (219:11): [True: 0, False: 0]
  ------------------
  220|      0|        FreeQmfOverlapBuffer16(&qd->QmfDomainIn[ch].pOverlapBuffer);
  221|      0|      } else if (qd->globalConf.nQmfOvTimeSlots == QMF_DOMAIN_OV_TIMESLOTS_32) {
  ------------------
  |  |  145|      0|#define QMF_DOMAIN_OV_TIMESLOTS_32 (6)
  ------------------
  |  Branch (221:18): [True: 0, False: 0]
  ------------------
  222|      0|        FreeQmfOverlapBuffer32(&qd->QmfDomainIn[ch].pOverlapBuffer);
  223|      0|      } else {
  224|      0|        FreeQmfOverlapBuffer(&qd->QmfDomainIn[ch].pOverlapBuffer);
  225|      0|      }
  226|      0|    }
  227|       |
  228|    225|    if (qd->QmfDomainIn[ch].hQmfSlotsReal) {
  ------------------
  |  Branch (228:9): [True: 0, False: 225]
  ------------------
  229|      0|      if (qd->globalConf.nQmfTimeSlots == QMF_DOMAIN_TIMESLOTS_16) {
  ------------------
  |  |  141|      0|#define QMF_DOMAIN_TIMESLOTS_16 (16)
  ------------------
  |  Branch (229:11): [True: 0, False: 0]
  ------------------
  230|      0|        FreeQmfSlotsReal16(&qd->QmfDomainIn[ch].hQmfSlotsReal);
  231|      0|      } else if (qd->globalConf.nQmfTimeSlots == QMF_DOMAIN_TIMESLOTS_32) {
  ------------------
  |  |  142|      0|#define QMF_DOMAIN_TIMESLOTS_32 (32)
  ------------------
  |  Branch (231:18): [True: 0, False: 0]
  ------------------
  232|      0|        FreeQmfSlotsReal32(&qd->QmfDomainIn[ch].hQmfSlotsReal);
  233|      0|      } else {
  234|      0|        FreeQmfSlotsReal(&qd->QmfDomainIn[ch].hQmfSlotsReal);
  235|      0|      }
  236|      0|    }
  237|       |
  238|    225|    if (qd->QmfDomainIn[ch].hQmfSlotsImag) {
  ------------------
  |  Branch (238:9): [True: 0, False: 225]
  ------------------
  239|      0|      if (qd->globalConf.nQmfTimeSlots == QMF_DOMAIN_TIMESLOTS_16) {
  ------------------
  |  |  141|      0|#define QMF_DOMAIN_TIMESLOTS_16 (16)
  ------------------
  |  Branch (239:11): [True: 0, False: 0]
  ------------------
  240|      0|        FreeQmfSlotsImag16(&qd->QmfDomainIn[ch].hQmfSlotsImag);
  241|      0|      }
  242|      0|      if (qd->globalConf.nQmfTimeSlots == QMF_DOMAIN_TIMESLOTS_32) {
  ------------------
  |  |  142|      0|#define QMF_DOMAIN_TIMESLOTS_32 (32)
  ------------------
  |  Branch (242:11): [True: 0, False: 0]
  ------------------
  243|      0|        FreeQmfSlotsImag32(&qd->QmfDomainIn[ch].hQmfSlotsImag);
  244|      0|      } else {
  245|      0|        FreeQmfSlotsImag(&qd->QmfDomainIn[ch].hQmfSlotsImag);
  246|      0|      }
  247|      0|    }
  248|    225|  }
  249|       |
  250|    250|  for (ch = 0; ch < ((8) + (1)); ch++) {
  ------------------
  |  Branch (250:16): [True: 225, False: 25]
  ------------------
  251|    225|    if (qd->QmfDomainOut[ch].pSynQmfStates) {
  ------------------
  |  Branch (251:9): [True: 0, False: 225]
  ------------------
  252|      0|      FreeSynQmfStates(&qd->QmfDomainOut[ch].pSynQmfStates);
  253|      0|    }
  254|    225|  }
  255|       |
  256|     25|  return err;
  257|     25|}

_Z5f2PowiiPi:
  593|     50|FIXP_DBL f2Pow(const FIXP_DBL exp_m, const INT exp_e, INT *result_e) {
  594|     50|  FIXP_DBL frac_part, result_m;
  595|     50|  INT int_part;
  596|       |
  597|     50|  if (exp_e > 0) {
  ------------------
  |  Branch (597:7): [True: 0, False: 50]
  ------------------
  598|      0|    INT exp_bits = DFRACT_BITS - 1 - exp_e;
  ------------------
  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  ------------------
  599|      0|    int_part = exp_m >> exp_bits;
  600|      0|    frac_part = exp_m - (FIXP_DBL)(int_part << exp_bits);
  601|      0|    frac_part = frac_part << exp_e;
  602|     50|  } else {
  603|     50|    int_part = 0;
  604|     50|    frac_part = exp_m >> -exp_e;
  605|     50|  }
  606|       |
  607|       |  /* Best accuracy is around 0, so try to get there with the fractional part. */
  608|     50|  if (frac_part > FL2FXCONST_DBL(0.5f)) {
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 50, Folded]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 50]
  |  |  ------------------
  |  |  195|     50|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     50|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     50|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (608:7): [True: 0, False: 50]
  ------------------
  609|      0|    int_part = int_part + 1;
  610|      0|    frac_part = frac_part + FL2FXCONST_DBL(-1.0f);
  ------------------
  |  |  192|      0|  (FIXP_DBL)(                                                                \
  |  |  193|      0|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [Folded, False: 0]
  |  |  ------------------
  |  |  194|      0|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|      0|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [True: 0, Folded]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  611|      0|  }
  612|     50|  if (frac_part < FL2FXCONST_DBL(-0.5f)) {
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [Folded, False: 50]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 50]
  |  |  ------------------
  |  |  199|     50|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|     50|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|     50|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|     50|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (612:7): [True: 0, False: 50]
  ------------------
  613|      0|    int_part = int_part - 1;
  614|      0|    frac_part = -(FL2FXCONST_DBL(-1.0f) - frac_part);
  ------------------
  |  |  192|      0|  (FIXP_DBL)(                                                                \
  |  |  193|      0|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [Folded, False: 0]
  |  |  ------------------
  |  |  194|      0|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 0]
  |  |  ------------------
  |  |  195|      0|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|      0|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|      0|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [True: 0, Folded]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  615|      0|  }
  616|       |
  617|       |  /* "+ 1" compensates fMultAddDiv2() of the polynomial evaluation below. */
  618|     50|  *result_e = int_part + 1;
  619|       |
  620|       |  /* Evaluate taylor polynomial which approximates 2^x */
  621|     50|  {
  622|     50|    FIXP_DBL p;
  623|       |
  624|       |    /* result_m ~= 2^frac_part */
  625|     50|    p = frac_part;
  626|       |    /* First taylor series coefficient a_0 = 1.0, scaled by 0.5 due to
  627|       |     * fMultDiv2(). */
  628|     50|    result_m = FL2FXCONST_DBL(1.0f / 2.0f);
  ------------------
  |  |  192|     50|  (FIXP_DBL)(                                                                \
  |  |  193|     50|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 50, Folded]
  |  |  ------------------
  |  |  194|     50|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 50]
  |  |  ------------------
  |  |  195|     50|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     50|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     50|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     50|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     50|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     50|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     50|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  629|    300|    for (INT i = 0; i < POW2_PRECISION; i++) {
  ------------------
  |  |  128|    300|#define POW2_PRECISION 5
  ------------------
  |  Branch (629:21): [True: 250, False: 50]
  ------------------
  630|       |      /* next taylor series term: a_i * x^i, x=0 */
  631|    250|      result_m = fMultAddDiv2(result_m, pow2Coeff[i], p);
  632|    250|      p = fMult(p, frac_part);
  633|    250|    }
  634|     50|  }
  635|     50|  return result_m;
  636|     50|}
_Z4fPowiiiiPi:
  649|     50|              INT *result_e) {
  650|     50|  INT ans_lg2_e, baselg2_e;
  651|     50|  FIXP_DBL base_lg2, ans_lg2, result;
  652|       |
  653|     50|  if (base_m <= (FIXP_DBL)0) {
  ------------------
  |  Branch (653:7): [True: 0, False: 50]
  ------------------
  654|      0|    result = (FIXP_DBL)0;
  655|      0|    *result_e = 0;
  656|      0|    return result;
  657|      0|  }
  658|       |
  659|       |  /* Calc log2 of base */
  660|     50|  base_lg2 = fLog2(base_m, base_e, &baselg2_e);
  661|       |
  662|       |  /* Prepare exp */
  663|     50|  {
  664|     50|    INT leadingBits;
  665|       |
  666|     50|    leadingBits = CountLeadingBits(fAbs(exp_m));
  ------------------
  |  |  309|     50|#define CountLeadingBits(x) fixnorm_D(x)
  ------------------
  667|     50|    exp_m = exp_m << leadingBits;
  668|     50|    exp_e -= leadingBits;
  669|     50|  }
  670|       |
  671|       |  /* Calc base pow exp */
  672|     50|  ans_lg2 = fMult(base_lg2, exp_m);
  673|     50|  ans_lg2_e = exp_e + baselg2_e;
  674|       |
  675|       |  /* Calc antilog */
  676|     50|  result = f2Pow(ans_lg2, ans_lg2_e, result_e);
  677|       |
  678|     50|  return result;
  679|     50|}

_Z16adtsRead_CrcInitP11STRUCT_ADTS:
  109|      4|{
  110|      4|  FDKcrcInit(&pAdts->crcInfo, 0x8005, 0xFFFF, 16);
  111|      4|}

_Z19CProgramConfig_InitP14CProgramConfig:
  186|     25|void CProgramConfig_Init(CProgramConfig *pPce) {
  187|     25|  FDKmemclear(pPce, sizeof(CProgramConfig));
  188|     25|  pPce->SamplingFrequencyIndex = 0xf;
  189|     25|}

_Z15drmRead_CrcInitP10STRUCT_DRM:
  108|      3|{
  109|      3|  FDK_ASSERT(pDrm != NULL);
  ------------------
  |  |  221|      3|#define FDK_ASSERT(x) assert(x)
  ------------------
  |  Branch (109:3): [True: 3, False: 0]
  ------------------
  110|       |
  111|      3|  FDKcrcInit(&pDrm->crcInfo, 0x001d, 0xFFFF, 8);
  112|      3|}

_Z17transportDec_Open14TRANSPORT_TYPEjj:
  192|     62|                                      const UINT flags, const UINT nrOfLayers) {
  193|     62|  HANDLE_TRANSPORTDEC hInput;
  194|       |
  195|     62|  hInput = GetRam_TransportDecoder(0);
  196|     62|  if (hInput == NULL) {
  ------------------
  |  Branch (196:7): [True: 0, False: 62]
  ------------------
  197|      0|    return NULL;
  198|      0|  }
  199|       |
  200|       |  /* Init transportDec struct. */
  201|     62|  hInput->transportFmt = transportFmt;
  202|       |
  203|     62|  switch (transportFmt) {
  204|      3|    case TT_MP4_ADIF:
  ------------------
  |  Branch (204:5): [True: 3, False: 59]
  ------------------
  205|      3|      break;
  206|       |
  207|      4|    case TT_MP4_ADTS:
  ------------------
  |  Branch (207:5): [True: 4, False: 58]
  ------------------
  208|      4|      if (flags & TP_FLAG_MPEG4)
  ------------------
  |  |  322|      4|#define TP_FLAG_MPEG4 1
  ------------------
  |  Branch (208:11): [True: 4, False: 0]
  ------------------
  209|      4|        hInput->parser.adts.decoderCanDoMpeg4 = 1;
  210|      0|      else
  211|      0|        hInput->parser.adts.decoderCanDoMpeg4 = 0;
  212|      4|      adtsRead_CrcInit(&hInput->parser.adts);
  213|      4|      hInput->parser.adts.BufferFullnesStartFlag = 1;
  214|      4|      hInput->numberOfRawDataBlocks = 0;
  215|      4|      break;
  216|       |
  217|      3|    case TT_DRM:
  ------------------
  |  Branch (217:5): [True: 3, False: 59]
  ------------------
  218|      3|      drmRead_CrcInit(&hInput->parser.drm);
  219|      3|      break;
  220|       |
  221|      4|    case TT_MP4_LATM_MCP0:
  ------------------
  |  Branch (221:5): [True: 4, False: 58]
  ------------------
  222|      9|    case TT_MP4_LATM_MCP1:
  ------------------
  |  Branch (222:5): [True: 5, False: 57]
  ------------------
  223|      9|      hInput->parser.latm.usacExplicitCfgChanged = 0;
  224|      9|      hInput->parser.latm.applyAsc = 1;
  225|      9|      break;
  226|      3|    case TT_MP4_LOAS:
  ------------------
  |  Branch (226:5): [True: 3, False: 59]
  ------------------
  227|      3|      hInput->parser.latm.usacExplicitCfgChanged = 0;
  228|      3|      hInput->parser.latm.applyAsc = 1;
  229|      3|      break;
  230|      3|    case TT_MP4_RAW:
  ------------------
  |  Branch (230:5): [True: 3, False: 59]
  ------------------
  231|      3|      break;
  232|       |
  233|     37|    default:
  ------------------
  |  Branch (233:5): [True: 37, False: 25]
  ------------------
  234|     37|      FreeRam_TransportDecoder(&hInput);
  235|     37|      hInput = NULL;
  236|     37|      break;
  237|     62|  }
  238|       |
  239|     62|  if (hInput != NULL) {
  ------------------
  |  Branch (239:7): [True: 25, False: 37]
  ------------------
  240|       |    /* Create bitstream */
  241|     25|    {
  242|     25|      hInput->bsBuffer = GetRam_TransportDecoderBuffer(0);
  243|     25|      if (hInput->bsBuffer == NULL) {
  ------------------
  |  Branch (243:11): [True: 0, False: 25]
  ------------------
  244|      0|        transportDec_Close(&hInput);
  245|      0|        return NULL;
  246|      0|      }
  247|     25|      if (nrOfLayers > 1) {
  ------------------
  |  Branch (247:11): [True: 0, False: 25]
  ------------------
  248|      0|        transportDec_Close(&hInput);
  249|      0|        return NULL;
  250|      0|      }
  251|     49|      for (UINT i = 0; i < nrOfLayers; i++) {
  ------------------
  |  Branch (251:24): [True: 24, False: 25]
  ------------------
  252|     24|        FDKinitBitStream(&hInput->bitStream[i], hInput->bsBuffer, (8192 * 4), 0,
  253|     24|                         BS_READER);
  254|     24|      }
  255|     25|    }
  256|      0|    hInput->burstPeriod = 0;
  257|     25|  }
  258|       |
  259|     62|  return hInput;
  260|     62|}
_Z32transportDec_RegisterAscCallbackP12TRANSPORTDECPFiPvPK21CSAudioSpecificConfighPhES1_:
  571|     25|                                     void *user_data) {
  572|     25|  if (hTpDec == NULL) {
  ------------------
  |  Branch (572:7): [True: 0, False: 25]
  ------------------
  573|      0|    return -1;
  574|      0|  }
  575|     25|  hTpDec->callbacks.cbUpdateConfig = cbUpdateConfig;
  576|     25|  hTpDec->callbacks.cbUpdateConfigData = user_data;
  577|     25|  return 0;
  578|     25|}
_Z36transportDec_RegisterFreeMemCallbackP12TRANSPORTDECPFiPvPK21CSAudioSpecificConfigES1_:
  582|     25|                                         void *user_data) {
  583|     25|  if (hTpDec == NULL) {
  ------------------
  |  Branch (583:7): [True: 0, False: 25]
  ------------------
  584|      0|    return -1;
  585|      0|  }
  586|     25|  hTpDec->callbacks.cbFreeMem = cbFreeMem;
  587|     25|  hTpDec->callbacks.cbFreeMemData = user_data;
  588|     25|  return 0;
  589|     25|}
_Z42transportDec_RegisterCtrlCFGChangeCallbackP12TRANSPORTDECPFiPvPK14CCtrlCFGChangeES1_:
  593|     25|    void *user_data) {
  594|     25|  if (hTpDec == NULL) {
  ------------------
  |  Branch (594:7): [True: 0, False: 25]
  ------------------
  595|      0|    return -1;
  596|      0|  }
  597|     25|  hTpDec->callbacks.cbCtrlCFGChange = cbCtrlCFGChange;
  598|     25|  hTpDec->callbacks.cbCtrlCFGChangeData = user_data;
  599|     25|  return 0;
  600|     25|}
_Z32transportDec_RegisterSscCallbackP12TRANSPORTDECPFiPvP13FDK_BITSTREAM17AUDIO_OBJECT_TYPEiiiiiihPhES1_:
  603|     25|                                     const cbSsc_t cbSsc, void *user_data) {
  604|     25|  if (hTpDec == NULL) {
  ------------------
  |  Branch (604:7): [True: 0, False: 25]
  ------------------
  605|      0|    return -1;
  606|      0|  }
  607|     25|  hTpDec->callbacks.cbSsc = cbSsc;
  608|     25|  hTpDec->callbacks.cbSscData = user_data;
  609|     25|  return 0;
  610|     25|}
_Z32transportDec_RegisterSbrCallbackP12TRANSPORTDECPFiPvP13FDK_BITSTREAMiii17AUDIO_OBJECT_TYPE14MP4_ELEMENT_IDihhhPhiES1_:
  613|     25|                                     const cbSbr_t cbSbr, void *user_data) {
  614|     25|  if (hTpDec == NULL) {
  ------------------
  |  Branch (614:7): [True: 0, False: 25]
  ------------------
  615|      0|    return -1;
  616|      0|  }
  617|     25|  hTpDec->callbacks.cbSbr = cbSbr;
  618|     25|  hTpDec->callbacks.cbSbrData = user_data;
  619|     25|  return 0;
  620|     25|}
_Z41transportDec_RegisterUniDrcConfigCallbackP12TRANSPORTDECPFiPvP13FDK_BITSTREAMiiii17AUDIO_OBJECT_TYPEES1_Pj:
  635|     25|                                              UINT *pLoudnessInfoSetPosition) {
  636|     25|  if (hTpDec == NULL) {
  ------------------
  |  Branch (636:7): [True: 0, False: 25]
  ------------------
  637|      0|    return -1;
  638|      0|  }
  639|       |
  640|     25|  hTpDec->callbacks.cbUniDrc = cbUniDrc;
  641|     25|  hTpDec->callbacks.cbUniDrcData = user_data;
  642|       |
  643|     25|  hTpDec->pLoudnessInfoSetPosition = pLoudnessInfoSetPosition;
  644|     25|  return 0;
  645|     25|}
_Z18transportDec_ClosePP12TRANSPORTDEC:
 1754|     25|void transportDec_Close(HANDLE_TRANSPORTDEC *phTp) {
 1755|     25|  if (phTp != NULL) {
  ------------------
  |  Branch (1755:7): [True: 25, False: 0]
  ------------------
 1756|     25|    if (*phTp != NULL) {
  ------------------
  |  Branch (1756:9): [True: 25, False: 0]
  ------------------
 1757|     25|      FreeRam_TransportDecoderBuffer(&(*phTp)->bsBuffer);
 1758|     25|      FreeRam_TransportDecoder(phTp);
 1759|     25|    }
 1760|     25|  }
 1761|     25|}

_Z17pcmLimiter_Createjjijj:
  114|     25|                               UINT maxSampleRate) {
  115|     25|  TDLimiterPtr limiter = NULL;
  116|     25|  unsigned int attack, release;
  117|     25|  FIXP_DBL attackConst, releaseConst, exponent;
  118|     25|  INT e_ans;
  119|       |
  120|       |  /* calc attack and release time in samples */
  121|     25|  attack = (unsigned int)(maxAttackMs * maxSampleRate / 1000);
  122|     25|  release = (unsigned int)(releaseMs * maxSampleRate / 1000);
  123|       |
  124|       |  /* alloc limiter struct */
  125|     25|  limiter = (TDLimiterPtr)FDKcalloc(1, sizeof(struct TDLimiter));
  126|     25|  if (!limiter) return NULL;
  ------------------
  |  Branch (126:7): [True: 0, False: 25]
  ------------------
  127|       |
  128|       |  /* alloc max and delay buffers */
  129|     25|  limiter->maxBuf = (FIXP_DBL*)FDKcalloc(attack + 1, sizeof(FIXP_DBL));
  130|     25|  limiter->delayBuf =
  131|     25|      (FIXP_DBL*)FDKcalloc(attack * maxChannels, sizeof(FIXP_DBL));
  132|       |
  133|     25|  if (!limiter->maxBuf || !limiter->delayBuf) {
  ------------------
  |  Branch (133:7): [True: 0, False: 25]
  |  Branch (133:27): [True: 0, False: 25]
  ------------------
  134|      0|    pcmLimiter_Destroy(limiter);
  135|      0|    return NULL;
  136|      0|  }
  137|       |
  138|       |  /* attackConst = pow(0.1, 1.0 / (attack + 1)) */
  139|     25|  exponent = invFixp(attack + 1);
  140|     25|  attackConst = fPow(FL2FXCONST_DBL(0.1f), 0, exponent, 0, &e_ans);
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  141|     25|  attackConst = scaleValue(attackConst, e_ans);
  142|       |
  143|       |  /* releaseConst  = (float)pow(0.1, 1.0 / (release + 1)) */
  144|     25|  exponent = invFixp(release + 1);
  145|     25|  releaseConst = fPow(FL2FXCONST_DBL(0.1f), 0, exponent, 0, &e_ans);
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  146|     25|  releaseConst = scaleValue(releaseConst, e_ans);
  147|       |
  148|       |  /* init parameters */
  149|     25|  limiter->attackMs = maxAttackMs;
  150|     25|  limiter->maxAttackMs = maxAttackMs;
  151|     25|  limiter->releaseMs = releaseMs;
  152|     25|  limiter->attack = attack;
  153|     25|  limiter->attackConst = attackConst;
  154|     25|  limiter->releaseConst = releaseConst;
  155|     25|  limiter->threshold = threshold;
  156|     25|  limiter->channels = maxChannels;
  157|     25|  limiter->maxChannels = maxChannels;
  158|     25|  limiter->sampleRate = maxSampleRate;
  159|     25|  limiter->maxSampleRate = maxSampleRate;
  160|       |
  161|     25|  pcmLimiter_Reset(limiter);
  162|       |
  163|     25|  return limiter;
  164|     25|}
pcmLimiter_Reset:
  370|     25|TDLIMITER_ERROR pcmLimiter_Reset(TDLimiterPtr limiter) {
  371|     25|  if (limiter != NULL) {
  ------------------
  |  Branch (371:7): [True: 25, False: 0]
  ------------------
  372|     25|    limiter->maxBufIdx = 0;
  373|     25|    limiter->delayBufIdx = 0;
  374|     25|    limiter->max = (FIXP_DBL)0;
  375|     25|    limiter->cor = FL2FXCONST_DBL(1.0f / (1 << 1));
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  376|     25|    limiter->smoothState0 = FL2FXCONST_DBL(1.0f / (1 << 1));
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  377|     25|    limiter->minGain = FL2FXCONST_DBL(1.0f / (1 << 1));
  ------------------
  |  |  192|     25|  (FIXP_DBL)(                                                                \
  |  |  193|     25|      ((val) >= 0)                                                           \
  |  |  ------------------
  |  |  |  Branch (193:7): [True: 25, Folded]
  |  |  ------------------
  |  |  194|     25|          ? ((((double)(val) * (DFRACT_FIX_SCALE) + 0.5) >=                  \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (194:14): [Folded, False: 25]
  |  |  ------------------
  |  |  195|     25|              (double)(MAXVAL_DBL))                                          \
  |  |  ------------------
  |  |  |  |  156|     25|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  196|     25|                 ? (LONG)(MAXVAL_DBL)                                        \
  |  |  ------------------
  |  |  |  |  156|      0|  ((signed)0x7FFFFFFF) /* this has to be synchronized to DFRACT_BITS */
  |  |  ------------------
  |  |  197|     25|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE) + 0.5)) \
  |  |  ------------------
  |  |  |  |  147|     25|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|     25|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  198|     25|          : ((((double)(val) * (DFRACT_FIX_SCALE)-0.5) <=                    \
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (198:14): [Folded, False: 0]
  |  |  ------------------
  |  |  199|      0|              (double)(MINVAL_DBL_CONST))                                    \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  200|      0|                 ? (LONG)(MINVAL_DBL_CONST)                                  \
  |  |  ------------------
  |  |  |  |  176|      0|#define MINVAL_DBL_CONST MINVAL_DBL
  |  |  |  |  ------------------
  |  |  |  |  |  |  158|      0|  ((signed)0x80000000) /* this has to be synchronized to DFRACT_BITS */
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  201|      0|                 : (LONG)((double)(val) * (double)(DFRACT_FIX_SCALE)-0.5)))
  |  |  ------------------
  |  |  |  |  147|      0|#define DFRACT_FIX_SCALE ((INT64(1) << (DFRACT_BITS - 1)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  113|      0|#define DFRACT_BITS 32 /* double precision */
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  378|     25|    limiter->scaling = 0;
  379|       |
  380|     25|    FDKmemset(limiter->maxBuf, 0, (limiter->attack + 1) * sizeof(FIXP_DBL));
  381|     25|    FDKmemset(limiter->delayBuf, 0,
  382|     25|              limiter->attack * limiter->channels * sizeof(FIXP_DBL));
  383|     25|  } else {
  384|      0|    return TDLIMIT_INVALID_HANDLE;
  385|      0|  }
  386|       |
  387|     25|  return TDLIMIT_OK;
  388|     25|}
pcmLimiter_Destroy:
  391|     25|TDLIMITER_ERROR pcmLimiter_Destroy(TDLimiterPtr limiter) {
  392|     25|  if (limiter != NULL) {
  ------------------
  |  Branch (392:7): [True: 25, False: 0]
  ------------------
  393|     25|    FDKfree(limiter->maxBuf);
  394|     25|    FDKfree(limiter->delayBuf);
  395|       |
  396|     25|    FDKfree(limiter);
  397|     25|  } else {
  398|      0|    return TDLIMIT_INVALID_HANDLE;
  399|      0|  }
  400|     25|  return TDLIMIT_OK;
  401|     25|}

pcmDmx_Open:
 1622|     25|PCMDMX_ERROR pcmDmx_Open(HANDLE_PCM_DOWNMIX *pSelf) {
 1623|     25|  HANDLE_PCM_DOWNMIX self;
 1624|       |
 1625|     25|  if (pSelf == NULL) {
  ------------------
  |  Branch (1625:7): [True: 0, False: 25]
  ------------------
 1626|      0|    return (PCMDMX_INVALID_HANDLE);
 1627|      0|  }
 1628|       |
 1629|     25|  *pSelf = NULL;
 1630|       |
 1631|     25|  self = (HANDLE_PCM_DOWNMIX)GetPcmDmxInstance(0);
 1632|     25|  if (self == NULL) {
  ------------------
  |  Branch (1632:7): [True: 0, False: 25]
  ------------------
 1633|      0|    return (PCMDMX_OUT_OF_MEMORY);
 1634|      0|  }
 1635|       |
 1636|       |  /* Reset the full instance */
 1637|     25|  pcmDmx_Reset(self, PCMDMX_RESET_FULL);
  ------------------
  |  |  325|     25|#define PCMDMX_RESET_FULL (PCMDMX_RESET_PARAMS | PCMDMX_RESET_BS_DATA)
  |  |  ------------------
  |  |  |  |  323|     25|#define PCMDMX_RESET_PARAMS (1)
  |  |  ------------------
  |  |               #define PCMDMX_RESET_FULL (PCMDMX_RESET_PARAMS | PCMDMX_RESET_BS_DATA)
  |  |  ------------------
  |  |  |  |  324|     25|#define PCMDMX_RESET_BS_DATA (2)
  |  |  ------------------
  ------------------
 1638|       |
 1639|     25|  *pSelf = self;
 1640|       |
 1641|     25|  return (PCMDMX_OK);
 1642|     25|}
pcmDmx_Reset:
 1649|     25|PCMDMX_ERROR pcmDmx_Reset(HANDLE_PCM_DOWNMIX self, UINT flags) {
 1650|     25|  if (self == NULL) {
  ------------------
  |  Branch (1650:7): [True: 0, False: 25]
  ------------------
 1651|      0|    return (PCMDMX_INVALID_HANDLE);
 1652|      0|  }
 1653|       |
 1654|     25|  if (flags & PCMDMX_RESET_PARAMS) {
  ------------------
  |  |  323|     25|#define PCMDMX_RESET_PARAMS (1)
  ------------------
  |  Branch (1654:7): [True: 25, False: 0]
  ------------------
 1655|     25|    PCM_DMX_USER_PARAMS *pParams = &self->userParams;
 1656|       |
 1657|     25|    pParams->dualChannelMode = STEREO_MODE;
 1658|     25|    pParams->pseudoSurrMode = NEVER_DO_PS_DMX;
 1659|     25|    pParams->numOutChannelsMax = (6);
 1660|     25|    pParams->numOutChannelsMin = (0);
 1661|     25|    pParams->frameDelay = 0;
 1662|     25|    pParams->expiryFrame = (0);
 1663|       |
 1664|     25|    self->applyProcessing = 0;
 1665|     25|  }
 1666|       |
 1667|     25|  if (flags & PCMDMX_RESET_BS_DATA) {
  ------------------
  |  |  324|     25|#define PCMDMX_RESET_BS_DATA (2)
  ------------------
  |  Branch (1667:7): [True: 25, False: 0]
  ------------------
 1668|     25|    int slot;
 1669|       |    /* Init all slots with a default set */
 1670|     75|    for (slot = 0; slot <= (1); slot += 1) {
  ------------------
  |  Branch (1670:20): [True: 50, False: 25]
  ------------------
 1671|     50|      FDKmemcpy(&self->bsMetaData[slot], &dfltMetaData,
 1672|     50|                sizeof(DMX_BS_META_DATA));
 1673|     50|    }
 1674|     25|  }
 1675|       |
 1676|     25|  return (PCMDMX_OK);
 1677|     25|}
pcmDmx_SetParam:
 1686|     25|                             const INT value) {
 1687|     25|  switch (param) {
 1688|      0|    case DMX_PROFILE_SETTING:
  ------------------
  |  Branch (1688:5): [True: 0, False: 25]
  ------------------
 1689|      0|      switch ((DMX_PROFILE_TYPE)value) {
 1690|      0|        case DMX_PRFL_STANDARD:
  ------------------
  |  Branch (1690:9): [True: 0, False: 0]
  ------------------
 1691|      0|        case DMX_PRFL_MATRIX_MIX:
  ------------------
  |  Branch (1691:9): [True: 0, False: 0]
  ------------------
 1692|      0|        case DMX_PRFL_FORCE_MATRIX_MIX:
  ------------------
  |  Branch (1692:9): [True: 0, False: 0]
  ------------------
 1693|      0|        case DMX_PRFL_ARIB_JAPAN:
  ------------------
  |  Branch (1693:9): [True: 0, False: 0]
  ------------------
 1694|      0|          break;
 1695|      0|        default:
  ------------------
  |  Branch (1695:9): [True: 0, False: 0]
  ------------------
 1696|      0|          return (PCMDMX_UNABLE_TO_SET_PARAM);
 1697|      0|      }
 1698|      0|      if (self == NULL) return (PCMDMX_INVALID_HANDLE);
  ------------------
  |  Branch (1698:11): [True: 0, False: 0]
  ------------------
 1699|      0|      self->userParams.dmxProfile = (DMX_PROFILE_TYPE)value;
 1700|      0|      break;
 1701|       |
 1702|      0|    case DMX_BS_DATA_EXPIRY_FRAME:
  ------------------
  |  Branch (1702:5): [True: 0, False: 25]
  ------------------
 1703|      0|      if (self == NULL) return (PCMDMX_INVALID_HANDLE);
  ------------------
  |  Branch (1703:11): [True: 0, False: 0]
  ------------------
 1704|      0|      self->userParams.expiryFrame = (value > 0) ? (UINT)value : 0;
  ------------------
  |  Branch (1704:38): [True: 0, False: 0]
  ------------------
 1705|      0|      break;
 1706|       |
 1707|     25|    case DMX_BS_DATA_DELAY:
  ------------------
  |  Branch (1707:5): [True: 25, False: 0]
  ------------------
 1708|     25|      if ((value > (1)) || (value < 0)) {
  ------------------
  |  Branch (1708:11): [True: 0, False: 25]
  |  Branch (1708:28): [True: 0, False: 25]
  ------------------
 1709|      0|        return (PCMDMX_UNABLE_TO_SET_PARAM);
 1710|      0|      }
 1711|     25|      if (self == NULL) {
  ------------------
  |  Branch (1711:11): [True: 0, False: 25]
  ------------------
 1712|      0|        return (PCMDMX_INVALID_HANDLE);
 1713|      0|      }
 1714|     25|      self->userParams.frameDelay = (UCHAR)value;
 1715|     25|      break;
 1716|       |
 1717|      0|    case MIN_NUMBER_OF_OUTPUT_CHANNELS:
  ------------------
  |  Branch (1717:5): [True: 0, False: 25]
  ------------------
 1718|      0|      switch (value) { /* supported output channels */
 1719|      0|        case -1:
  ------------------
  |  Branch (1719:9): [True: 0, False: 0]
  ------------------
 1720|      0|        case 0:
  ------------------
  |  Branch (1720:9): [True: 0, False: 0]
  ------------------
 1721|      0|        case ONE_CHANNEL:
  ------------------
  |  |  173|      0|#define ONE_CHANNEL (1)
  ------------------
  |  Branch (1721:9): [True: 0, False: 0]
  ------------------
 1722|      0|        case TWO_CHANNEL:
  ------------------
  |  |  174|      0|#define TWO_CHANNEL (2)
  ------------------
  |  Branch (1722:9): [True: 0, False: 0]
  ------------------
 1723|      0|        case SIX_CHANNEL:
  ------------------
  |  |  175|      0|#define SIX_CHANNEL (6)
  ------------------
  |  Branch (1723:9): [True: 0, False: 0]
  ------------------
 1724|      0|        case EIGHT_CHANNEL:
  ------------------
  |  |  176|      0|#define EIGHT_CHANNEL (8)
  ------------------
  |  Branch (1724:9): [True: 0, False: 0]
  ------------------
 1725|      0|          break;
 1726|      0|        default:
  ------------------
  |  Branch (1726:9): [True: 0, False: 0]
  ------------------
 1727|      0|          return (PCMDMX_UNABLE_TO_SET_PARAM);
 1728|      0|      }
 1729|      0|      if (self == NULL) return (PCMDMX_INVALID_HANDLE);
  ------------------
  |  Branch (1729:11): [True: 0, False: 0]
  ------------------
 1730|       |      /* Store the new value */
 1731|      0|      self->userParams.numOutChannelsMin = (value > 0) ? (SHORT)value : -1;
  ------------------
  |  Branch (1731:44): [True: 0, False: 0]
  ------------------
 1732|      0|      if ((value > 0) && (self->userParams.numOutChannelsMax > 0) &&
  ------------------
  |  Branch (1732:11): [True: 0, False: 0]
  |  Branch (1732:26): [True: 0, False: 0]
  ------------------
 1733|      0|          (value > self->userParams
  ------------------
  |  Branch (1733:11): [True: 0, False: 0]
  ------------------
 1734|      0|                       .numOutChannelsMax)) { /* MIN > MAX would be an invalid
 1735|       |                                                 state. Thus set MAX = MIN in
 1736|       |                                                 this case. */
 1737|      0|        self->userParams.numOutChannelsMax = self->userParams.numOutChannelsMin;
 1738|      0|      }
 1739|      0|      break;
 1740|       |
 1741|      0|    case MAX_NUMBER_OF_OUTPUT_CHANNELS:
  ------------------
  |  Branch (1741:5): [True: 0, False: 25]
  ------------------
 1742|      0|      switch (value) { /* supported output channels */
 1743|      0|        case -1:
  ------------------
  |  Branch (1743:9): [True: 0, False: 0]
  ------------------
 1744|      0|        case 0:
  ------------------
  |  Branch (1744:9): [True: 0, False: 0]
  ------------------
 1745|      0|        case ONE_CHANNEL:
  ------------------
  |  |  173|      0|#define ONE_CHANNEL (1)
  ------------------
  |  Branch (1745:9): [True: 0, False: 0]
  ------------------
 1746|      0|        case TWO_CHANNEL:
  ------------------
  |  |  174|      0|#define TWO_CHANNEL (2)
  ------------------
  |  Branch (1746:9): [True: 0, False: 0]
  ------------------
 1747|      0|        case SIX_CHANNEL:
  ------------------
  |  |  175|      0|#define SIX_CHANNEL (6)
  ------------------
  |  Branch (1747:9): [True: 0, False: 0]
  ------------------
 1748|      0|        case EIGHT_CHANNEL:
  ------------------
  |  |  176|      0|#define EIGHT_CHANNEL (8)
  ------------------
  |  Branch (1748:9): [True: 0, False: 0]
  ------------------
 1749|      0|          break;
 1750|      0|        default:
  ------------------
  |  Branch (1750:9): [True: 0, False: 0]
  ------------------
 1751|      0|          return (PCMDMX_UNABLE_TO_SET_PARAM);
 1752|      0|      }
 1753|      0|      if (self == NULL) return (PCMDMX_INVALID_HANDLE);
  ------------------
  |  Branch (1753:11): [True: 0, False: 0]
  ------------------
 1754|       |      /* Store the new value */
 1755|      0|      self->userParams.numOutChannelsMax = (value > 0) ? (SHORT)value : -1;
  ------------------
  |  Branch (1755:44): [True: 0, False: 0]
  ------------------
 1756|      0|      if ((value > 0) &&
  ------------------
  |  Branch (1756:11): [True: 0, False: 0]
  ------------------
 1757|      0|          (value < self->userParams
  ------------------
  |  Branch (1757:11): [True: 0, False: 0]
  ------------------
 1758|      0|                       .numOutChannelsMin)) { /* MAX < MIN would be an invalid
 1759|       |                                                 state. Thus set MIN = MAX in
 1760|       |                                                 this case. */
 1761|      0|        self->userParams.numOutChannelsMin = self->userParams.numOutChannelsMax;
 1762|      0|      }
 1763|      0|      break;
 1764|       |
 1765|      0|    case DMX_DUAL_CHANNEL_MODE:
  ------------------
  |  Branch (1765:5): [True: 0, False: 25]
  ------------------
 1766|      0|      switch ((DUAL_CHANNEL_MODE)value) {
 1767|      0|        case STEREO_MODE:
  ------------------
  |  Branch (1767:9): [True: 0, False: 0]
  ------------------
 1768|      0|        case CH1_MODE:
  ------------------
  |  Branch (1768:9): [True: 0, False: 0]
  ------------------
 1769|      0|        case CH2_MODE:
  ------------------
  |  Branch (1769:9): [True: 0, False: 0]
  ------------------
 1770|      0|        case MIXED_MODE:
  ------------------
  |  Branch (1770:9): [True: 0, False: 0]
  ------------------
 1771|      0|          break;
 1772|      0|        default:
  ------------------
  |  Branch (1772:9): [True: 0, False: 0]
  ------------------
 1773|      0|          return (PCMDMX_UNABLE_TO_SET_PARAM);
 1774|      0|      }
 1775|      0|      if (self == NULL) return (PCMDMX_INVALID_HANDLE);
  ------------------
  |  Branch (1775:11): [True: 0, False: 0]
  ------------------
 1776|      0|      self->userParams.dualChannelMode = (DUAL_CHANNEL_MODE)value;
 1777|      0|      self->applyProcessing = ((DUAL_CHANNEL_MODE)value != STEREO_MODE)
  ------------------
  |  Branch (1777:31): [True: 0, False: 0]
  ------------------
 1778|      0|                                  ? 1
 1779|      0|                                  : 0; /* Force processing if necessary. */
 1780|      0|      break;
 1781|       |
 1782|      0|    case DMX_PSEUDO_SURROUND_MODE:
  ------------------
  |  Branch (1782:5): [True: 0, False: 25]
  ------------------
 1783|      0|      switch ((PSEUDO_SURROUND_MODE)value) {
 1784|      0|        case NEVER_DO_PS_DMX:
  ------------------
  |  Branch (1784:9): [True: 0, False: 0]
  ------------------
 1785|      0|        case AUTO_PS_DMX:
  ------------------
  |  Branch (1785:9): [True: 0, False: 0]
  ------------------
 1786|      0|        case FORCE_PS_DMX:
  ------------------
  |  Branch (1786:9): [True: 0, False: 0]
  ------------------
 1787|      0|          break;
 1788|      0|        default:
  ------------------
  |  Branch (1788:9): [True: 0, False: 0]
  ------------------
 1789|      0|          return (PCMDMX_UNABLE_TO_SET_PARAM);
 1790|      0|      }
 1791|      0|      if (self == NULL) return (PCMDMX_INVALID_HANDLE);
  ------------------
  |  Branch (1791:11): [True: 0, False: 0]
  ------------------
 1792|      0|      self->userParams.pseudoSurrMode = (PSEUDO_SURROUND_MODE)value;
 1793|      0|      break;
 1794|       |
 1795|      0|    default:
  ------------------
  |  Branch (1795:5): [True: 0, False: 25]
  ------------------
 1796|      0|      return (PCMDMX_UNKNOWN_PARAM);
 1797|     25|  }
 1798|       |
 1799|     25|  return (PCMDMX_OK);
 1800|     25|}
pcmDmx_Close:
 2635|     25|PCMDMX_ERROR pcmDmx_Close(HANDLE_PCM_DOWNMIX *pSelf) {
 2636|     25|  if (pSelf == NULL) {
  ------------------
  |  Branch (2636:7): [True: 0, False: 25]
  ------------------
 2637|      0|    return (PCMDMX_INVALID_HANDLE);
 2638|      0|  }
 2639|       |
 2640|     25|  FreePcmDmxInstance(pSelf);
 2641|     25|  *pSelf = NULL;
 2642|       |
 2643|     25|  return (PCMDMX_OK);
 2644|     25|}

_Z23SpatialDecCreateBsFrameP23SPATIAL_BS_FRAME_structP11BS_LL_STATE:
 2110|     25|                                     BS_LL_STATE *llState) {
 2111|     25|  SPATIAL_BS_FRAME *pBs = bsFrame;
 2112|       |
 2113|     25|  const int maxNumOtt = MAX_NUM_OTT;
  ------------------
  |  |  115|     25|#define MAX_NUM_OTT (5)
  ------------------
 2114|     25|  const int maxNumInputChannels = MAX_INPUT_CHANNELS;
  ------------------
  |  |  110|     25|#define MAX_INPUT_CHANNELS 1
  ------------------
 2115|       |
 2116|     25|  FDK_ALLOCATE_MEMORY_1D_P(
  ------------------
  |  |  160|     25|  if (((a) = (ptype)fdkCallocMatrix1D((dim1), sizeof(type))) == NULL) { \
  |  |  ------------------
  |  |  |  Branch (160:7): [True: 0, False: 25]
  |  |  ------------------
  |  |  161|      0|    goto bail;                                                          \
  |  |  162|      0|  }
  ------------------
 2117|     25|      pBs->cmpOttIPDidx, maxNumOtt * MAX_PARAMETER_SETS * MAX_PARAMETER_BANDS,
 2118|     25|      SCHAR, SCHAR(*)[MAX_PARAMETER_SETS][MAX_PARAMETER_BANDS])
 2119|       |
 2120|       |  /* Arbitrary Downmix */
 2121|     25|  FDK_ALLOCATE_MEMORY_1D_P(
  ------------------
  |  |  160|     25|  if (((a) = (ptype)fdkCallocMatrix1D((dim1), sizeof(type))) == NULL) { \
  |  |  ------------------
  |  |  |  Branch (160:7): [True: 0, False: 25]
  |  |  ------------------
  |  |  161|      0|    goto bail;                                                          \
  |  |  162|      0|  }
  ------------------
 2122|     25|      pBs->cmpArbdmxGainIdx,
 2123|     25|      maxNumInputChannels * MAX_PARAMETER_SETS * MAX_PARAMETER_BANDS, SCHAR,
 2124|     25|      SCHAR(*)[MAX_PARAMETER_SETS][MAX_PARAMETER_BANDS])
 2125|       |
 2126|       |  /* Lossless control */
 2127|     25|  FDK_ALLOCATE_MEMORY_1D(pBs->CLDLosslessData, MAX_NUM_PARAMETERS, LOSSLESSDATA)
  ------------------
  |  |  149|     50|  if (((a) = (type*)fdkCallocMatrix1D((dim1), sizeof(type))) == NULL) { \
  |  |  ------------------
  |  |  |  Branch (149:7): [True: 0, False: 25]
  |  |  |  Branch (149:40): [True: 25, Folded]
  |  |  ------------------
  |  |  150|      0|    goto bail;                                                          \
  |  |  151|      0|  }
  ------------------
 2128|     25|  FDK_ALLOCATE_MEMORY_1D(pBs->ICCLosslessData, MAX_NUM_PARAMETERS, LOSSLESSDATA)
  ------------------
  |  |  149|     50|  if (((a) = (type*)fdkCallocMatrix1D((dim1), sizeof(type))) == NULL) { \
  |  |  ------------------
  |  |  |  Branch (149:7): [True: 0, False: 25]
  |  |  |  Branch (149:40): [True: 25, Folded]
  |  |  ------------------
  |  |  150|      0|    goto bail;                                                          \
  |  |  151|      0|  }
  ------------------
 2129|       |
 2130|     25|  FDK_ALLOCATE_MEMORY_1D(pBs->IPDLosslessData, MAX_NUM_PARAMETERS, LOSSLESSDATA)
  ------------------
  |  |  149|     50|  if (((a) = (type*)fdkCallocMatrix1D((dim1), sizeof(type))) == NULL) { \
  |  |  ------------------
  |  |  |  Branch (149:7): [True: 0, False: 25]
  |  |  |  Branch (149:40): [True: 25, Folded]
  |  |  ------------------
  |  |  150|      0|    goto bail;                                                          \
  |  |  151|      0|  }
  ------------------
 2131|       |
 2132|     25|  pBs->newBsData = 0;
 2133|     25|  pBs->numParameterSets = 1;
 2134|       |
 2135|       |  /* Link lossless states */
 2136|    175|  for (int x = 0; x < MAX_NUM_PARAMETERS; x++) {
  ------------------
  |  |  154|    175|#define MAX_NUM_PARAMETERS (MAX(MAX_NUM_PARAMS, MAX_NUM_OTT))
  |  |  ------------------
  |  |  |  |  123|    175|#define MAX(a, b) ((a) > (b) ? (a) : (b))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:20): [True: 175, Folded]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2136:19): [True: 150, False: 25]
  ------------------
 2137|    150|    pBs->CLDLosslessData[x].state = &llState->CLDLosslessState[x];
 2138|    150|    pBs->ICCLosslessData[x].state = &llState->ICCLosslessState[x];
 2139|       |
 2140|    150|    pBs->IPDLosslessData[x].state = &llState->IPDLosslessState[x];
 2141|    150|  }
 2142|       |
 2143|     25|  return MPS_OK;
 2144|       |
 2145|      0|bail:
 2146|      0|  return MPS_OUTOFMEMORY;
 2147|     25|}
_Z22SpatialDecCloseBsFrameP23SPATIAL_BS_FRAME_struct:
 2160|     25|void SpatialDecCloseBsFrame(SPATIAL_BS_FRAME *pBs) {
 2161|     25|  if (pBs != NULL) {
  ------------------
  |  Branch (2161:7): [True: 25, False: 0]
  ------------------
 2162|       |    /* These arrays contain the compact indices, only one value per pbstride,
 2163|       |     * only paramsets actually containing data. */
 2164|       |
 2165|     25|    FDK_FREE_MEMORY_1D(pBs->cmpOttIPDidx);
  ------------------
  |  |  171|     25|  do {                           \
  |  |  172|     25|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|     25|    (a) = NULL;                  \
  |  |  174|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 25]
  |  |  ------------------
  ------------------
 2166|       |
 2167|       |    /* Arbitrary Downmix */
 2168|     25|    FDK_FREE_MEMORY_1D(pBs->cmpArbdmxGainIdx);
  ------------------
  |  |  171|     25|  do {                           \
  |  |  172|     25|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|     25|    (a) = NULL;                  \
  |  |  174|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 25]
  |  |  ------------------
  ------------------
 2169|       |
 2170|       |    /* Lossless control */
 2171|     25|    FDK_FREE_MEMORY_1D(pBs->IPDLosslessData);
  ------------------
  |  |  171|     25|  do {                           \
  |  |  172|     25|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|     25|    (a) = NULL;                  \
  |  |  174|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 25]
  |  |  ------------------
  ------------------
 2172|     25|    FDK_FREE_MEMORY_1D(pBs->CLDLosslessData);
  ------------------
  |  |  171|     25|  do {                           \
  |  |  172|     25|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|     25|    (a) = NULL;                  \
  |  |  174|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 25]
  |  |  ------------------
  ------------------
 2173|       |    FDK_FREE_MEMORY_1D(pBs->ICCLosslessData);
  ------------------
  |  |  171|     25|  do {                           \
  |  |  172|     25|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|     25|    (a) = NULL;                  \
  |  |  174|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 25]
  |  |  ------------------
  ------------------
 2174|     25|  }
 2175|     25|}

FDK_SpatialDecClose:
  916|     25|void FDK_SpatialDecClose(spatialDec *self) {
  917|     25|  if (self) {
  ------------------
  |  Branch (917:7): [True: 0, False: 25]
  ------------------
  918|      0|    int k;
  919|       |
  920|      0|    if (self->apDecor != NULL) {
  ------------------
  |  Branch (920:9): [True: 0, False: 0]
  ------------------
  921|      0|      for (k = 0; k < self->createParams.maxNumDecorChannels; k++) {
  ------------------
  |  Branch (921:19): [True: 0, False: 0]
  ------------------
  922|      0|        FDKdecorrelateClose(&(self->apDecor[k]));
  923|      0|      }
  924|      0|      FDK_FREE_MEMORY_1D(self->apDecor);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  925|      0|    }
  926|      0|    if (self->pDecorBufferCplx != NULL) {
  ------------------
  |  Branch (926:9): [True: 0, False: 0]
  ------------------
  927|      0|      FDK_FREE_MEMORY_2D(self->pDecorBufferCplx);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  928|      0|    }
  929|       |
  930|      0|    subbandTPDestroy(&self->hStpDec);
  931|       |
  932|      0|    FDK_FREE_MEMORY_1D(self->reshapeBBEnvState);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  933|      0|    FDK_FREE_MEMORY_1D(self->smoothState);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  934|       |
  935|      0|    FDK_FREE_MEMORY_2D(self->pHybridAnaStatesLFdmx);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  936|      0|    FDK_FREE_MEMORY_2D(self->pHybridAnaStatesHFdmx);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  937|      0|    FDK_FREE_MEMORY_2D(self->pHybridAnaStatesLFres);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  938|      0|    FDK_FREE_MEMORY_2D(self->pHybridAnaStatesHFres);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  939|      0|    FDK_FREE_MEMORY_1D(self->hybridAnalysis);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  940|       |
  941|      0|    FDK_FREE_MEMORY_1D(self->hybridSynthesis);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  942|       |
  943|       |    /* The time buffer is passed to the decoder from outside to avoid copying
  944|       |     * (zero copy). */
  945|       |    /* FDK_FREE_MEMORY_2D(self->timeOut__FDK); */
  946|       |
  947|      0|    FDK_FREE_MEMORY_2D(self->hybOutputImagWet__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  948|      0|    FDK_FREE_MEMORY_2D(self->hybOutputRealWet__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  949|       |
  950|      0|    FDK_FREE_MEMORY_2D(self->hybOutputImagDry__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  951|      0|    FDK_FREE_MEMORY_2D(self->hybOutputRealDry__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  952|       |
  953|      0|    FDK_FREE_MEMORY_2D(self->wImag__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  954|      0|    FDK_FREE_MEMORY_2D(self->wReal__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  955|       |
  956|      0|    if (self->createParams.bProcResidual) {
  ------------------
  |  Branch (956:9): [True: 0, False: 0]
  ------------------
  957|      0|      int i;
  958|       |
  959|      0|      for (i = 0; i < self->createParams.maxNumResChannels; i++) {
  ------------------
  |  Branch (959:19): [True: 0, False: 0]
  ------------------
  960|      0|        if (self->hybResidualImag__FDK != NULL)
  ------------------
  |  Branch (960:13): [True: 0, False: 0]
  ------------------
  961|      0|          FDK_FREE_MEMORY_1D(self->hybResidualImag__FDK[i]);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  962|      0|        if (self->hybResidualReal__FDK != NULL)
  ------------------
  |  Branch (962:13): [True: 0, False: 0]
  ------------------
  963|      0|          FDK_FREE_MEMORY_1D(self->hybResidualReal__FDK[i]);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  964|      0|        if (self->qmfResidualImag__FDK != NULL)
  ------------------
  |  Branch (964:13): [True: 0, False: 0]
  ------------------
  965|      0|          FDK_FREE_MEMORY_2D_ALIGNED(self->qmfResidualImag__FDK[i]);
  ------------------
  |  |  207|      0|  do {                                    \
  |  |  208|      0|    fdkFreeMatrix2D_aligned((void**)(a)); \
  |  |  209|      0|    (a) = NULL;                           \
  |  |  210|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (210:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  966|      0|        if (self->qmfResidualReal__FDK != NULL)
  ------------------
  |  Branch (966:13): [True: 0, False: 0]
  ------------------
  967|      0|          FDK_FREE_MEMORY_2D_ALIGNED(self->qmfResidualReal__FDK[i]);
  ------------------
  |  |  207|      0|  do {                                    \
  |  |  208|      0|    fdkFreeMatrix2D_aligned((void**)(a)); \
  |  |  209|      0|    (a) = NULL;                           \
  |  |  210|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (210:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  968|      0|      }
  969|       |
  970|      0|      FDK_FREE_MEMORY_1D(self->hybResidualImag__FDK);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  971|      0|      FDK_FREE_MEMORY_1D(self->hybResidualReal__FDK);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  972|       |
  973|      0|      FDK_FREE_MEMORY_1D(self->qmfResidualImag__FDK);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  974|      0|      FDK_FREE_MEMORY_1D(self->qmfResidualReal__FDK);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  975|       |
  976|      0|    } /* self->createParams.bProcResidual */
  977|       |
  978|      0|    FDK_FREE_MEMORY_2D(self->hybInputImag__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  979|      0|    FDK_FREE_MEMORY_2D(self->hybInputReal__FDK);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  980|       |
  981|      0|    FDK_FREE_MEMORY_2D_ALIGNED(self->qmfInputImag__FDK);
  ------------------
  |  |  207|      0|  do {                                    \
  |  |  208|      0|    fdkFreeMatrix2D_aligned((void**)(a)); \
  |  |  209|      0|    (a) = NULL;                           \
  |  |  210|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (210:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  982|      0|    FDK_FREE_MEMORY_2D_ALIGNED(self->qmfInputReal__FDK);
  ------------------
  |  |  207|      0|  do {                                    \
  |  |  208|      0|    fdkFreeMatrix2D_aligned((void**)(a)); \
  |  |  209|      0|    (a) = NULL;                           \
  |  |  210|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (210:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  983|       |
  984|      0|    FDK_FREE_MEMORY_3D(self->M2ImagPrev__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  985|       |
  986|      0|    FDK_FREE_MEMORY_3D(self->M2RealPrev__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  987|       |
  988|      0|    FDK_FREE_MEMORY_3D(self->M2Imag__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  989|       |
  990|      0|    FDK_FREE_MEMORY_3D(self->M2Real__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  991|       |
  992|      0|    FDK_FREE_MEMORY_1D(self->arbdmxAlphaPrev__FDK);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  993|      0|    FDK_FREE_MEMORY_1D(self->arbdmxAlpha__FDK);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  994|       |
  995|      0|    FDK_FREE_MEMORY_3D(self->arbdmxGain__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  996|       |
  997|      0|    FDK_FREE_MEMORY_3D(self->ottIPD__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  998|      0|    FDK_FREE_MEMORY_3D(self->ottICC__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
  999|      0|    FDK_FREE_MEMORY_3D(self->ottCLD__FDK);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1000|       |
 1001|       |    /* Last parameters from prev frame */
 1002|      0|    FDK_FREE_MEMORY_2D(self->ottCLDidxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1003|      0|    FDK_FREE_MEMORY_2D(self->ottICCidxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1004|      0|    FDK_FREE_MEMORY_3D(self->ottICCdiffidx);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1005|      0|    FDK_FREE_MEMORY_2D(self->ottIPDidxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1006|      0|    FDK_FREE_MEMORY_2D(self->arbdmxGainIdxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1007|       |
 1008|      0|    FDK_FREE_MEMORY_2D(self->cmpOttCLDidxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1009|      0|    FDK_FREE_MEMORY_2D(self->cmpOttICCidxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1010|      0|    FDK_FREE_MEMORY_3D(self->outIdxData);
  ------------------
  |  |  225|      0|  do {                             \
  |  |  226|      0|    fdkFreeMatrix3D((void***)(a)); \
  |  |  227|      0|    (a) = NULL;                    \
  |  |  228|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (228:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1011|      0|    FDK_FREE_MEMORY_2D(self->cmpOttIPDidxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1012|      0|    FDK_FREE_MEMORY_2D(self->cmpArbdmxGainIdxPrev);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1013|       |
 1014|      0|    FDK_FREE_MEMORY_2D(self->smgData);
  ------------------
  |  |  201|      0|  do {                            \
  |  |  202|      0|    fdkFreeMatrix2D((void**)(a)); \
  |  |  203|      0|    (a) = NULL;                   \
  |  |  204|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (204:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1015|      0|    FDK_FREE_MEMORY_1D(self->smgTime);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1016|       |
 1017|      0|    FDK_FREE_MEMORY_1D(self->numOttBands);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1018|       |
 1019|      0|    FDK_FREE_MEMORY_1D(self->param2hyb);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1020|       |
 1021|      0|    FDK_FREE_MEMORY_1D(self);
  ------------------
  |  |  171|      0|  do {                           \
  |  |  172|      0|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|      0|    (a) = NULL;                  \
  |  |  174|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1022|      0|  }
 1023|       |
 1024|     25|  return;
 1025|     25|}

mpegSurroundDecoder_Open:
  390|     25|    HANDLE_FDK_QMF_DOMAIN pQmfDomain) {
  391|     25|  SACDEC_ERROR error;
  392|       |
  393|     25|  error = mpegSurroundDecoder_Create(pMpegSurroundDecoder, stereoConfigIndex,
  394|     25|                                     pQmfDomain);
  395|       |
  396|     25|  return error;
  397|     25|}
mpegSurroundDecoder_Close:
 1789|     25|void mpegSurroundDecoder_Close(CMpegSurroundDecoder *pMpegSurroundDecoder) {
 1790|     25|  if (pMpegSurroundDecoder != NULL) {
  ------------------
  |  Branch (1790:7): [True: 25, False: 0]
  ------------------
 1791|     25|    FDK_SpatialDecClose(pMpegSurroundDecoder->pSpatialDec);
 1792|     25|    pMpegSurroundDecoder->pSpatialDec = NULL;
 1793|       |
 1794|     50|    for (int i = 0; i < 1; i++) {
  ------------------
  |  Branch (1794:21): [True: 25, False: 25]
  ------------------
 1795|     25|      SpatialDecCloseBsFrame(&pMpegSurroundDecoder->bsFrames[i]);
 1796|     25|    }
 1797|       |
 1798|       |    FDK_FREE_MEMORY_1D(pMpegSurroundDecoder);
  ------------------
  |  |  171|     25|  do {                           \
  |  |  172|     25|    fdkFreeMatrix1D((void*)(a)); \
  |  |  173|     25|    (a) = NULL;                  \
  |  |  174|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (174:12): [Folded, False: 25]
  |  |  ------------------
  ------------------
 1799|     25|  }
 1800|     25|}
sac_dec_lib.cpp:_ZL26mpegSurroundDecoder_CreatePP19MpegSurroundDecoderiP14FDK_QMF_DOMAIN:
  614|     25|    HANDLE_FDK_QMF_DOMAIN pQmfDomain) {
  615|     25|  SACDEC_ERROR err = MPS_OK;
  616|     25|  CMpegSurroundDecoder *sacDec = NULL;
  617|     25|  spatialDec *self = NULL;
  618|       |
  619|       |  /* decoderLevel  decoderMode  maxNumOutputChannels  binauralMode */
  620|     25|  static const SPATIAL_DEC_CONFIG decConfig = {
  621|     25|      (CFG_LEVEL)(0), EXT_HQ_ONLY, OUTPUT_CHANNELS_DEFAULT, BINAURAL_NONE};
  622|       |
  623|     25|  if (*pMpegSurroundDecoder == NULL) {
  ------------------
  |  Branch (623:7): [True: 25, False: 0]
  ------------------
  624|     25|    FDK_ALLOCATE_MEMORY_1D(*pMpegSurroundDecoder, 1, CMpegSurroundDecoder)
  ------------------
  |  |  149|     25|  if (((a) = (type*)fdkCallocMatrix1D((dim1), sizeof(type))) == NULL) { \
  |  |  ------------------
  |  |  |  Branch (149:7): [True: 0, False: 25]
  |  |  ------------------
  |  |  150|      0|    goto bail;                                                          \
  |  |  151|      0|  }
  ------------------
  625|       |
  626|     50|    for (int i = 0; i < 1; i++) {
  ------------------
  |  Branch (626:21): [True: 25, False: 25]
  ------------------
  627|     25|      err = SpatialDecCreateBsFrame(&(*pMpegSurroundDecoder)->bsFrames[i],
  628|     25|                                    &(*pMpegSurroundDecoder)->llState);
  629|     25|      if (err != MPS_OK) {
  ------------------
  |  Branch (629:11): [True: 0, False: 25]
  ------------------
  630|      0|        sacDec = *pMpegSurroundDecoder;
  631|      0|        goto bail;
  632|      0|      }
  633|     25|    }
  634|     25|    (*pMpegSurroundDecoder)->pQmfDomain = pQmfDomain;
  635|       |
  636|     25|    (*pMpegSurroundDecoder)->bsFrameDelay = 1;
  637|     25|    (*pMpegSurroundDecoder)->bsFrameParse = 0;
  638|     25|    (*pMpegSurroundDecoder)->bsFrameDecode = 0;
  639|       |
  640|     25|    return err;
  641|     25|  } else {
  642|      0|    sacDec = *pMpegSurroundDecoder;
  643|      0|  }
  644|       |
  645|      0|  if (sacDec->pSpatialDec == NULL) {
  ------------------
  |  Branch (645:7): [True: 0, False: 0]
  ------------------
  646|      0|    if ((self = FDK_SpatialDecOpen(&decConfig, stereoConfigIndex)) == NULL) {
  ------------------
  |  Branch (646:9): [True: 0, False: 0]
  ------------------
  647|      0|      err = MPS_OUTOFMEMORY;
  648|      0|      goto bail;
  649|      0|    }
  650|      0|  } else {
  651|      0|    self = sacDec->pSpatialDec;
  652|      0|  }
  653|       |
  654|      0|  self->pQmfDomain = sacDec->pQmfDomain;
  655|       |
  656|      0|  sacDec->pSpatialDec = self;
  657|       |
  658|       |  /* default parameter set */
  659|      0|  sacDec->mpegSurroundUserParams.outputMode = SACDEC_OUT_MODE_NORMAL;
  660|      0|  sacDec->mpegSurroundUserParams.blindEnable = 0;
  661|      0|  sacDec->mpegSurroundUserParams.bypassMode = 0;
  662|      0|  sacDec->mpegSurroundUserParams.concealMethod = 1;
  663|      0|  sacDec->mpegSurroundUserParams.concealNumKeepFrames = 10;
  664|      0|  sacDec->mpegSurroundUserParams.concealFadeOutSlopeLength = 5;
  665|      0|  sacDec->mpegSurroundUserParams.concealFadeInSlopeLength = 5;
  666|      0|  sacDec->mpegSurroundUserParams.concealNumReleaseFrames = 3;
  667|      0|  sacDec->mpegSurroundSscIsGlobalCfg = 0;
  668|      0|  sacDec->mpegSurroundUseTimeInterface = 1;
  669|      0|  sacDec->mpegSurroundDecoderLevel = decConfig.decoderLevel;
  670|       |
  671|      0|  sacDec->upmixType = UPMIX_TYPE_NORMAL;
  672|       |
  673|       |  /* signalize spatial decoder re-initalization */
  674|      0|  updateMpegSurroundDecoderStatus(sacDec, MPEGS_INIT_ENFORCE_REINIT,
  675|      0|                                  MPEGS_SYNC_LOST, MPEGS_STOP);
  676|       |
  677|       |  /* return decoder instance */
  678|      0|  *pMpegSurroundDecoder = sacDec;
  679|      0|  sacDec->decConfig = decConfig;
  680|       |
  681|      0|  SpatialDecInitParserContext(sacDec->pSpatialDec);
  682|       |
  683|      0|  return err;
  684|       |
  685|      0|bail:
  686|      0|  if (sacDec != NULL) {
  ------------------
  |  Branch (686:7): [True: 0, False: 0]
  ------------------
  687|      0|    mpegSurroundDecoder_Close(sacDec);
  688|      0|  }
  689|      0|  *pMpegSurroundDecoder = NULL;
  690|      0|  if (err == MPS_OK) {
  ------------------
  |  Branch (690:7): [True: 0, False: 0]
  ------------------
  691|      0|    return MPS_OUTOFMEMORY;
  692|      0|  } else {
  693|      0|    return err;
  694|      0|  }
  695|      0|}

sbrDecoder_Open:
  447|     25|                          HANDLE_FDK_QMF_DOMAIN pQmfDomain) {
  448|     25|  HANDLE_SBRDECODER self = NULL;
  449|     25|  SBR_ERROR sbrError = SBRDEC_OK;
  450|     25|  int elIdx;
  451|       |
  452|     25|  if ((pSelf == NULL) || (pQmfDomain == NULL)) {
  ------------------
  |  Branch (452:7): [True: 0, False: 25]
  |  Branch (452:26): [True: 0, False: 25]
  ------------------
  453|      0|    return SBRDEC_INVALID_ARGUMENT;
  454|      0|  }
  455|       |
  456|       |  /* Get memory for this instance */
  457|     25|  self = GetRam_SbrDecoder();
  458|     25|  if (self == NULL) {
  ------------------
  |  Branch (458:7): [True: 0, False: 25]
  ------------------
  459|      0|    sbrError = SBRDEC_MEM_ALLOC_FAILED;
  460|      0|    goto bail;
  461|      0|  }
  462|       |
  463|     25|  self->pQmfDomain = pQmfDomain;
  464|       |
  465|       |  /*
  466|       |  Already zero because of calloc
  467|       |  self->numSbrElements = 0;
  468|       |  self->numSbrChannels = 0;
  469|       |  self->codecFrameSize = 0;
  470|       |  */
  471|       |
  472|     25|  self->numDelayFrames = (1); /* set to the max value by default */
  473|       |
  474|       |  /* Initialize header sync state */
  475|    225|  for (elIdx = 0; elIdx < (8); elIdx += 1) {
  ------------------
  |  Branch (475:19): [True: 200, False: 25]
  ------------------
  476|    200|    int i;
  477|    600|    for (i = 0; i < (1) + 1; i += 1) {
  ------------------
  |  Branch (477:17): [True: 400, False: 200]
  ------------------
  478|    400|      self->sbrHeader[elIdx][i].syncState = SBR_NOT_INITIALIZED;
  479|    400|    }
  480|    200|  }
  481|       |
  482|     25|  *pSelf = self;
  483|       |
  484|     25|bail:
  485|     25|  return sbrError;
  486|     25|}
sbrDecoder_SetParam:
  887|     25|                              const INT value) {
  888|     25|  SBR_ERROR errorStatus = SBRDEC_OK;
  889|       |
  890|       |  /* configure the subsystems */
  891|     25|  switch (param) {
  892|     25|    case SBR_SYSTEM_BITSTREAM_DELAY:
  ------------------
  |  Branch (892:5): [True: 25, False: 0]
  ------------------
  893|     25|      if (value < 0 || value > (1)) {
  ------------------
  |  Branch (893:11): [True: 0, False: 25]
  |  Branch (893:24): [True: 0, False: 25]
  ------------------
  894|      0|        errorStatus = SBRDEC_SET_PARAM_FAIL;
  895|      0|        break;
  896|      0|      }
  897|     25|      if (self == NULL) {
  ------------------
  |  Branch (897:11): [True: 0, False: 25]
  ------------------
  898|      0|        errorStatus = SBRDEC_NOT_INITIALIZED;
  899|     25|      } else {
  900|     25|        self->numDelayFrames = (UCHAR)value;
  901|     25|      }
  902|     25|      break;
  903|      0|    case SBR_QMF_MODE:
  ------------------
  |  Branch (903:5): [True: 0, False: 25]
  ------------------
  904|      0|      if (self == NULL) {
  ------------------
  |  Branch (904:11): [True: 0, False: 0]
  ------------------
  905|      0|        errorStatus = SBRDEC_NOT_INITIALIZED;
  906|      0|      } else {
  907|      0|        if (value == 1) {
  ------------------
  |  Branch (907:13): [True: 0, False: 0]
  ------------------
  908|      0|          self->flags |= SBRDEC_LOW_POWER;
  ------------------
  |  |  211|      0|  32 /* Flag indicating that Low Power QMF mode shall be used. */
  ------------------
  909|      0|        } else {
  910|      0|          self->flags &= ~SBRDEC_LOW_POWER;
  ------------------
  |  |  211|      0|  32 /* Flag indicating that Low Power QMF mode shall be used. */
  ------------------
  911|      0|        }
  912|      0|      }
  913|      0|      break;
  914|      0|    case SBR_LD_QMF_TIME_ALIGN:
  ------------------
  |  Branch (914:5): [True: 0, False: 25]
  ------------------
  915|      0|      if (self == NULL) {
  ------------------
  |  Branch (915:11): [True: 0, False: 0]
  ------------------
  916|      0|        errorStatus = SBRDEC_NOT_INITIALIZED;
  917|      0|      } else {
  918|      0|        if (value == 1) {
  ------------------
  |  Branch (918:13): [True: 0, False: 0]
  ------------------
  919|      0|          self->flags |= SBRDEC_LD_MPS_QMF;
  ------------------
  |  |  220|      0|  512 /* Flag indicating that the LD-MPS QMF shall be used. */
  ------------------
  920|      0|        } else {
  921|      0|          self->flags &= ~SBRDEC_LD_MPS_QMF;
  ------------------
  |  |  220|      0|  512 /* Flag indicating that the LD-MPS QMF shall be used. */
  ------------------
  922|      0|        }
  923|      0|      }
  924|      0|      break;
  925|      0|    case SBR_FLUSH_DATA:
  ------------------
  |  Branch (925:5): [True: 0, False: 25]
  ------------------
  926|      0|      if (value != 0) {
  ------------------
  |  Branch (926:11): [True: 0, False: 0]
  ------------------
  927|      0|        if (self == NULL) {
  ------------------
  |  Branch (927:13): [True: 0, False: 0]
  ------------------
  928|      0|          errorStatus = SBRDEC_NOT_INITIALIZED;
  929|      0|        } else {
  930|      0|          self->flags |= SBRDEC_FLUSH;
  ------------------
  |  |  229|      0|#define SBRDEC_FLUSH 16384 /* Flag is used to flush all elements in use. */
  ------------------
  931|      0|        }
  932|      0|      }
  933|      0|      break;
  934|      0|    case SBR_CLEAR_HISTORY:
  ------------------
  |  Branch (934:5): [True: 0, False: 25]
  ------------------
  935|      0|      if (value != 0) {
  ------------------
  |  Branch (935:11): [True: 0, False: 0]
  ------------------
  936|      0|        if (self == NULL) {
  ------------------
  |  Branch (936:13): [True: 0, False: 0]
  ------------------
  937|      0|          errorStatus = SBRDEC_NOT_INITIALIZED;
  938|      0|        } else {
  939|      0|          self->flags |= SBRDEC_FORCE_RESET;
  ------------------
  |  |  231|      0|  32768 /* Flag is used to force a reset of all elements in use. */
  ------------------
  940|      0|        }
  941|      0|      }
  942|      0|      break;
  943|      0|    case SBR_BS_INTERRUPTION: {
  ------------------
  |  Branch (943:5): [True: 0, False: 25]
  ------------------
  944|      0|      int elementIndex;
  945|       |
  946|      0|      if (self == NULL) {
  ------------------
  |  Branch (946:11): [True: 0, False: 0]
  ------------------
  947|      0|        errorStatus = SBRDEC_NOT_INITIALIZED;
  948|      0|        break;
  949|      0|      }
  950|       |
  951|       |      /* Loop over SBR elements */
  952|      0|      for (elementIndex = 0; elementIndex < self->numSbrElements;
  ------------------
  |  Branch (952:30): [True: 0, False: 0]
  ------------------
  953|      0|           elementIndex++) {
  954|      0|        if (self->pSbrElement[elementIndex] != NULL) {
  ------------------
  |  Branch (954:13): [True: 0, False: 0]
  ------------------
  955|      0|          HANDLE_SBR_HEADER_DATA hSbrHeader;
  956|      0|          int headerIndex =
  957|      0|              getHeaderSlot(self->pSbrElement[elementIndex]->useFrameSlot,
  958|      0|                            self->pSbrElement[elementIndex]->useHeaderSlot);
  959|       |
  960|      0|          hSbrHeader = &(self->sbrHeader[elementIndex][headerIndex]);
  961|       |
  962|       |          /* Set sync state UPSAMPLING for the corresponding slot.
  963|       |             This switches off bitstream parsing until a new header arrives. */
  964|      0|          if (hSbrHeader->syncState != SBR_NOT_INITIALIZED) {
  ------------------
  |  Branch (964:15): [True: 0, False: 0]
  ------------------
  965|      0|            hSbrHeader->syncState = UPSAMPLING;
  966|      0|            hSbrHeader->status |= SBRDEC_HDR_STAT_UPDATE;
  ------------------
  |  |  240|      0|#define SBRDEC_HDR_STAT_UPDATE 2
  ------------------
  967|      0|          }
  968|      0|        }
  969|      0|      }
  970|      0|    } break;
  971|       |
  972|      0|    case SBR_SKIP_QMF:
  ------------------
  |  Branch (972:5): [True: 0, False: 25]
  ------------------
  973|      0|      if (self == NULL) {
  ------------------
  |  Branch (973:11): [True: 0, False: 0]
  ------------------
  974|      0|        errorStatus = SBRDEC_NOT_INITIALIZED;
  975|      0|      } else {
  976|      0|        if (value == 1) {
  ------------------
  |  Branch (976:13): [True: 0, False: 0]
  ------------------
  977|      0|          self->flags |= SBRDEC_SKIP_QMF_ANA;
  ------------------
  |  |  233|      0|  (1 << 21) /* Flag indicating that the input data is provided in the QMF \
  ------------------
  978|      0|        } else {
  979|      0|          self->flags &= ~SBRDEC_SKIP_QMF_ANA;
  ------------------
  |  |  233|      0|  (1 << 21) /* Flag indicating that the input data is provided in the QMF \
  ------------------
  980|      0|        }
  981|      0|        if (value == 2) {
  ------------------
  |  Branch (981:13): [True: 0, False: 0]
  ------------------
  982|      0|          self->flags |= SBRDEC_SKIP_QMF_SYN;
  ------------------
  |  |  236|      0|  (1 << 22) /* Flag indicating that the output data is exported in the QMF \
  ------------------
  983|      0|        } else {
  984|      0|          self->flags &= ~SBRDEC_SKIP_QMF_SYN;
  ------------------
  |  |  236|      0|  (1 << 22) /* Flag indicating that the output data is exported in the QMF \
  ------------------
  985|      0|        }
  986|      0|      }
  987|      0|      break;
  988|      0|    default:
  ------------------
  |  Branch (988:5): [True: 0, False: 25]
  ------------------
  989|      0|      errorStatus = SBRDEC_SET_PARAM_FAIL;
  990|      0|      break;
  991|     25|  } /* switch(param) */
  992|       |
  993|     25|  return (errorStatus);
  994|     25|}
sbrDecoder_Close:
 1933|     25|SBR_ERROR sbrDecoder_Close(HANDLE_SBRDECODER *pSelf) {
 1934|     25|  HANDLE_SBRDECODER self = *pSelf;
 1935|     25|  int i;
 1936|       |
 1937|     25|  if (self != NULL) {
  ------------------
  |  Branch (1937:7): [True: 25, False: 0]
  ------------------
 1938|     25|    if (self->hParametricStereoDec != NULL) {
  ------------------
  |  Branch (1938:9): [True: 0, False: 25]
  ------------------
 1939|      0|      DeletePsDec(&self->hParametricStereoDec);
 1940|      0|    }
 1941|       |
 1942|    225|    for (i = 0; i < (8); i++) {
  ------------------
  |  Branch (1942:17): [True: 200, False: 25]
  ------------------
 1943|    200|      sbrDecoder_DestroyElement(self, i);
 1944|    200|    }
 1945|       |
 1946|     25|    FreeRam_SbrDecoder(pSelf);
 1947|     25|  }
 1948|       |
 1949|     25|  return SBRDEC_OK;
 1950|     25|}
sbrdecoder.cpp:_ZL25sbrDecoder_DestroyElementP20SBR_DECODER_INSTANCEi:
  510|    200|                                      const int elementIndex) {
  511|    200|  if (self->pSbrElement[elementIndex] != NULL) {
  ------------------
  |  Branch (511:7): [True: 0, False: 200]
  ------------------
  512|      0|    int ch;
  513|       |
  514|      0|    for (ch = 0; ch < SBRDEC_MAX_CH_PER_ELEMENT; ch++) {
  ------------------
  |  |  115|      0|#define SBRDEC_MAX_CH_PER_ELEMENT (2)
  ------------------
  |  Branch (514:18): [True: 0, False: 0]
  ------------------
  515|      0|      if (self->pSbrElement[elementIndex]->pSbrChannel[ch] != NULL) {
  ------------------
  |  Branch (515:11): [True: 0, False: 0]
  ------------------
  516|      0|        deleteSbrDec(self->pSbrElement[elementIndex]->pSbrChannel[ch]);
  517|      0|        FreeRam_SbrDecChannel(
  518|      0|            &self->pSbrElement[elementIndex]->pSbrChannel[ch]);
  519|      0|        self->numSbrChannels -= 1;
  520|      0|      }
  521|      0|    }
  522|      0|    FreeRam_SbrDecElement(&self->pSbrElement[elementIndex]);
  523|      0|    self->numSbrElements -= 1;
  524|      0|  }
  525|    200|}

_Z29GetRequiredMemWorkBufferCore5v:
  288|     25|  UINT GetRequiredMem##name(void) {                                         \
  289|     25|    return ALGN_SIZE_EXTRES((num) * sizeof(type) + ALIGNMENT_DEFAULT +      \
  ------------------
  |  |  320|     25|  ((a) + (((INT)ALIGNMENT_EXTRES - ((INT)(a) & (ALIGNMENT_EXTRES - 1))) & \
  |  |  ------------------
  |  |  |  |  318|     25|#define ALIGNMENT_EXTRES (ALIGNMENT_DEFAULT)
  |  |  |  |  ------------------
  |  |  |  |  |  |  256|     25|#define ALIGNMENT_DEFAULT 8
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                 ((a) + (((INT)ALIGNMENT_EXTRES - ((INT)(a) & (ALIGNMENT_EXTRES - 1))) & \
  |  |  ------------------
  |  |  |  |  318|     25|#define ALIGNMENT_EXTRES (ALIGNMENT_DEFAULT)
  |  |  |  |  ------------------
  |  |  |  |  |  |  256|     25|#define ALIGNMENT_DEFAULT 8
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  321|     25|          (ALIGNMENT_EXTRES - 1)))
  |  |  ------------------
  |  |  |  |  318|     25|#define ALIGNMENT_EXTRES (ALIGNMENT_DEFAULT)
  |  |  |  |  ------------------
  |  |  |  |  |  |  256|     25|#define ALIGNMENT_DEFAULT 8
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  290|     25|                            sizeof(void *));                                \
  291|     25|  }

FDKcalloc:
  192|    562|void *FDKcalloc(const UINT n, const UINT size) {
  193|    562|  void *ptr;
  194|       |
  195|    562|  ptr = calloc(n, size);
  196|       |
  197|    562|  return ptr;
  198|    562|}
FDKfree:
  208|    562|void FDKfree(void *ptr) { free((INT *)ptr); }
FDKcalloc_L:
  241|     75|void *FDKcalloc_L(const UINT dim, const UINT size, MEMORY_SECTION s) {
  242|     75|  return FDKcalloc(dim, size);
  243|     75|}
FDKfree_L:
  245|    225|void FDKfree_L(void *p) { FDKfree(p); }
FDKaalloc_L:
  247|     75|void *FDKaalloc_L(const UINT size, const UINT alignment, MEMORY_SECTION s) {
  248|     75|  void *addr, *result = NULL;
  249|     75|  addr = FDKcalloc_L(1, size + alignment + (UINT)sizeof(void *),
  250|     75|                     s); /* Malloc and clear memory.         */
  251|       |
  252|     75|  if (addr != NULL) {
  ------------------
  |  Branch (252:7): [True: 75, False: 0]
  ------------------
  253|     75|    result = ALIGN_PTR((unsigned char *)addr +
  ------------------
  |  |  312|     75|  ((void *)((unsigned char *)(a) +                        \
  |  |  313|     75|            ((((INT)ALIGNMENT_DEFAULT -                   \
  |  |  ------------------
  |  |  |  |  256|     75|#define ALIGNMENT_DEFAULT 8
  |  |  ------------------
  |  |  314|     75|               ((size_t)(a) & (ALIGNMENT_DEFAULT - 1))) & \
  |  |  ------------------
  |  |  |  |  256|     75|#define ALIGNMENT_DEFAULT 8
  |  |  ------------------
  |  |  315|     75|              (ALIGNMENT_DEFAULT - 1)))))
  |  |  ------------------
  |  |  |  |  256|     75|#define ALIGNMENT_DEFAULT 8
  |  |  ------------------
  ------------------
  254|     75|                       sizeof(void *)); /* Get aligned memory base address. */
  255|     75|    *(((void **)result) - 1) = addr;    /* Save malloc'ed memory pointer.   */
  256|     75|    C_ALLOC_ALIGNED_REGISTER(result, size);
  257|     75|  }
  258|       |
  259|     75|  return result; /* Return aligned address.          */
  260|     75|}
FDKafree_L:
  262|     75|void FDKafree_L(void *ptr) {
  263|     75|  void *addr;
  264|       |
  265|     75|  addr = *(((void **)ptr) - 1); /* Get pointer to malloc'ed memory. */
  266|       |
  267|     75|  C_ALLOC_ALIGNED_UNREGISTER(ptr);
  268|       |
  269|     75|  FDKfree_L(addr); /* Free malloc'ed memory area.      */
  270|     75|}
FDKmemcpy:
  277|     50|void FDKmemcpy(void *dst, const void *src, const UINT size) {
  278|       |  /* -- check for overlapping memory areas -- */
  279|     50|  FDK_ASSERT(((const unsigned char *)dst - (const unsigned char *)src) >=
  ------------------
  |  |  221|     50|#define FDK_ASSERT(x) assert(x)
  ------------------
  |  Branch (279:3): [True: 50, False: 0]
  |  Branch (279:3): [True: 0, False: 0]
  |  Branch (279:3): [True: 50, False: 0]
  ------------------
  280|     50|                 (ptrdiff_t)size ||
  281|     50|             ((const unsigned char *)src - (const unsigned char *)dst) >=
  282|     50|                 (ptrdiff_t)size);
  283|       |
  284|       |  /* do the copy */
  285|     50|  memcpy(dst, src, size);
  286|     50|}
FDKmemset:
  292|    100|void FDKmemset(void *memPtr, const INT value, const UINT size) {
  293|    100|  memset(memPtr, value, size);
  294|    100|}
FDKmemclear:
  296|     50|void FDKmemclear(void *memPtr, const UINT size) { FDKmemset(memPtr, 0, size); }

FDK_chMapDescr_init:
  248|     25|                         const UINT mapInfoTabLen, const UINT fPassThrough) {
  249|     25|  if (pMapDescr != NULL) {
  ------------------
  |  Branch (249:7): [True: 25, False: 0]
  ------------------
  250|     25|    int useDefaultTab = 1;
  251|       |
  252|     25|    pMapDescr->fPassThrough = (fPassThrough == 0) ? 0 : 1;
  ------------------
  |  Branch (252:31): [True: 25, False: 0]
  ------------------
  253|       |
  254|     25|    if ((pMapInfoTab != NULL) && (mapInfoTabLen > 0)) {
  ------------------
  |  Branch (254:9): [True: 0, False: 25]
  |  Branch (254:34): [True: 0, False: 0]
  ------------------
  255|       |      /* Set the valid custom mapping table. */
  256|      0|      pMapDescr->pMapInfoTab = pMapInfoTab;
  257|      0|      pMapDescr->mapInfoTabLen = mapInfoTabLen;
  258|       |      /* Validate the complete descriptor. */
  259|      0|      useDefaultTab = (FDK_chMapDescr_isValid(pMapDescr) == 0) ? 1 : 0;
  ------------------
  |  Branch (259:23): [True: 0, False: 0]
  ------------------
  260|      0|    }
  261|     25|    if (useDefaultTab != 0) {
  ------------------
  |  Branch (261:9): [True: 25, False: 0]
  ------------------
  262|       |      /* Set default table. */
  263|     25|      pMapDescr->pMapInfoTab = mapInfoTabDflt;
  264|     25|      pMapDescr->mapInfoTabLen = DFLT_CH_MAP_TAB_LEN;
  ------------------
  |  |  110|     25|  (15) /* Length of the default channel map info table. */
  ------------------
  265|     25|    }
  266|     25|  }
  267|     25|}

LLVMFuzzerTestOneInput:
   18|     85|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
   19|     85|  HANDLE_AACDECODER aacDecoderInfo = NULL;
   20|       |
   21|     85|  TRANSPORT_TYPE transportType;
   22|     85|  INT nrOfLayers;
   23|       |
   24|     85|  if (Size != 8) return 0;
  ------------------
  |  Branch (24:7): [True: 23, False: 62]
  ------------------
   25|       |
   26|     62|  transportType = (TRANSPORT_TYPE)(Data[0] + (Data[1] << 8) + (Data[2] << 16) +
   27|     62|                                   (Data[3] << 24));
   28|     62|  nrOfLayers =
   29|     62|      (UINT)(Data[4] + (Data[5] << 8) + (Data[6] << 16) + (Data[7] << 24));
   30|       |
   31|     62|  aacDecoderInfo = aacDecoder_Open(transportType, nrOfLayers);
   32|     62|  if (aacDecoderInfo != NULL) {
  ------------------
  |  Branch (32:7): [True: 25, False: 37]
  ------------------
   33|     25|    aacDecoder_Close(aacDecoderInfo);
   34|     25|  }
   35|     62|  return 0;
   36|     85|}

