Commit abc909a5 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Merge remote-tracking branch 'origin/main' into 672-resolve-nokia-todo-s

parents 066d9d92 db9055a6
Loading
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2891,6 +2891,13 @@ cleanup:
#ifdef SUPPORT_JBM_TRACEFILE
    JbmTraceFileWriter_close( &jbmTraceWriter );
#endif
#ifdef FIX_683_JBM_CLEANUP
    MasaFileWriter_close( &masaWriter );
    for ( int16_t i = 0; i < IVAS_MAX_NUM_OBJECTS; i++ )
    {
        IsmFileWriter_close( &ismWriters[i] );
    }
#endif

    if ( decodingFailed && error == IVAS_ERR_OK )
    {
+2 −0
Original line number Diff line number Diff line
@@ -241,6 +241,8 @@
#define FIX_657_REMOVE_EDITING                          /* Nokia: Remove remaining unused coded related to object editing */
#define FIX_634_MASA_JBM_UNUSED_PARAMETER               /* Nokia: Fix issue 634 by removing the unnecessary argument. */
#define FIX_675_WB_OMASA                                /* Nokia: Fix for issue 675 solving the crash in OMASA for WB input */
#define FIX_683_JBM_CLEANUP                             /* FhG: Fix for issue 683, add clean up for ISM and MASA file writers */
#define FIX_689_USAN_QSPHERICAL                         /* Nokia: Fix usan error from issue 689 */

/* ################## End BE DEVELOPMENT switches ######################### */

+35 −6
Original line number Diff line number Diff line
@@ -417,6 +417,27 @@ ivas_error ivas_jbm_dec_tc(
        {
            ivas_mono_downmix_render_passive( st_ivas, output, output_frame );
        }
        else if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL )
        {
            /* sanity check in case of bitrate switching */
            if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC )
            {
                return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for combined MASA and ISM format" );
            }

            /* in case of external rendering, rearrange the channels order */
            mvr2r( output[0], output[MAX_TRANSPORT_CHANNELS - 2], output_frame );
            mvr2r( output[1], output[MAX_TRANSPORT_CHANNELS - 1], output_frame );

            for ( n = 0; n < nchan_transport_ism; n++ )
            {
                mvr2r( output[st_ivas->nchan_transport + n], output[n], output_frame );
            }
            mvr2r( output[MAX_TRANSPORT_CHANNELS - 2], output[n], output_frame );
            mvr2r( output[MAX_TRANSPORT_CHANNELS - 1], output[++n], output_frame );

            ivas_jbm_dec_copy_masa_meta_to_buffer( st_ivas );
        }

#ifndef FIX_657_REMOVE_EDITING
        /* Set edited object positions, if editing enabled */
@@ -701,7 +722,12 @@ ivas_error ivas_jbm_dec_feed_tc_to_renderer(
    {
        ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas );
#ifdef FIX_470_MASA_JBM_EXT
#ifdef MASA_AND_OBJECTS
        if ( ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT ) && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL )
#else

        if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL )
#endif
        {
            ivas_jbm_masa_sf_to_slot_map( st_ivas, n_render_timeslots );
        }
@@ -1687,6 +1713,8 @@ int16_t ivas_jbm_dec_get_num_tc_channels(
    }
#ifdef MASA_AND_OBJECTS
    else if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
    {
        if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_EXTERNAL )
        {
            if ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ )
            {
@@ -1697,6 +1725,7 @@ int16_t ivas_jbm_dec_get_num_tc_channels(
                num_tc += st_ivas->nchan_ism;
            }
        }
    }
