Commit aec28e41 authored by reutelhuber's avatar reutelhuber
Browse files

implement Ambisonics output for OSBA

parent 5643df9b
Loading
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -165,7 +165,9 @@ typedef enum
#ifdef OSBA_MONO_STEREO_OUTPUT
    , RENDERER_OSBA_STEREO
#endif

#ifdef OSBA_AMBISONICS_OUT
    , RENDERER_OSBA_AMBI
#endif
} RENDERER_TYPE;

/*----------------------------------------------------------------------------------*
+1 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@
#define ENABLE_ISM_MD_CODING
#define OSBA_EXT_OUT
#define OSBA_MONO_STEREO_OUTPUT
#define OSBA_AMBISONICS_OUT
#endif
/* ################## End BE DEVELOPMENT switches ######################### */

+26 −0
Original line number Diff line number Diff line
@@ -634,6 +634,32 @@ ivas_error ivas_dec(
                v_add( output[n], output[n + max(nchan_out, nchan_ism)], output[n], output_frame );
            }
        }
#endif
#ifdef OSBA_AMBISONICS_OUT
        else if ( st_ivas->renderer_type == RENDERER_OSBA_AMBI )
        {
            float tmp_ism_out[MAX_OUTPUT_CHANNELS][L_FRAME48k];
            float *p_tmp_ism_out[MAX_OUTPUT_CHANNELS];

            for ( n = 0; n < nchan_out; n++ )
            {
                p_tmp_ism_out[n] = &tmp_ism_out[n][0];
            }

            for ( n = 0; n < nchan_ism; n++ )
            {
                mvr2r( output[n], tmp_ism_out[n], output_frame );
            }

            ivas_ism2sba( p_tmp_ism_out, st_ivas->hIsmRendererData, st_ivas->hIsmMetaData, st_ivas->nchan_ism, output_frame, st_ivas->hIntSetup.ambisonics_order );

            ivas_sba_upmixer_renderer( st_ivas, &output[st_ivas->nchan_ism], output_frame );

            for ( n = 0; n < nchan_out; n++ )
            {
                v_add( output[n + nchan_ism], tmp_ism_out[n], output[n], output_frame );
            }
        }
#endif
        else /*HOA3 rendering for now*/
        {
+3 −0
Original line number Diff line number Diff line
@@ -849,6 +849,9 @@ ivas_error ivas_dirac_dec_config(
        case RENDERER_BINAURAL_FASTCONV_ROOM:
        case RENDERER_SBA_LINEAR_ENC:
        case RENDERER_SBA_LINEAR_DEC:
#ifdef OSBA_AMBISONICS_OUT
        case RENDERER_OSBA_AMBI:
#endif
            need_dirac_rend = 1;
            break;
        default:
+6 −0
Original line number Diff line number Diff line
@@ -1706,6 +1706,9 @@ ivas_error ivas_init_decoder(
           st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ||
#ifdef OSBA_MONO_STEREO_OUTPUT
           st_ivas->renderer_type == RENDERER_OSBA_STEREO ||
#endif
#ifdef OSBA_AMBISONICS_OUT
           st_ivas->renderer_type == RENDERER_OSBA_AMBI ||
#endif
           st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ||
           st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ||
@@ -2434,6 +2437,9 @@ void ivas_init_dec_get_num_cldfb_instances(
#ifdef OSBA_MONO_STEREO_OUTPUT
        case RENDERER_OSBA_STEREO:
#endif
#ifdef OSBA_AMBISONICS_OUT
        case RENDERER_OSBA_AMBI:
#endif
#ifdef OSBA_DISC_OBJ_MCT
            if ( st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT )
#else
Loading