Commit 2246df11 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Merge branch 'main' into 1019-socket-interface-for-pose-and-audio

parents bd5e0656 d6e5b4e5
Loading
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -168,7 +168,10 @@ typedef struct
    char *hrtfFileName;

    IVAS_DEC_HRTF_HANDLE *hHrtfTD;
#ifndef FIX_1227_Crend_HRTF_LOADING_OPTIM
    IVAS_DEC_HRTF_CREND_HANDLE *hSetOfHRTF;
#endif

    IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics;

    IVAS_BIN_RENDERER_TYPE binaural_renderer;
@@ -264,7 +267,9 @@ int main(
#endif

    hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */
#ifndef FIX_1227_Crend_HRTF_LOADING_OPTIM
    hHrtfBinary.hSetOfHRTF = NULL; /* just to avoid compilation warning */
#endif
    hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */

    splitRendBits.bits_buf = splitRendBitsBuf;
@@ -863,7 +868,9 @@ cleanup:
    if ( arg.hrtfReaderEnabled )
    {
        destroy_td_hrtf( hHrtfBinary.hHrtfTD );
#ifndef FIX_1227_Crend_HRTF_LOADING_OPTIM
        destroy_SetOfHRTF( hHrtfBinary.hSetOfHRTF );
#endif
        destroy_hrtf_statistics( hHrtfBinary.hHrtfStatistics );
    }

@@ -3988,11 +3995,13 @@ static ivas_error IVAS_DEC_LoadHrtfFromFile(
            destroy_td_hrtf( hHrtfBinary->hHrtfTD );
        }

#ifndef FIX_1227_Crend_HRTF_LOADING_OPTIM
        if ( !( binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT ) && hHrtfBinary->hSetOfHRTF != NULL )
        {
            destroy_SetOfHRTF( hHrtfBinary->hSetOfHRTF );
        }

#endif
        if ( ( error = IVAS_DEC_HRTF_binary_close( hIvasDec, hHrtfBinary->binaural_renderer_old ) ) != IVAS_ERR_OK )
        {
            return error;
@@ -4036,13 +4045,22 @@ static ivas_error IVAS_DEC_LoadHrtfFromFile(

        if ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT )
        {
#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
            IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL;
            if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hHrtfCrend ) ) != IVAS_ERR_OK )
#else
            if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hHrtfBinary->hSetOfHRTF ) ) != IVAS_ERR_OK )
#endif
            {
                fprintf( stderr, "\nIVAS_DEC_GetHrtfCRendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
                return error;
            }

#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
            if ( ( error = load_Crend_HRTF_from_binary( *hHrtfCrend, hHrtfBinary->hrtfReader, OutputConfig, hHrtfBinary->hrtf_set_audio_cfg, output_Fs ) ) != IVAS_ERR_OK )
#else
            if ( ( error = create_SetOfHRTF_from_binary( *hHrtfBinary->hSetOfHRTF, hHrtfBinary->hrtfReader, output_Fs ) ) != IVAS_ERR_OK )
#endif
            {
                if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA )
                {
@@ -4051,7 +4069,11 @@ static ivas_error IVAS_DEC_LoadHrtfFromFile(
                }
                else
                {
#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
                    destroy_crend_hrtf( hHrtfCrend );
#else
                    destroy_SetOfHRTF( hHrtfBinary->hSetOfHRTF );
#endif
                }
            }
        }
+27 −0
Original line number Diff line number Diff line
@@ -665,7 +665,11 @@ int main(
    SplitRendBFIFileReader *splitRendBFIReader = NULL;
    Vector3PairFileReader *referenceVectorReader = NULL;
    hrtfFileReader *hrtfFileReader = NULL;
#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
    IVAS_DEC_HRTF_CREND_HANDLE *hHrtfCrend = NULL;
#else
    IVAS_DEC_HRTF_CREND_HANDLE *hSetOfHRTF = NULL;
#endif
    IVAS_DEC_HRTF_FASTCONV_HANDLE *hHrtfFastConv = NULL;
    IVAS_DEC_HRTF_PARAMBIN_HANDLE *hHrtfParambin = NULL;
    IVAS_DEC_HRTF_HANDLE *hHrtfTD = NULL;
@@ -920,13 +924,27 @@ int main(
            }


#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
            if ( ( error = IVAS_REND_GetHrtfCRendHandle( hIvasRend, &hHrtfCrend ) ) != IVAS_ERR_OK )
#else
            if ( ( error = IVAS_REND_GetHrtfCRendHandle( hIvasRend, &hSetOfHRTF ) ) != IVAS_ERR_OK )
#endif
            {
                fprintf( stderr, "\nIVAS_Rend_GetHrtfCRendHandle failed: %s\n\n", ivas_error_to_string( error ) );
                goto cleanup;
            }

#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
            IVAS_AUDIO_CONFIG hrtf_set_audio_cfg = IVAS_AUDIO_CONFIG_7_1_4;
            if ( args.inConfig.ambisonicsBuses->audioConfig != IVAS_AUDIO_CONFIG_INVALID && args.outConfig.audioConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR )
            {
                hrtf_set_audio_cfg = args.inConfig.ambisonicsBuses->audioConfig;
            }

            if ( ( error = load_Crend_HRTF_from_binary( *hHrtfCrend, hrtfFileReader, args.outConfig.audioConfig, hrtf_set_audio_cfg, args.sampleRate ) ) != IVAS_ERR_OK )
#else
            if ( ( error = create_SetOfHRTF_from_binary( *hSetOfHRTF, hrtfFileReader, args.sampleRate ) ) != IVAS_ERR_OK )
#endif
            {
                if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA )
                {
@@ -935,7 +953,11 @@ int main(
                }
                else
                {
#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
                    destroy_crend_hrtf( hHrtfCrend );
#else
                    destroy_SetOfHRTF( hSetOfHRTF );
#endif
                }
            }

@@ -1956,7 +1978,9 @@ cleanup:

    Vector3PairFileReader_close( &referenceVectorReader );
    destroy_td_hrtf( hHrtfTD );
#ifndef FIX_1227_Crend_HRTF_LOADING_OPTIM
    destroy_SetOfHRTF( hSetOfHRTF );
#endif
    destroy_hrtf_statistics( hHrtfStatistics );
    IVAS_REND_Close( &hIvasRend );
    IsmPositionProvider_close( positionProvider );
@@ -2499,6 +2523,9 @@ static CmdlnArgs defaultArgs(
    args.outConfig.audioConfig = IVAS_AUDIO_CONFIG_INVALID;
    args.outConfig.outSetupCustom.num_spk = 0;
    args.outConfig.outSetupCustom.num_lfe = 0;
#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
    args.inConfig.ambisonicsBuses->audioConfig = IVAS_AUDIO_CONFIG_INVALID;
#endif

    for ( int32_t i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i )
    {
+12 −0
Original line number Diff line number Diff line
@@ -425,6 +425,18 @@ def create_display_strings(

        displays.append(display)

    if which == "wmops_per_op":
        # flot.js' "stack: true" depends on the order of data arrays
        # reorder here instead of reworking above loop
        displays_encs = displays[0].split(", \n")
        displays_decs = displays[1].split(", \n")
        displays = [
            displays_encs[0],
            displays_decs[0],
            displays_encs[1],
            displays_decs[1],
        ]

    return displays


+72 −29
Original line number Diff line number Diff line
@@ -648,30 +648,61 @@ function WMOPS_perOP() {
        previousPoint = item.datapoint;
        $("#tooltip").remove();

        var encData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[0];
        var decData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[1];          
        var encData, decData;
        var encRefData, decRefData;
        var text = "";

        if (Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays.length == 2) {
          encData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[0];
          decData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[1];

          var x = item.datapoint[0];
          var y = item.datapoint[1];

        var scoreEnc = parseFloat(encData.data[x][1]);
        var scoreDec = parseFloat(decData.data[x][1]);
          var scoreEnc = Math.max(parseFloat(encData.data[x][1]), 0);
          var scoreDec = Math.max(parseFloat(decData.data[x][1]), 0);
          var scoreCodec = Math.round((scoreEnc + scoreDec) * 100) / 100;

        var text = "";

          text += "<b><u>Mode: " + Graphs_WMOPS_perOP.wmops_worstcase_per_op.runs[x].operatingPoint + "</u></b><br>";

        text += 'Score: ' + Math.round(y * 100) / 100;
        if (graph.direction == -1)
          text += " WMOPS";
        if( item.series.id == "worstCaseEnc" ){
          text += " (enc)";
          text += "Worst case enc: "   + scoreEnc + " WMOPS<br>";
          text += "Worst case dec: "   + scoreDec + " WMOPS<br>";
          text += "Worst case codec: " + scoreCodec + " WMOPS<br><br>";

          var nEntriesWmopsGraph = Graphs_WMOPS.wmops_worstcase.runs.length - 1;
          text += "<a href=\"logs/" + Graphs_WMOPS.wmops_worstcase.runs[nEntriesWmopsGraph].logFile + "\">Logfile</a><br>";
        }
        if( item.series.id == "worstCaseDec" ){
          text += " (enc + dec)";
        else if (Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays.length == 4) {
          encData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[0];
          decData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[1];

          encRefData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[2];
          decRefData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[3];

          var x = item.datapoint[0];
          var y = item.datapoint[1];

          var run = Graphs_WMOPS_perOP.wmops_worstcase_per_op.runs[x];
          var op = run.operatingPoint;
          var codec = op.split(" - ")[1];

          var scoreEnc, scoreDec;

          if (codec == "FLT REF")
          {
            x = (x - 1) / 2;
            scoreEnc = Math.max(parseFloat(encRefData.data[x][1]), 0);
            scoreDec = Math.max(parseFloat(decRefData.data[x][1]), 0);
          }
          else if (codec == "BASOP") {
            x = x / 2;
            scoreEnc = Math.max(parseFloat(encData.data[x][1]), 0);
            scoreDec = Math.max(parseFloat(decData.data[x][1]), 0);
          }
        text += "<br><br>";

          var scoreCodec = Math.round((scoreEnc + scoreDec) * 100) / 100;

          text += "<b><u>Mode: " + op + "</u></b><br>";

          text += "Worst case enc: "   + scoreEnc + " WMOPS<br>";
          text += "Worst case dec: "   + scoreDec + " WMOPS<br>";
@@ -679,7 +710,7 @@ function WMOPS_perOP() {

          var nEntriesWmopsGraph = Graphs_WMOPS.wmops_worstcase.runs.length - 1;
          text += "<a href=\"logs/" + Graphs_WMOPS.wmops_worstcase.runs[nEntriesWmopsGraph].logFile + "\">Logfile</a><br>";
      
        }
        showToolTip(item.pageX, item.pageY, text);

      });
@@ -689,7 +720,19 @@ function WMOPS_perOP() {

    $(document).ready(function () {
        // need to get worst case of enc + dec combined, because values are stacked in the graph
        var max = get_max_y_val_for_plotting(Graphs_WMOPS.wmops_worstcase.displays, 50);
        var displays = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays;
        var encData, decData;
        if (displays.length == 2) {
            encData = [displays[0]];
            decData = [displays[1]];
        }
        else if (displays.length == 4) {
            encData = [displays[0], displays[2]];
            decData = [displays[1], displays[3]];
        }
        var max_enc = get_max_y_val_for_plotting(encData, 1);
        var max_dec = get_max_y_val_for_plotting(decData, 1);
        var max = Math.ceil( (max_enc + max_dec ) / 50) * 50;
        drawGraph($("#wmops_per_op-graph"), Graphs_WMOPS_perOP.wmops_worstcase_per_op, max);
    });

+4 −0
Original line number Diff line number Diff line
@@ -175,7 +175,11 @@ typedef struct ivas_masa_metadata_frame_struct *IVAS_MASA_METADATA_HANDLE;
typedef struct ivas_masa_decoder_ext_out_meta_struct *IVAS_MASA_DECODER_EXT_OUT_META_HANDLE;

typedef struct TDREND_HRFILT_FiltSet_struct *IVAS_DEC_HRTF_HANDLE;
#ifdef FIX_1227_Crend_HRTF_LOADING_OPTIM
typedef struct ivas_hrtf_crend_structure *IVAS_DEC_HRTF_CREND_HANDLE;
#else
typedef struct ivas_hrtfs_crend_structure *IVAS_DEC_HRTF_CREND_HANDLE;
#endif
typedef struct ivas_hrtfs_fastconv_struct *IVAS_DEC_HRTF_FASTCONV_HANDLE;
typedef struct ivas_hrtfs_parambin_struct *IVAS_DEC_HRTF_PARAMBIN_HANDLE;
typedef struct ivas_hrtfs_statistics_struct *IVAS_DEC_HRTF_STATISTICS_HANDLE;
Loading