Commit 9b48295a authored by vaclav's avatar vaclav
Browse files

Merge branch '454-dirac-cleanup' of...

Merge branch '454-dirac-cleanup' of https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec into 454-dirac-cleanup
parents 292afc73 0df555e0
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -657,7 +657,7 @@ clang-format-check:
# check bitexactness to EVS windows binaries
be-2-evs-windows:
  extends:
    - .rules-basis
    - .rules-main-push
  tags:
    - ivas-windows
  stage: test
+29 −0
Original line number Diff line number Diff line
@@ -109,6 +109,9 @@ typedef struct
    float no_diegetic_pan;
    bool renderConfigEnabled;
    char *renderConfigFilename;
#ifdef COMPLEXITY_LEVEL_INDICATION
    IVAS_DEC_COMPLEXITY_LEVEL complexityLevel;
#endif

#ifdef DEBUGGING
    IVAS_DEC_FORCED_REND_MODE forcedRendMode;
@@ -757,6 +760,9 @@ static bool parseCmdlIVAS_dec(
    arg->quietModeEnabled = false;
    arg->delayCompensationEnabled = true;
    arg->voipMode = false;
#ifdef COMPLEXITY_LEVEL_INDICATION
    arg->complexityLevel = IVAS_DEC_COMPLEXITY_LEVEL_THREE;
#endif

    arg->enableHeadRotation = false;
    arg->headrotTrajFileName = NULL;
@@ -1051,6 +1057,25 @@ static bool parseCmdlIVAS_dec(
            }
            i++;
        }
#ifdef COMPLEXITY_LEVEL_INDICATION
        else if ( strcmp( argv_to_upper, "-LEVEL" ) == 0 )
        {
            int16_t level;

            ++i;
            level = (int16_t) atoi( argv[i++] );
            if ( level < IVAS_DEC_COMPLEXITY_LEVEL_ONE || level > IVAS_DEC_COMPLEXITY_LEVEL_THREE )
            {
                fprintf( stdout, "Invalid complexity level specified.\n" );
                usage_dec();
                return false;
            }
            else if ( level == IVAS_DEC_COMPLEXITY_LEVEL_ONE || level == IVAS_DEC_COMPLEXITY_LEVEL_TWO )
            {
                fprintf( stdout, "Complexity levels 1 and 2 will be defined after characterisation - default to level 3 (full functionality).\n" );
            }
        }
#endif

        /*-----------------------------------------------------------------*
         * Option not recognized
@@ -1202,6 +1227,10 @@ static void usage_dec( void )
    fprintf( stdout, "                      containing FEC pattern (short values of 0 (good) or 1 (bad))\n" );
    fprintf( stdout, "                      default is OFF, if this option is not used\n" );
    fprintf( stdout, "-force R            : Force specific binaural rendering mode, R = (TDREND, CLDFBREND),\n" );
#ifdef COMPLEXITY_LEVEL_INDICATION
    fprintf( stdout, "-level level        : Complexity level, level = (1, 2, 3), will be defined after characterisation. \n" );
    fprintf( stdout, "                      Currently, all values default to level 3 (full functionality).\n" );
#endif
#endif
#ifdef DEBUG_MODE_INFO
#ifdef DEBUG_MODE_INFO_TWEAK
+34 −0
Original line number Diff line number Diff line
@@ -111,6 +111,9 @@ typedef struct
    IVAS_ENC_CHANNEL_AWARE_CONFIG caConfig;
    const char *ca_config_file;
    bool mimeOutput;
#ifdef COMPLEXITY_LEVEL_INDICATION
    IVAS_ENC_COMPLEXITY_LEVEL complexityLevel;
#endif

#ifdef DEBUGGING
    IVAS_ENC_FORCED_MODE forcedMode;
@@ -878,6 +881,9 @@ static void initArgStruct( EncArguments *arg )
    arg->ca_config_file = NULL;
    arg->mimeOutput = false;
    arg->ism_extended_metadata = false;
#ifdef COMPLEXITY_LEVEL_INDICATION
    arg->complexityLevel = IVAS_ENC_COMPLEXITY_LEVEL_THREE;
#endif

#ifdef DEBUGGING
    arg->forcedMode = IVAS_ENC_FORCE_UNFORCED;
@@ -1190,6 +1196,32 @@ static bool parseCmdlIVAS_enc(
            ++i;
        }


#ifdef COMPLEXITY_LEVEL_INDICATION
        /*-----------------------------------------------------------------*
         * Complexity Level
         *-----------------------------------------------------------------*/

        /* actual parsing of level will be implemented after characterization */
        else if ( strcmp( argv_to_upper, "-LEVEL" ) == 0 )
        {
            int16_t level;

            ++i;
            level = (int16_t) atoi( argv[i++] );
            if ( level < IVAS_ENC_COMPLEXITY_LEVEL_ONE || level > IVAS_ENC_COMPLEXITY_LEVEL_THREE )
            {
                fprintf( stdout, "Invalid complexity level specified.\n" );
                usage_enc();
                return false;
            }
            else if ( level == IVAS_ENC_COMPLEXITY_LEVEL_ONE || level == IVAS_ENC_COMPLEXITY_LEVEL_TWO )
            {
                fprintf( stdout, "Complexity levels 1 and 2 will be defined after characterisation - default to level 3 (full functionality).\n" );
            }
        }
