Commit 6e44b2b2 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

set up the correct number of DirAC instances for split rendering

parent b691d959
Loading
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2563,7 +2563,13 @@ static ivas_error decodeG192(
                }
#endif
                /* Feed into decoder */
                if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, bit_stream, num_bits, bfi ) ) != IVAS_ERR_OK )
                if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, bit_stream, num_bits, bfi 
#if defined( OBJ_EDITING_API ) && defined( SPLIT_REND_WITH_HEAD_ROT )
                                                           ,
                                                           isSplitRend,
                                                           splitRendBits
#endif
                ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "\nError: could not feed frame to decoder: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
                    goto cleanup;
+33 −2
Original line number Diff line number Diff line
@@ -871,6 +871,11 @@ ivas_error IVAS_DEC_FeedFrame_Serial(
    uint16_t *serial,         /* i  : buffer containing serial input bitstream. Each bit should be stored as a single uint16_t value  */
    const uint16_t num_bits,  /* i  : number of bits in input bitstream     */
    int16_t bfi               /* i  : bad frame indicator flag              */
#if defined( OBJ_EDITING_API ) && defined( SPLIT_REND_WITH_HEAD_ROT )
    ,
    int16_t isSplitRend,
    ISAR_SPLIT_REND_BITS_DATA *splitRendBits
#endif
)
{
    ivas_error error;
@@ -959,6 +964,18 @@ ivas_error IVAS_DEC_FeedFrame_Serial(
        uint16_t l_ts, nTimeScalerOutSamples;
        uint8_t nTransportChannels, nOutChannels;
        int16_t nResidualSamples, nSamplesTcsScaled, nOutSamplesElse;


#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( isSplitRend )
    {
        if ( ( error = isar_set_split_rend_setup( hIvasDec->st_ivas->hSplitBinRend, &hIvasDec->st_ivas->hRenderConfig->split_rend_config, hIvasDec->st_ivas->hCombinedOrientationData, splitRendBits ) ) != IVAS_ERR_OK )
        {
            return error;
        }
    }
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
        if ( ( error = IVAS_DEC_Setup( hIvasDec, &l_ts, &nTransportChannels, &nOutChannels, &hIvasDec->nSamplesFlushed, hIvasDec->pcmType, hIvasDec->flushbuffer ) ) != IVAS_ERR_OK )
#else
@@ -1505,10 +1522,12 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream(
    *needNewFrame = false;
    hSplitBinRend = st_ivas->hSplitBinRend;

#ifndef OBJ_EDITING_API
    if ( ( error = isar_set_split_rend_setup( hSplitBinRend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hCombinedOrientationData, splitRendBits ) ) != IVAS_ERR_OK )
    {
        return error;
    }
#endif

    numPoses = hSplitBinRend->splitrend.multiBinPoseData.num_poses;

@@ -3149,7 +3168,13 @@ ivas_error IVAS_DEC_VoIP_GetSamples(
                bsCompactToSerial( dataUnit->data, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize );


                if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0 ) ) != IVAS_ERR_OK )
                if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, dataUnit->dataSize, 0
#if defined( OBJ_EDITING_API ) && defined( SPLIT_REND_WITH_HEAD_ROT )
                                                           ,
                                                           0,
                                                           0
#endif
                 ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
@@ -3157,7 +3182,13 @@ ivas_error IVAS_DEC_VoIP_GetSamples(
            else if ( hIvasDec->hasDecodedFirstGoodFrame )
            {
                /* Decoder has been initialized with first good frame - do PLC */
                if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1 ) ) != IVAS_ERR_OK )
                if ( ( error = IVAS_DEC_FeedFrame_Serial( hIvasDec, hIvasDec->hVoIP->bs_conversion_buf, 0, 1 
#if defined( OBJ_EDITING_API ) && defined( SPLIT_REND_WITH_HEAD_ROT )
                                                           ,
                                                           0,
                                                           0
#endif
                ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
+5 −0
Original line number Diff line number Diff line
@@ -152,6 +152,11 @@ ivas_error IVAS_DEC_FeedFrame_Serial(
    uint16_t *serial,                           /* i  : buffer containing serial input bitstream. Each bit should be stored as a single uint16_t value  */
    const uint16_t num_bits,                    /* i  : number of bits in input bitstream                                       */
    int16_t bfi                                 /* i  : bad frame indicator flag                                                */
#if defined( OBJ_EDITING_API ) && defined( SPLIT_REND_WITH_HEAD_ROT )
    ,
    int16_t isSplitRend,
    ISAR_SPLIT_REND_BITS_DATA *splitRendBits
#endif
);

#ifdef OBJ_EDITING_API