Loading apps/encoder.c +27 −11 Original line number Diff line number Diff line Loading @@ -58,8 +58,7 @@ static #define DEFAULT_FIXED_SID_RATE 8 /* DTX SID rate */ /* Additional config info for each input format */ typedef union _EncInputFormatConfig { typedef union _EncInputFormatConfig { /* MONO details */ bool stereoToMonoDownmix; Loading Loading @@ -131,6 +130,9 @@ typedef struct const char *ca_config_file; bool mimeOutput; IVAS_ENC_COMPLEXITY_LEVEL complexityLevel; #ifdef NONBE_FIX_ISM_XOVER_BR bool lbr_disc_obj; #endif #ifdef DEBUGGING IVAS_ENC_FORCED_MODE forcedMode; const char *forcedModeFile; Loading Loading @@ -431,7 +433,13 @@ int main( } break; case IVAS_ENC_INPUT_SBA_ISM: if ( ( error = IVAS_ENC_ConfigureForSBAObjects( hIvasEnc, arg.inputFs, totalBitrate, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba_ism.numObjects, arg.inputFormatConfig.sba_ism.order, arg.inputFormatConfig.sba_ism.isPlanar, arg.pca ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_ENC_ConfigureForSBAObjects( hIvasEnc, arg.inputFs, totalBitrate, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba_ism.numObjects, arg.inputFormatConfig.sba_ism.order, arg.inputFormatConfig.sba_ism.isPlanar, arg.pca #ifdef NONBE_FIX_ISM_XOVER_BR , arg.lbr_disc_obj #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_ENC_ConfigureForSBAObjects failed: %s\n\n", IVAS_ENC_GetErrorMessage( error ) ); exit( -1 ); Loading Loading @@ -1183,6 +1191,14 @@ static bool parseCmdlIVAS_enc( } } #ifdef NONBE_FIX_ISM_XOVER_BR else if ( strcmp( argv_to_upper, "-LBR_DISC_OBJ" ) ) { arg->lbr_disc_obj = true; fprintf( stdout, "Encoding objects separately\n" ); ++i; } #endif /*-----------------------------------------------------------------* * MIME output file format *-----------------------------------------------------------------*/ Loading lib_com/ivas_prot.h +4 −2 Original line number Diff line number Diff line Loading @@ -3018,7 +3018,8 @@ void ivas_mct_core_enc( const int16_t sba_order /* i : Ambisonic (SBA) order */ #ifdef NONBE_FIX_ISM_XOVER_BR , const int16_t nchan_ism /* i : number of input ISM's */ const int16_t nchan_ism, /* i : number of input ISM's */ const int16_t lbr_disc_obj /* i : flag to enable discrete objects ats bitrates < 256 kbps */ #endif ); Loading Loading @@ -5626,7 +5627,8 @@ void ivas_osba_data_close( #ifdef NONBE_FIX_ISM_XOVER_BR int16_t ivas_osba_ism_mode_select( const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t nchan_ism /* i : number of input ISM's */ const int16_t nchan_ism, /* i : number of input ISM's */ const int16_t lbr_disc_obj /* i : flag to enable discrete objects at BRs lower than 256 kbps */ ); #endif Loading lib_enc/ivas_init_enc.c +1 −1 Original line number Diff line number Diff line Loading @@ -675,7 +675,7 @@ ivas_error ivas_init_encoder( st_ivas->ism_mode = ISM_MODE_NONE; #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->hEncoderConfig->nchan_ism ) ) if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hEncoderConfig->lbr_disc_obj ) ) #else if ( ivas_total_brate >= IVAS_256k ) #endif Loading lib_enc/ivas_mct_core_enc.c +3 −2 Original line number Diff line number Diff line Loading @@ -193,7 +193,8 @@ void ivas_mct_core_enc( const int16_t sba_order /* i : Ambisonic (SBA) order */ #ifdef NONBE_FIX_ISM_XOVER_BR , const int16_t nchan_ism /* i : number of input ISM's */ const int16_t nchan_ism, /* i : number of input ISM's */ const int16_t lbr_disc_obj /* i : flag to enable discrete objects ats bitrates < 256 kbps */ #endif ) { Loading Loading @@ -502,7 +503,7 @@ void ivas_mct_core_enc( nAvailBits -= IVAS_FORMAT_SIGNALING_NBITS_EXTENDED; nAvailBits -= SBA_ORDER_BITS + SBA_PLANAR_BITS; #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_format == SBA_ISM_FORMAT && ( ivas_osba_ism_mode_select( ivas_total_brate, nchan_ism ) || ivas_total_brate < IVAS_24k4 ) ) if ( ivas_format == SBA_ISM_FORMAT && ( ivas_osba_ism_mode_select( ivas_total_brate, nchan_ism, lbr_disc_obj ) || ivas_total_brate < IVAS_24k4 ) ) #else if ( ivas_format == SBA_ISM_FORMAT && nChannels > 4 ) #endif Loading lib_enc/ivas_mct_enc.c +2 −1 Original line number Diff line number Diff line Loading @@ -251,7 +251,8 @@ ivas_error ivas_mct_enc( ivas_mct_core_enc( ivas_format, hMCT, st_ivas->hCPE, hMCT->nchan_out_woLFE, ivas_total_brate, switch_bw, ( ivas_format == MC_FORMAT && ( st_ivas->mc_mode == MC_MODE_MCT || st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) ) ? (int16_t) st_ivas->hLFE->lfe_bits : 0, st_ivas->hEncoderConfig->sba_order #ifdef NONBE_FIX_ISM_XOVER_BR , st_ivas->hEncoderConfig->nchan_ism st_ivas->hEncoderConfig->nchan_ism, st_ivas->hEncoderConfig->lbr_disc_obj #endif ); Loading Loading
apps/encoder.c +27 −11 Original line number Diff line number Diff line Loading @@ -58,8 +58,7 @@ static #define DEFAULT_FIXED_SID_RATE 8 /* DTX SID rate */ /* Additional config info for each input format */ typedef union _EncInputFormatConfig { typedef union _EncInputFormatConfig { /* MONO details */ bool stereoToMonoDownmix; Loading Loading @@ -131,6 +130,9 @@ typedef struct const char *ca_config_file; bool mimeOutput; IVAS_ENC_COMPLEXITY_LEVEL complexityLevel; #ifdef NONBE_FIX_ISM_XOVER_BR bool lbr_disc_obj; #endif #ifdef DEBUGGING IVAS_ENC_FORCED_MODE forcedMode; const char *forcedModeFile; Loading Loading @@ -431,7 +433,13 @@ int main( } break; case IVAS_ENC_INPUT_SBA_ISM: if ( ( error = IVAS_ENC_ConfigureForSBAObjects( hIvasEnc, arg.inputFs, totalBitrate, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba_ism.numObjects, arg.inputFormatConfig.sba_ism.order, arg.inputFormatConfig.sba_ism.isPlanar, arg.pca ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_ENC_ConfigureForSBAObjects( hIvasEnc, arg.inputFs, totalBitrate, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba_ism.numObjects, arg.inputFormatConfig.sba_ism.order, arg.inputFormatConfig.sba_ism.isPlanar, arg.pca #ifdef NONBE_FIX_ISM_XOVER_BR , arg.lbr_disc_obj #endif ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_ENC_ConfigureForSBAObjects failed: %s\n\n", IVAS_ENC_GetErrorMessage( error ) ); exit( -1 ); Loading Loading @@ -1183,6 +1191,14 @@ static bool parseCmdlIVAS_enc( } } #ifdef NONBE_FIX_ISM_XOVER_BR else if ( strcmp( argv_to_upper, "-LBR_DISC_OBJ" ) ) { arg->lbr_disc_obj = true; fprintf( stdout, "Encoding objects separately\n" ); ++i; } #endif /*-----------------------------------------------------------------* * MIME output file format *-----------------------------------------------------------------*/ Loading
lib_com/ivas_prot.h +4 −2 Original line number Diff line number Diff line Loading @@ -3018,7 +3018,8 @@ void ivas_mct_core_enc( const int16_t sba_order /* i : Ambisonic (SBA) order */ #ifdef NONBE_FIX_ISM_XOVER_BR , const int16_t nchan_ism /* i : number of input ISM's */ const int16_t nchan_ism, /* i : number of input ISM's */ const int16_t lbr_disc_obj /* i : flag to enable discrete objects ats bitrates < 256 kbps */ #endif ); Loading Loading @@ -5626,7 +5627,8 @@ void ivas_osba_data_close( #ifdef NONBE_FIX_ISM_XOVER_BR int16_t ivas_osba_ism_mode_select( const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t nchan_ism /* i : number of input ISM's */ const int16_t nchan_ism, /* i : number of input ISM's */ const int16_t lbr_disc_obj /* i : flag to enable discrete objects at BRs lower than 256 kbps */ ); #endif Loading
lib_enc/ivas_init_enc.c +1 −1 Original line number Diff line number Diff line Loading @@ -675,7 +675,7 @@ ivas_error ivas_init_encoder( st_ivas->ism_mode = ISM_MODE_NONE; #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->hEncoderConfig->nchan_ism ) ) if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hEncoderConfig->lbr_disc_obj ) ) #else if ( ivas_total_brate >= IVAS_256k ) #endif Loading
lib_enc/ivas_mct_core_enc.c +3 −2 Original line number Diff line number Diff line Loading @@ -193,7 +193,8 @@ void ivas_mct_core_enc( const int16_t sba_order /* i : Ambisonic (SBA) order */ #ifdef NONBE_FIX_ISM_XOVER_BR , const int16_t nchan_ism /* i : number of input ISM's */ const int16_t nchan_ism, /* i : number of input ISM's */ const int16_t lbr_disc_obj /* i : flag to enable discrete objects ats bitrates < 256 kbps */ #endif ) { Loading Loading @@ -502,7 +503,7 @@ void ivas_mct_core_enc( nAvailBits -= IVAS_FORMAT_SIGNALING_NBITS_EXTENDED; nAvailBits -= SBA_ORDER_BITS + SBA_PLANAR_BITS; #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_format == SBA_ISM_FORMAT && ( ivas_osba_ism_mode_select( ivas_total_brate, nchan_ism ) || ivas_total_brate < IVAS_24k4 ) ) if ( ivas_format == SBA_ISM_FORMAT && ( ivas_osba_ism_mode_select( ivas_total_brate, nchan_ism, lbr_disc_obj ) || ivas_total_brate < IVAS_24k4 ) ) #else if ( ivas_format == SBA_ISM_FORMAT && nChannels > 4 ) #endif Loading
lib_enc/ivas_mct_enc.c +2 −1 Original line number Diff line number Diff line Loading @@ -251,7 +251,8 @@ ivas_error ivas_mct_enc( ivas_mct_core_enc( ivas_format, hMCT, st_ivas->hCPE, hMCT->nchan_out_woLFE, ivas_total_brate, switch_bw, ( ivas_format == MC_FORMAT && ( st_ivas->mc_mode == MC_MODE_MCT || st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) ) ? (int16_t) st_ivas->hLFE->lfe_bits : 0, st_ivas->hEncoderConfig->sba_order #ifdef NONBE_FIX_ISM_XOVER_BR , st_ivas->hEncoderConfig->nchan_ism st_ivas->hEncoderConfig->nchan_ism, st_ivas->hEncoderConfig->lbr_disc_obj #endif ); Loading