#endif

        /*-----------------------------------------------------------------*
         * IVAS Formats
         *-----------------------------------------------------------------*/
@@ -1697,6 +1729,8 @@ static void usage_enc( void )
    fprintf( stdout, "                      default output bitstream file format is G.192\n" );

    fprintf( stdout, "-bypass mode        : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" );
    fprintf( stdout, "-level level        : Complexity level, level = (1, 2, 3), will be defined after characterisation. \n" );
    fprintf( stdout, "                      Currently, all values default to level 3 (full functionality).\n" );
#ifdef DEBUGGING
    fprintf( stdout, "-force T            : Force specific mode, T = (speech, music, ACELP, GSC, TCX, HQ),\n" );
    fprintf( stdout, "                      alternatively, T can be a text file where each line contains \"nb_frames T\"\n" );
+5 −0
Original line number Diff line number Diff line
@@ -184,6 +184,9 @@

#define FIX_386_CORECODER_RECONFIG_2                    /* VA: Issue 386: Resolve remaining ToDo comments in CoreCoder reconfig. */
#define FIX_440_PARAM_ISM_DIR_NOISE                     /* FhG: Issue 440: Fix directional background noise becoming diffuse in ParamISM */

#define LBR_SBA_DIRAC_FIX                               /* DLB: Bug fix for DirAC at low bitrates */

#define FIX_445_SNS_BUGFIXES                            /* FhG: bug fix for spectral tilt in SNS computation + necessary update of codebooks and converison to fixedpoint-compatible tables */
#define FIX_447_PARAMBIN_MASA_REGU_FAC                  /* Nokia: Issue 447: Fix issue by adjusting regularization factor minimum value. */
#define FIX_441_SBA_PARAMBIN_GAINS                      /* Nokia: Fix issue 441 by changing gains in SBA path of parametric binauralizer */
@@ -193,6 +196,8 @@
#define DIRAC_ALLOC_HARM                                /* VA: harmonize DirAC parameters allocation/deallocation */


#define COMPLEXITY_LEVEL_INDICATION

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */

+9 −0
Original line number Diff line number Diff line
@@ -77,6 +77,15 @@ typedef enum
    IVAS_DEC_INPUT_FORMAT_RTPDUMP_HF = 4, /* RTP payload: only Header-Full format without zero padding for size collision avoidance */
} IVAS_DEC_INPUT_FORMAT;

#ifdef COMPLEXITY_LEVEL_INDICATION
typedef enum _IVAS_DEC_COMPLEXITY_LEVEL
{
    IVAS_DEC_COMPLEXITY_LEVEL_ONE = 1,
    IVAS_DEC_COMPLEXITY_LEVEL_TWO = 2,
    IVAS_DEC_COMPLEXITY_LEVEL_THREE = 3
} IVAS_DEC_COMPLEXITY_LEVEL;
#endif

#ifdef DEBUGGING
typedef enum _IVAS_DEC_FORCED_REND_MODE
{
Loading