Commit d34332b6 authored by Lauros Pajunen's avatar Lauros Pajunen
Browse files

Fixes to stereo, binaural_room, and edited rendering, and fixes to msan errors.

parent e71215d9
Loading
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -1979,17 +1979,22 @@ ivas_error preview_indices(
        else if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
        {
            /* read number of objects from the bitstream */
#ifdef OMASA_UPDATES
            st_ivas->nchan_transport = 2; /* always 2 MASA transport channels */
            st_ivas->nchan_ism = 0;
#else
            st_ivas->nchan_transport = 0;
#endif

            if ( total_brate != SID_2k40 && total_brate != FRAME_NO_DATA )
            {
#ifdef OMASA_UPDATES
                st_ivas->nchan_ism = 2 * bit_stream[total_brate / FRAMES_PER_SEC - 1] + bit_stream[total_brate / FRAMES_PER_SEC - 2] + 1;
#endif
                st_ivas->ism_mode = ivas_omasa_ism_mode_select( total_brate, st_ivas->nchan_ism );

#ifdef OMASA_UPDATES
                if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ )
#else
#ifndef OMASA_UPDATES
                if ( st_ivas->ism_mode == ISM_MASA_MODE_ONE_OBJ )
#endif
                {
                    st_ivas->nchan_transport = 0;
                }
@@ -2004,6 +2009,7 @@ ivas_error preview_indices(
                    st_ivas->nchan_transport++;
                    k--;
                }
#endif
            }
        }
#endif
+4 −0
Original line number Diff line number Diff line
@@ -2462,6 +2462,10 @@ void ivas_masa_ism_set_edited_objects(
        {
            hMasaIsmData->azimuth_ism[st_ivas->index_of_edited_ism] = st_ivas->azimuth_edited;
            hMasaIsmData->elevation_ism[st_ivas->index_of_edited_ism] = st_ivas->elevation_edited;
#ifdef OMASA_UPDATES
            st_ivas->hIsmMetaData[st_ivas->index_of_edited_ism]->azimuth = st_ivas->azimuth_edited;
            st_ivas->hIsmMetaData[st_ivas->index_of_edited_ism]->elevation = st_ivas->elevation_edited;
#endif
        }
    }
#ifdef OMASA_UPDATES
+4 −0
Original line number Diff line number Diff line
@@ -2026,7 +2026,11 @@ static ivas_error printConfigInfo_dec(
#ifdef MASA_AND_OBJECTS
            else if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
            {
#ifdef OMASA_UPDATES
                fprintf( stdout, "Input configuration:    combined ISM and MASA (%i ISM stream(s)) \n", st_ivas->nchan_ism );
#else
                fprintf( stdout, "Input configuration:    combined ISM and MASA (%i separated ISM stream(s)) \n", st_ivas->nchan_transport );
#endif
            }
#endif
        }
+11 −6
Original line number Diff line number Diff line
@@ -467,6 +467,10 @@ static void ivas_dirac_dec_binaural_internal(
    {
        numInChannels++;
    }
    else if ( st_ivas->ivas_format == MASA_ISM_FORMAT && st_ivas->ism_mode == ISM_MASA_MODE_DISC && ( st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) )
    {
        numInChannels += (uint8_t) st_ivas->nchan_ism;
    }
#else
    if ( st_ivas->hOutSetup.separateChannelEnabled || ( st_ivas->ivas_format == MASA_ISM_FORMAT && ( st_ivas->ism_mode == ISM_MASA_MODE_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) )
    {
@@ -1220,6 +1224,13 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices(
        }
#endif
    }
#ifdef OMASA_UPDATES
    else if ( st_ivas->ivas_format == MASA_ISM_FORMAT && st_ivas->ism_mode == ISM_MASA_MODE_DISC && ( st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) )
    {
        separateCenterChannelRendering = 1;
        nchanSeparateChannels = (uint8_t) st_ivas->nchan_ism;
    }
#endif
#else
    separateCenterChannelRendering = st_ivas->hOutSetup.separateChannelEnabled;
#endif
@@ -1386,11 +1397,6 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices(
            {
                if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
                {
#ifdef OMASA_UPDATES
                    aziDeg = st_ivas->hMasaIsmData->azimuth_separated_ism;
                    eleDeg = st_ivas->hMasaIsmData->elevation_separated_ism;
                    instantChange = 1;
#else
                    if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC )
                    {
                        aziDeg = st_ivas->hMasaIsmData->azimuth_ism[chB];
@@ -1402,7 +1408,6 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices(
                        eleDeg = st_ivas->hMasaIsmData->elevation_separated_ism;
                        instantChange = 1;
                    }
#endif
                }

                for ( chA = 0; chA < BINAURAL_CHANNELS; chA++ )