Loading lib_com/ivas_prot.h +4 −0 Original line number Diff line number Diff line Loading @@ -5652,6 +5652,10 @@ void ivas_osba_enc( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t input_Fs /* i : input sampling rate */ #ifdef FIX_732_PLANAR_SBA_OSBA , const int16_t sba_planar /* i : planar SBA flag*/ #endif ); ivas_error ivas_masa_ism_data_open( Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ #define OSBA_SPLIT_RENDERING #endif #define FIX_732_PLANAR_SBA_OSBA /* Dlb : issue 732: fix for crash in planar mode in OSBA format*/ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ Loading lib_enc/ivas_enc.c +17 −1 Original line number Diff line number Diff line Loading @@ -386,15 +386,28 @@ ivas_error ivas_enc( } else if ( ivas_format == SBA_ISM_FORMAT ) { #ifdef FIX_732_PLANAR_SBA_OSBA int16_t planar_sba_orig; planar_sba_orig = hEncoderConfig->sba_planar; #endif #ifndef NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING ivas_osba_enc_reconfig( st_ivas ); #endif /* Analyze objects and determine needed audio signals */ ivas_osba_enc( st_ivas->hOSba, st_ivas->hIsmMetaData, data_f, input_frame, hEncoderConfig->nchan_ism, st_ivas->ism_mode, st_ivas->sba_analysis_order, hEncoderConfig->input_Fs ); hEncoderConfig->input_Fs #ifdef FIX_732_PLANAR_SBA_OSBA , hEncoderConfig->sba_planar #endif ); if ( st_ivas->ism_mode == ISM_MODE_NONE ) { #ifdef FIX_732_PLANAR_SBA_OSBA /*once SBA and ISM are combined into SBA signal then disable planar flag*/ hEncoderConfig->sba_planar = 0; #endif if ( st_ivas->nchan_transport == 1 ) { st = st_ivas->hSCE[st_ivas->nSCE - 1]->hCoreCoder[0]; Loading Loading @@ -451,6 +464,9 @@ ivas_error ivas_enc( return error; } } #ifdef FIX_732_PLANAR_SBA_OSBA hEncoderConfig->sba_planar = planar_sba_orig; #endif } else { Loading lib_enc/ivas_osba_enc.c +11 −0 Original line number Diff line number Diff line Loading @@ -390,6 +390,10 @@ void ivas_osba_enc( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t input_Fs /* i : input sampling rate*/ #ifdef FIX_732_PLANAR_SBA_OSBA , const int16_t sba_planar /* i : planar SBA flag*/ #endif ) { float data_out_f[MAX_INPUT_CHANNELS][L_FRAME48k]; Loading @@ -407,6 +411,13 @@ void ivas_osba_enc( /* Convert ISM to SBA */ ivas_osba_render_ism_to_sba( data_in_f, data_out_f, input_frame, sba_analysis_order, nchan_ism, hIsmMeta, hOSba->prev_object_dm_gains, hOSba->interpolator ); #ifdef FIX_732_PLANAR_SBA_OSBA if ( sba_planar ) { ivas_sba_zero_vert_comp( &( data_in_f[nchan_ism] ), sba_analysis_order, sba_planar, input_frame ); } #endif /* Merge SBA signals */ ivas_merge_sba_transports( data_out_f, &( data_in_f[nchan_ism] ), data_in_f, input_frame, sba_analysis_order ); } Loading lib_enc/lib_enc.c +5 −0 Original line number Diff line number Diff line Loading @@ -574,7 +574,12 @@ ivas_error IVAS_ENC_ConfigureForSBAObjects( st_ivas->hEncoderConfig->sba_order = order; /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ #ifdef FIX_732_PLANAR_SBA_OSBA /*Input file will always contain all channels for a given order irrespective of planar flag*/ st_ivas->hEncoderConfig->nchan_inp = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, 0 ) + numObjects; #else st_ivas->hEncoderConfig->nchan_inp = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, isPlanar ) + numObjects; #endif st_ivas->hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; Loading Loading
lib_com/ivas_prot.h +4 −0 Original line number Diff line number Diff line Loading @@ -5652,6 +5652,10 @@ void ivas_osba_enc( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t input_Fs /* i : input sampling rate */ #ifdef FIX_732_PLANAR_SBA_OSBA , const int16_t sba_planar /* i : planar SBA flag*/ #endif ); ivas_error ivas_masa_ism_data_open( Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ #define OSBA_SPLIT_RENDERING #endif #define FIX_732_PLANAR_SBA_OSBA /* Dlb : issue 732: fix for crash in planar mode in OSBA format*/ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ Loading
lib_enc/ivas_enc.c +17 −1 Original line number Diff line number Diff line Loading @@ -386,15 +386,28 @@ ivas_error ivas_enc( } else if ( ivas_format == SBA_ISM_FORMAT ) { #ifdef FIX_732_PLANAR_SBA_OSBA int16_t planar_sba_orig; planar_sba_orig = hEncoderConfig->sba_planar; #endif #ifndef NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING ivas_osba_enc_reconfig( st_ivas ); #endif /* Analyze objects and determine needed audio signals */ ivas_osba_enc( st_ivas->hOSba, st_ivas->hIsmMetaData, data_f, input_frame, hEncoderConfig->nchan_ism, st_ivas->ism_mode, st_ivas->sba_analysis_order, hEncoderConfig->input_Fs ); hEncoderConfig->input_Fs #ifdef FIX_732_PLANAR_SBA_OSBA , hEncoderConfig->sba_planar #endif ); if ( st_ivas->ism_mode == ISM_MODE_NONE ) { #ifdef FIX_732_PLANAR_SBA_OSBA /*once SBA and ISM are combined into SBA signal then disable planar flag*/ hEncoderConfig->sba_planar = 0; #endif if ( st_ivas->nchan_transport == 1 ) { st = st_ivas->hSCE[st_ivas->nSCE - 1]->hCoreCoder[0]; Loading Loading @@ -451,6 +464,9 @@ ivas_error ivas_enc( return error; } } #ifdef FIX_732_PLANAR_SBA_OSBA hEncoderConfig->sba_planar = planar_sba_orig; #endif } else { Loading
lib_enc/ivas_osba_enc.c +11 −0 Original line number Diff line number Diff line Loading @@ -390,6 +390,10 @@ void ivas_osba_enc( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t input_Fs /* i : input sampling rate*/ #ifdef FIX_732_PLANAR_SBA_OSBA , const int16_t sba_planar /* i : planar SBA flag*/ #endif ) { float data_out_f[MAX_INPUT_CHANNELS][L_FRAME48k]; Loading @@ -407,6 +411,13 @@ void ivas_osba_enc( /* Convert ISM to SBA */ ivas_osba_render_ism_to_sba( data_in_f, data_out_f, input_frame, sba_analysis_order, nchan_ism, hIsmMeta, hOSba->prev_object_dm_gains, hOSba->interpolator ); #ifdef FIX_732_PLANAR_SBA_OSBA if ( sba_planar ) { ivas_sba_zero_vert_comp( &( data_in_f[nchan_ism] ), sba_analysis_order, sba_planar, input_frame ); } #endif /* Merge SBA signals */ ivas_merge_sba_transports( data_out_f, &( data_in_f[nchan_ism] ), data_in_f, input_frame, sba_analysis_order ); } Loading
lib_enc/lib_enc.c +5 −0 Original line number Diff line number Diff line Loading @@ -574,7 +574,12 @@ ivas_error IVAS_ENC_ConfigureForSBAObjects( st_ivas->hEncoderConfig->sba_order = order; /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ #ifdef FIX_732_PLANAR_SBA_OSBA /*Input file will always contain all channels for a given order irrespective of planar flag*/ st_ivas->hEncoderConfig->nchan_inp = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, 0 ) + numObjects; #else st_ivas->hEncoderConfig->nchan_inp = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, isPlanar ) + numObjects; #endif st_ivas->hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; Loading