Commit 881debc3 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

[update] see presentation from 2023.04.27

- 3DOF support
- fix missing quaternion support in IVAS_rend in split-pre mode
- added more error checks for LC3plus
parent a14d802b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
[SPLITREND]
BITRATE = 768000;
DOF = 3;
HQMODE = 0;
POSECORRECTIONMODE = 1;

[GENERAL]
RENDERER = CREND;

[ROOMACOUSTICS]
REVERB = FALSE;
+12 −0
Original line number Diff line number Diff line
@@ -1384,8 +1384,16 @@ typedef enum
#define SPLIT_REND_MAX_ONE_AXIS_MD_POSES           (2)
#define MAX_EXTRAPOLATION_ANGLE                 (15.0f) /* this means additional 15 degrees can be extrapolated on top of MD probing poses*/

#ifdef SPLIT_REND_LC3PLUS
#define SPLIT_REND_MAX_DOF                      (3)
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef SPLIT_REND_LC3PLUS
#define MAX_HEAD_ROT_POSES                      (2 + SPLIT_REND_MAX_YAW_ONLY_POSES + SPLIT_REND_MAX_PITCH_ONLY_POSES + SPLIT_REND_MAX_ROLL_ONLY_POSES) /* TODO tmu : revisit for harmonization */
#else
#define MAX_HEAD_ROT_POSES                      (1 + SPLIT_REND_MAX_YAW_ONLY_POSES + SPLIT_REND_MAX_PITCH_ONLY_POSES + SPLIT_REND_MAX_ROLL_ONLY_POSES)
#endif
#else
#define MAX_HEAD_ROT_POSES                      (1 + SPLIT_REND_MAX_YAW_ONLY_POSES)
#endif
@@ -1456,7 +1464,11 @@ typedef enum
#define SFX_SPAT_BIN_NUM_SUBSAMPLES             64
#define ITD_MEM_LEN                             (MAX_ITD + SFX_SPAT_BIN_SINC_M)
#define L_SUBFRAME5MS_48k                       (L_FRAME48k/4)
#if 1
#define MAX_ANGULAR_STEP                        (0.01f)
#else
#define MAX_ANGULAR_STEP                        (15.0f)
#endif
#define MAX_ANGULAR_STEP_INV                    ( 1.0f / MAX_ANGULAR_STEP )
#define MAX_INTERPOLATION_STEPS                 12
#define BINAURAL_TD_LATENCY_S                   0.0f                        /* ITD fix removes TD renderer delay -- should be cleaned out */
+7 −0
Original line number Diff line number Diff line
@@ -129,6 +129,9 @@ typedef enum
    IVAS_ERR_INVALID_INPUT_ID,
    IVAS_ERR_WRONG_NUM_CHANNELS,
    IVAS_ERR_INVALID_BUFFER_SIZE,
#ifdef SPLIT_REND_LC3PLUS
    IVAS_ERR_LC3PLUS_INVALID_BITRATE,
#endif

    /*----------------------------------------*
     *              unknown error             *
@@ -184,6 +187,10 @@ static inline const char *ivas_error_to_string( ivas_error error_code )
            return "Parse error";
        case IVAS_ERR_END_OF_FILE:
            return "End of file";
#ifdef SPLIT_REND_LC3PLUS
        case IVAS_ERR_LC3PLUS_INVALID_BITRATE:
            return "Specified split rendering bit rate is not supported by LC3plus";
#endif
        default:
            break;
    }
+2 −0
Original line number Diff line number Diff line
@@ -183,6 +183,8 @@

#define SPLIT_REND_LC3PLUS                              /* FhG: split rendering using LC3plus codec */
#define SPLIT_REND_TD_POSE_CORRECTION                   /* FhG: split rendering using LC3plus codec and time-domain pose correction */
#define FIX_SPLIT_REND_OPEN_ERROR_HANDLING              /* adds missing error handling around ivas_split_renderer_open calls  */

#endif

#define RENAME_GWLPR                                    /* FhG: Rename clashing symbol */
+21 −1
Original line number Diff line number Diff line
@@ -1173,9 +1173,19 @@ ivas_error ivas_init_decoder(
#ifdef SPLIT_REND_WITH_HEAD_ROT
        if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL_SPLIT_CLDFB )
        {
#ifdef FIX_SPLIT_REND_OPEN_ERROR_HANDLING
            error = ivas_split_renderer_open( &st_ivas->splitBinRend.splitrend,
                                      &st_ivas->hRenderConfig->split_rend_config,
                                      hDecoderConfig->output_Fs, 1, 0 );
            if(error != IVAS_ERR_OK)
            {
                return error;
            }
#else
            ivas_split_renderer_open( &st_ivas->splitBinRend.splitrend,
                                      &st_ivas->hRenderConfig->split_rend_config,
                                      hDecoderConfig->output_Fs, 1, 0 );
#endif
        }
#endif
    }
@@ -1222,10 +1232,20 @@ ivas_error ivas_init_decoder(
                    st_ivas->hHeadTrackData->sr_pose_pred_axis );
            }
#endif

#ifdef FIX_SPLIT_REND_OPEN_ERROR_HANDLING
            error = ivas_split_renderer_open( &st_ivas->splitBinRend.splitrend,
                                              &st_ivas->hRenderConfig->split_rend_config,
                                              hDecoderConfig->output_Fs, 0, 0 );
            if(error != IVAS_ERR_OK)
            {
                return error;
            }
#else
            ivas_split_renderer_open( &st_ivas->splitBinRend.splitrend,
                                      &st_ivas->hRenderConfig->split_rend_config,
                                      hDecoderConfig->output_Fs, 0, 0 );

#endif
        }
#endif
    }
Loading