Commit 086e3e7d authored by sagnowski's avatar sagnowski
Browse files

Add check for valid MASA metadata before rendering

parent 55e5bf07
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ typedef enum
    IVAS_ERR_INVALID_INPUT_ID,
    IVAS_ERR_WRONG_NUM_CHANNELS,
    IVAS_ERR_INVALID_BUFFER_SIZE,
    IVAS_ERR_MISSING_METADATA,
#endif

    /*----------------------------------------*
+9 −2
Original line number Diff line number Diff line
@@ -145,6 +145,7 @@ typedef struct
    input_base base;
    DecoderDummy *decDummy;
    MASA_METADATA_FRAME masaMetadata;
    bool metadataHasBeenFed;
} input_masa;
#endif

@@ -2130,8 +2131,8 @@ static ivas_error setRendInputActiveMasa(
    {
        return error;
    }
    /* TODO(sgi): Don't hard-code enableRenderConfig here (last argument) */
    inputMasa->decDummy = initDecoderDummy( *rendCtx.pOutSampleRate, (int16_t)numInChannels, outConfig, 0 );
    inputMasa->metadataHasBeenFed = false;

    if ( ( error = updateMasaDummyDec( inputMasa, outConfig ) ) != IVAS_ERR_OK )
    {
@@ -2314,6 +2315,7 @@ ivas_error IVAS_REND_Open(
                           0,
                           getRendCtx( hIvasRend ) );
        hIvasRend->inputsMasa[i].decDummy = NULL;
        hIvasRend->inputsMasa[i].metadataHasBeenFed = false;
    }
#endif

@@ -3144,6 +3146,7 @@ ivas_error IVAS_REND_FeedInputMasaMetadata(

    inputMasa = (input_masa *) inputBase;
    inputMasa->masaMetadata = *masaMetadata;
    inputMasa->metadataHasBeenFed = true;

    return IVAS_ERR_OK;
}
@@ -4560,6 +4563,11 @@ static ivas_error renderInputMasa(
    ivas_error error;
    IVAS_REND_AudioBuffer inAudio;

    if ( !masaInput->metadataHasBeenFed )
    {
        return IVAS_ERR_MISSING_METADATA;
    }

    inAudio = masaInput->base.inputBuffer;

    if ( masaInput->base.numNewSamplesPerChannel != outAudio.config.numSamplesPerChannel )
@@ -4575,7 +4583,6 @@ static ivas_error renderInputMasa(
             inAudio.data,
             inAudio.config.numSamplesPerChannel * inAudio.config.numChannels );

    /* TODO(sgi):  */
    switch ( getAudioConfigType( outConfig ) )
    {
        case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: