Commit ea175153 authored by norvell's avatar norvell
Browse files

Merge with main

parents bb480125 394140be
Loading
Loading
Loading
Loading
Loading
+73 −55
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ workflow:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests
    - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main
    - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main
    - if: $CI_PIPELINE_SOURCE == "web"

stages:
  - maintenance
@@ -717,159 +718,176 @@ codec-comparison-on-main-push:
  stage: test
  tags:
    - sanitizer_test_main
  timeout: "2 hours"
  artifacts:
    name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA"
    when: always
    paths:
      - ep_015.g192
      # second wildcard is necessary to get encoder and no-PLC run logs
      - "CLANG*/logs*"
      - ./LOGS_PLC
      - ./LOGS_noPLC

### --- sanitizer schedule A ---

.sanitizer-test-schedule-A:
  extends:
    - .sanitizer-test-template
  timeout: 2 hours 30 minutes


sanitizer-test-mono:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS

sanitizer-test-stereo:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 1 hour
      start_in: 2 hours 30 minutes
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS

sanitizer-test-stereodmxevs:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 2 hours
      start_in: 5 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEVS mono --tests $SANITIZER_TESTS

sanitizer-test-ism1:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 3 hours
      start_in: 7 hours 30 minutes
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-ism2:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 4 hours
      start_in: 10 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-ism3:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 6 hours
      start_in: 12 hours 30 minutes
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-ism4:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 8 hours
      start_in: 15 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-mc-5_1:
  extends: .sanitizer-test-template
sanitizer-test-masa:
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 10 hours
      start_in: 17 hours 30 minutes
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

### --- sanitizer schedule B ---

.sanitizer-test-schedule-B:
  extends:
    - .sanitizer-test-template
  timeout: 3 hours

sanitizer-test-mc-5_1:
  extends: .sanitizer-test-schedule-B
  rules:
    - if: $SANITIZER_SCHEDULE_B
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

sanitizer-test-mc-5_1_2:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-B
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_B
      when: delayed
      start_in: 12 hours
      start_in: 3 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

sanitizer-test-mc-5_1_4:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-B
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_B
      when: delayed
      start_in: 14 hours
      start_in: 6 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

sanitizer-test-mc-7_1:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-B
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_B
      when: delayed
      start_in: 16 hours
      start_in: 9 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

sanitizer-test-mc-7_1_4:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-B
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_B
      when: delayed
      start_in: 18 hours
      start_in: 12 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

sanitizer-test-masa:
  extends: .sanitizer-test-template
  rules:
    - if: $IS_SANITIZER_TEST_RUN
      when: delayed
      start_in: 20 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS
### --- sanitizer schedule C ---

.sanitizer-test-schedule-C:
  extends:
    - .sanitizer-test-template
  timeout: 6 hours

sanitizer-test-sba:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-C
  rules:
    - if: $IS_SANITIZER_TEST_RUN
      when: delayed
      start_in: 22 hours
    - if: $SANITIZER_SCHEDULE_C
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

sanitizer-test-planarsba:
  extends: .sanitizer-test-template
  extends: .sanitizer-test-schedule-C
  rules:
    - if: $IS_SANITIZER_TEST_RUN
    - if: $SANITIZER_SCHEDULE_C
      when: delayed
      start_in: 24 hours
      start_in: 6 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS
+1 −1
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ target_link_libraries(lib_enc lib_com lib_debug)
file(GLOB libRendSrcs "lib_rend/*.c")
file(GLOB libRendHeaders "lib_rend/*.h")
add_library(lib_rend ${libRendSrcs} ${libRendHeaders})
target_link_libraries(lib_rend lib_com lib_debug)
target_link_libraries(lib_rend lib_dec lib_com lib_debug) # Todo refactor: This dependency on lib_dec should be removed.

file(GLOB libDecSrcs "lib_dec/*.c")
file(GLOB libDecHeaders "lib_dec/*.h")
+2 −2
Original line number Diff line number Diff line
@@ -184,8 +184,8 @@ $(CLI_APIENC): $(OBJS_CLI_APIENC) $(LIB_LIBENC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(L
$(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG)
	$(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIDEC) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIDEC)

$(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG)
	$(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasutil -livasdebug -livascom $(LDLIBS) -o $(CLI_APIREND)
$(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LIBDEC)
	$(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasdec -livasutil -livasdebug -livascom $(LDLIBS) -o $(CLI_APIREND)

$(CLI_UTESTS_CREND): $(OBJS_CLI_UTESTS_CREND) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG)
	$(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_UTESTS_CREND) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND)
+4 −0
Original line number Diff line number Diff line
@@ -223,6 +223,10 @@
      <Project>{54509728-928B-44D9-A118-A6F92F08B34F}</Project>
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
    <ProjectReference Include="lib_dec.vcxproj">
      <Project>{E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}</Project>
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
    <ProjectReference Include="lib_util.vcxproj">
      <Project>{2FA8F384-0775-F3B7-F8C3-85209222FC70}</Project>
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+42 −38
Original line number Diff line number Diff line
@@ -71,10 +71,14 @@ static
    int32_t frame = 0; /* Counter of frames */

#define MIN_NUM_BITS_ACTIVE_FRAME 56
#ifdef REMOVE_SID_HARM_LEFTOVERS
#define NUM_BITS_SID_IVAS_5K2 104
#else
#define NUM_BITS_SID_IVAS_4K4  88
#define NUM_BITS_SID_IVAS_7K8  156
#define NUM_BITS_SID_IVAS_9K3  186
#define NUM_BITS_SID_IVAS_10K2 204
#endif
#define META_LINE_LENGTH           200
#define MAX_FRAME_SIZE             ( 48000 / 50 )
#define MAX_NUM_OUTPUT_CHANNELS    16
@@ -105,20 +109,22 @@ typedef struct
    bool hrtfReaderEnabled;
    char *hrtfFileName;
    IVAS_DEC_INPUT_FORMAT inputFormat;
#ifdef DEBUGGING
    bool forceSubframeBinauralization;
    IVAS_DEC_FORCED_REND_MODE forcedRendMode;
#endif
    bool customLsOutputEnabled;
    char *customLsSetupFilename;
    int16_t orientation_tracking;
    float no_diegetic_pan;
    bool renderConfigEnabled;
    char *renderConfigFilename;

#ifdef DEBUGGING
    bool forceSubframeBinauralization;
    IVAS_DEC_FORCED_REND_MODE forcedRendMode;
#ifdef DEBUG_FOA_AGC
    FILE *agcBitstream; /* temporary */
#endif

#endif

} DecArguments;


