Commit e81dcba4 authored by TYAGIRIS's avatar TYAGIRIS
Browse files

OSBA encoder bitrate switching fix

parent 88e86efc
Loading
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -5662,7 +5662,7 @@ void ivas_osba_enc_close(
    OSBA_ENC_HANDLE *hOSba                                      /* i/o: encoder OSBA handle                     */
);

ivas_error ivas_osba_enc_config(
ivas_error ivas_osba_enc_reconfig(
    Encoder_Struct *st_ivas                                     /* i/o: IVAS encoder structure                  */
);

@@ -5674,6 +5674,9 @@ void ivas_osba_enc(
    const int16_t nchan_ism,                                    /* i  : Number of objects for parameter analysis  */
    const ISM_MODE ism_mode,                                    /* i  : ISM mode                                  */
    const int16_t sba_analysis_order                            /* i  : SBA order evaluated in DirAC/SPAR encoder */
#ifdef OSBA_BR_SWITCHING
	, const int32_t input_Fs                                    /* i  : input sampling rate*/
#endif
);
#ifdef OSBA_DISC_OBJ_MCT
ivas_error ivas_masa_ism_data_open(
+1 −0
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@
#define OSBA_MONO_STEREO_OUTPUT
#define OSBA_AMBISONICS_OUT
#define OSBA_LS_OUT
#define OSBA_BR_SWITCHING
#endif

/* ################## End BE DEVELOPMENT switches ######################### */
+13 −3
Original line number Diff line number Diff line
@@ -390,13 +390,22 @@ ivas_error ivas_enc(
#ifdef SBA_AND_OBJECTS
    else if ( ivas_format == SBA_ISM_FORMAT )
    {
        /*Default mode for OSBA*/
        // st_ivas->ism_mode = ISM_MODE_NONE;
#ifdef OSBA_BR_SWITCHING
        ivas_osba_enc_reconfig( st_ivas );
#endif

#ifndef OSBA_BR_SWITCHING
        if ( st_ivas->ism_mode == ISM_MODE_NONE ) /*rendering of objects in SBA signal*/
        {
#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 );
            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
#ifdef OSBA_BR_SWITCHING
                           ,
                           hEncoderConfig->input_Fs
#endif
            );
#ifndef OSBA_BR_SWITCHING
        }
        else /*not an option for now*/
        {
@@ -409,6 +418,7 @@ ivas_error ivas_enc(

#endif
        }
#endif

        if ( st_ivas->ism_mode == ISM_MODE_NONE )
        {
+4 −0
Original line number Diff line number Diff line
@@ -102,7 +102,11 @@ void ivas_write_format(
#endif
#ifdef SBA_AND_OBJECTS
        case SBA_ISM_FORMAT:
#ifdef OSBA_BR_SWITCHING
            if ( st_ivas->hEncoderConfig->ivas_total_brate < IVAS_256k )
#else
            if ( st_ivas->ism_mode == ISM_MODE_NONE )
#endif
            {
                ind = 6; /* send SBA format */
                nBits += extra_bits;
+7 −1
Original line number Diff line number Diff line
@@ -879,6 +879,12 @@ ivas_error ivas_ism_metadata_enc_create(
        nchan_transport = MAX_PARAM_ISM_WAVE;
        ivas_set_omasa_TC( st_ivas->ism_mode, n_ISms, &st_ivas->nSCE, &st_ivas->nCPE );
    }
#ifdef OSBA_BR_SWITCHING
    else if ( st_ivas->hEncoderConfig->ivas_format == SBA_ISM_FORMAT )
    {
        nchan_transport = n_ISms;
    }
#endif
    else
    {
#endif
Loading