#endif
    else if ( st_ivas->ivas_format == MC_FORMAT )
    {
+8 −1
Original line number Diff line number Diff line
@@ -64,7 +64,11 @@ void quantize_direction_frame(
)
{
    int16_t i, j;
#ifdef FIX_689_USAN_QSPHERICAL
    uint16_t idx;
#else
    int16_t idx;
#endif

    /* Quantize directions */
    q_direction->not_in_2D = 0;
@@ -169,8 +173,11 @@ void quantize_direction_frame2D(
    float elevation_orig[MASA_MAXIMUM_CODING_SUBBANDS][MAX_PARAM_SPATIAL_SUBFRAMES] )
{
    int16_t i, j;
#ifdef FIX_689_USAN_QSPHERICAL
    uint16_t idx;
#else
    int16_t idx;

#endif
    /* Quantize directions */
    q_direction->not_in_2D = 0;
    for ( i = q_direction->cfg.start_band; i < q_direction->cfg.nbands; i++ )
+28 −28
Original line number Diff line number Diff line
@@ -1383,57 +1383,57 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit


// OSBA FOA 1ISM at 32 kbps, 48kHz in, 48kHz out, BINAURAL out
//../IVAS_cod -ism_sba 1 1 testv/stvISM1.csv 32000 48 testv/stvOSBA_1ISM_FOA48c.wav bit
//../IVAS_dec BINAURAL 48 bit testv/stvOSBA_1ISM_FOA48c.wav_BINAURAL_32000_48-48.tst
../IVAS_cod -ism_sba 1 1 testv/stvISM1.csv 32000 48 testv/stvOSBA_1ISM_FOA48c.wav bit
../IVAS_dec BINAURAL 48 bit testv/stvOSBA_1ISM_FOA48c.wav_BINAURAL_32000_48-48.tst

// OSBA FOA 2ISM at 64 kbps, 48kHz in, 48kHz out, HOA3 out
//../IVAS_cod -ism_sba 2 1 testv/stvISM1.csv testv/stvISM2.csv 64000 48 testv/stvOSBA_2ISM_FOA48c.wav bit
//../IVAS_dec HOA3 48 bit testv/stvOSBA_2ISM_FOA48c.wav_HOA3_64000_48-48.tst
../IVAS_cod -ism_sba 2 1 testv/stvISM1.csv testv/stvISM2.csv 64000 48 testv/stvOSBA_2ISM_FOA48c.wav bit
../IVAS_dec HOA3 48 bit testv/stvOSBA_2ISM_FOA48c.wav_HOA3_64000_48-48.tst

// OSBA FOA 3ISM at 128 kbps, 48kHz in, 48kHz out, 7_1_4 out
//../IVAS_cod -ism_sba 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_FOA48c.wav bit
//../IVAS_dec 7_1_4 48 bit testv/stvOSBA_3ISM_FOA48c.wav_7_1_4_128000_48-48.tst
../IVAS_cod -ism_sba 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_FOA48c.wav bit
../IVAS_dec 7_1_4 48 bit testv/stvOSBA_3ISM_FOA48c.wav_7_1_4_128000_48-48.tst

// OSBA FOA 4ISM at 256 kbps, 48kHz in, 48kHz out, EXT out
//../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stvOSBA_4ISM_FOA48c.wav bit
//../IVAS_dec EXT 48 bit testv/stvOSBA_4ISM_FOA48c.wav_EXT_256000_48-48.tst
../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stvOSBA_4ISM_FOA48c.wav bit
../IVAS_dec EXT 48 bit testv/stvOSBA_4ISM_FOA48c.wav_EXT_256000_48-48.tst

// OSBA FOA 4ISM at 512 kbps, 48kHz in, 48kHz out, BINAURAL out
//../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_FOA48c.wav bit
//../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_FOA48c.wav_BINAURAL_512000_48-48.tst
../IVAS_cod -ism_sba 4 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_FOA48c.wav bit
../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_FOA48c.wav_BINAURAL_512000_48-48.tst

// OSBA 2OA 1ISM at 24.4 kbps, 48kHz in, 48kHz out, FOA out
//../IVAS_cod -ism_sba 1 2 testv/stvISM1.csv 24400 48 testv/stvOSBA_1ISM_2OA48c.wav bit
//../IVAS_dec FOA 48 bit testv/stvOSBA_1ISM_2OA48c.wav_FOA_24400_48-48.tst
../IVAS_cod -ism_sba 1 2 testv/stvISM1.csv 24400 48 testv/stvOSBA_1ISM_2OA48c.wav bit
../IVAS_dec FOA 48 bit testv/stvOSBA_1ISM_2OA48c.wav_FOA_24400_48-48.tst

// OSBA 2OA 2ISM at 48 kbps, 48kHz in, 48kHz out, MONO out
//../IVAS_cod -ism_sba 2 2 testv/stvISM1.csv testv/stvISM2.csv 48000 48 testv/stvOSBA_2ISM_2OA48c.wav bit
//../IVAS_dec MONO 48 bit testv/stvOSBA_2ISM_2OA48c.wav_MONO_48000_48-48.tst
../IVAS_cod -ism_sba 2 2 testv/stvISM1.csv testv/stvISM2.csv 48000 48 testv/stvOSBA_2ISM_2OA48c.wav bit
../IVAS_dec MONO 48 bit testv/stvOSBA_2ISM_2OA48c.wav_MONO_48000_48-48.tst

// OSBA 2OA 3ISM at 96 kbps, 48kHz in, 48kHz out, STEREO out
//../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 96000 48 testv/stvOSBA_3ISM_2OA48c.wav bit
//../IVAS_dec STEREO 48 bit testv/stvOSBA_3ISM_2OA48c.wav_STEREO_96000_48-48.tst
../IVAS_cod -ism_sba 3 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 96000 48 testv/stvOSBA_3ISM_2OA48c.wav bit
../IVAS_dec STEREO 48 bit testv/stvOSBA_3ISM_2OA48c.wav_STEREO_96000_48-48.tst

// OSBA 2OA 4ISM at 384 kbps, 48kHz in, 48kHz out, BINAURAL out
//../IVAS_cod -ism_sba 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 384000 48 testv/stvOSBA_4ISM_2OA48c.wav bit
//../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_2OA48c.wav_BINAURAL_384000_48-48.tst
../IVAS_cod -ism_sba 4 2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 384000 48 testv/stvOSBA_4ISM_2OA48c.wav bit
../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_2OA48c.wav_BINAURAL_384000_48-48.tst

// OSBA 3OA 1ISM at 512 kbps, 48kHz in, 48kHz out, EXT out
//../IVAS_cod -ism_sba 1 3 testv/stvISM1.csv 512000 48 testv/stvOSBA_1ISM_3OA48c.wav bit
//../IVAS_dec EXT 48 bit testv/stvOSBA_1ISM_3OA48c.wav_EXT_512000_48-48.tst
../IVAS_cod -ism_sba 1 3 testv/stvISM1.csv 512000 48 testv/stvOSBA_1ISM_3OA48c.wav bit
../IVAS_dec EXT 48 bit testv/stvOSBA_1ISM_3OA48c.wav_EXT_512000_48-48.tst

// OSBA 3OA 2ISM at 256 kbps, 48kHz in, 48kHz out, 7_1 out
//../IVAS_cod -ism_sba 2 3 testv/stvISM1.csv testv/stvISM2.csv 256000 48 testv/stvOSBA_2ISM_3OA48c.wav bit
//../IVAS_dec 7_1 48 bit testv/stvOSBA_2ISM_3OA48c.wav_7_1_256000_48-48.tst
../IVAS_cod -ism_sba 2 3 testv/stvISM1.csv testv/stvISM2.csv 256000 48 testv/stvOSBA_2ISM_3OA48c.wav bit
../IVAS_dec 7_1 48 bit testv/stvOSBA_2ISM_3OA48c.wav_7_1_256000_48-48.tst

// OSBA 3OA 3ISM at 128 kbps, 48kHz in, 48kHz out, BINAURAL out
//../IVAS_cod -ism_sba 3 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_3OA48c.wav bit
//../IVAS_dec BINAURAL 48 bit testv/stvOSBA_3ISM_3OA48c.wav_BINAURAL_128000_48-48.tst
../IVAS_cod -ism_sba 3 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 128000 48 testv/stvOSBA_3ISM_3OA48c.wav bit
../IVAS_dec BINAURAL 48 bit testv/stvOSBA_3ISM_3OA48c.wav_BINAURAL_128000_48-48.tst

// OSBA 3OA 4ISM at 16.4 kbps, 48kHz in, 48kHz out, 5_1 out
//../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 16400 48 testv/stvOSBA_4ISM_3OA48c.wav bit
//../IVAS_dec 5_1 48 bit testv/stvOSBA_4ISM_3OA48c.wav_5_1_16400_48-48.tst
../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 16400 48 testv/stvOSBA_4ISM_3OA48c.wav bit
../IVAS_dec 5_1 48 bit testv/stvOSBA_4ISM_3OA48c.wav_5_1_16400_48-48.tst

// OSBA 3OA 4ISM bitrate switching 13.2 to 512, 48kHz in, 48kHz out, BIN out
//../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_4ISM_3OA48c.wav bit
//../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_sw_13k2_512k_48-48.tst
../IVAS_cod -ism_sba 4 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stvOSBA_4ISM_3OA48c.wav bit
../IVAS_dec BINAURAL 48 bit testv/stvOSBA_4ISM_3OA48c.wav_BINAURAL_sw_13k2_512k_48-48.tst
Loading