@@ -128,12 +134,10 @@ typedef struct

static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg );
static void usage_dec( void );
#ifdef DEBUGGING
static int16_t app_own_random( int16_t *seed );
#endif
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
#ifdef DEBUGGING
static int16_t app_own_random( int16_t *seed );
static IVAS_DEC_FORCED_REND_MODE parseForcedRendModeDec( char *forcedRendModeChar );
#endif

@@ -350,7 +354,11 @@ int main(
                fprintf( stderr, "\nError: input bitstream file %s couldn't be read\n\n", arg.inputBitstreamFilename );
                goto cleanup;
            }
#ifdef REMOVE_SID_HARM_LEFTOVERS
        } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_5K2 );
#else
        } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_4K4 || num_bits == NUM_BITS_SID_IVAS_7K8 || num_bits == NUM_BITS_SID_IVAS_9K3 || num_bits == NUM_BITS_SID_IVAS_10K2 );
#endif

        BS_Reader_Rewind( hBsReader );

@@ -582,10 +590,10 @@ cleanup:
        printf( "\n" );
    }

#ifdef DEBUGGING
#ifdef DEBUG_SBA_AUDIO_DUMP
    ivas_close_sba_decoder_debug_files( arg.output_Fs, numOutChannels, numTransportChannels, pca_ingest_channels );
#endif
#ifdef DEBUGGING
    dbgclose();
#endif

@@ -689,6 +697,9 @@ static bool parseCmdlIVAS_dec(

    arg->forcedRendMode = IVAS_DEC_FORCE_REND_UNFORCED;
    arg->forceSubframeBinauralization = false;
#ifdef DEBUG_FOA_AGC
    arg->agcBitstream = NULL;
#endif
#endif
    arg->output_Fs = 48000;
    arg->outputFormat = IVAS_DEC_OUTPUT_MONO;
@@ -720,9 +731,6 @@ static bool parseCmdlIVAS_dec(

    arg->inputFormat = IVAS_DEC_INPUT_FORMAT_G192;
    arg->no_diegetic_pan = 0.f;
#ifdef DEBUG_FOA_AGC
    arg->agcBitstream = NULL;
#endif

    /*-----------------------------------------------------------------*
     * Initialization
@@ -791,21 +799,6 @@ static bool parseCmdlIVAS_dec(
            arg->jbmOffsetFilename = argv[i];
            i++;
        }
#ifdef DEBUGGING
        else if ( strcmp( argv_to_upper, "-FEC" ) == 0 )
        {
            ftmp = 0.0f;
            if ( sscanf( argv[i + 1], "%f", &ftmp ) != 1 )
            {
                arg->FEPatterFileName = argv[i + 1];
            }
            else
            {
                arg->FER = ftmp;
            }
            i += 2;
        }
#endif
        else if ( strcmp( argv_to_upper, "-Q" ) == 0 )
        {
            arg->quietModeEnabled = true;
@@ -827,6 +820,19 @@ static bool parseCmdlIVAS_dec(
            }
        }
#ifdef DEBUGGING
        else if ( strcmp( argv_to_upper, "-FEC" ) == 0 )
        {
            ftmp = 0.0f;
            if ( sscanf( argv[i + 1], "%f", &ftmp ) != 1 )
            {
                arg->FEPatterFileName = argv[i + 1];
            }
            else
            {
                arg->FER = ftmp;
            }
            i += 2;
        }
        else if ( strcmp( argv_to_upper, "-FORCE" ) == 0 )
        {
            i++;
@@ -837,6 +843,11 @@ static bool parseCmdlIVAS_dec(
                i++;
            }
        }
        else if ( strcmp( argv_to_upper, "-FORCE_SUBFRAME_BIN" ) == 0 ) /* Force binauralization to subframe (5 ms) resolution */
        {
            arg->forceSubframeBinauralization = true;
            i++;
        }
#ifdef DEBUG_MODE_INFO
#ifdef DEBUG_MODE_INFO_TWEAK
        /*-----------------------------------------------------------------*
@@ -948,13 +959,6 @@ static bool parseCmdlIVAS_dec(
            }
            i++;
        }
#ifdef DEBUGGING
        else if ( strcmp( argv_to_upper, "-FORCE_SUBFRAME_BIN" ) == 0 ) /* Force binauralization to subframe (5 ms) resolution */
        {
            arg->forceSubframeBinauralization = true;
            i++;
        }
#endif

        /*-----------------------------------------------------------------*
         * Option not recognized
Loading