Commit a201bd74 authored by emerit's avatar emerit
Browse files

Merge branch 'main' into fix_hrtf_processing_scripts_for_3rd_party_sofa_support

parents 27e1184a a56fb9b1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1460,6 +1460,7 @@ ivas-conformance:
    - mkdir testvec/bin    
    - cp    -force -ErrorAction Ignore scripts/testv/* testvec/testv
    - cp -r -force -ErrorAction Ignore scripts/ls_layouts testvec
    - cp -r -force -ErrorAction Ignore scripts/object_edit testvec
    - cp -r -force -ErrorAction Ignore scripts/switchPaths testvec
    - cp -r -force -ErrorAction Ignore scripts/trajectories testvec
    - cp -r -force -ErrorAction Ignore scripts/binauralRenderer_interface/binaural_renderers_hrtf_data testvec/binauralRenderer_interface
@@ -1546,6 +1547,7 @@ ivas-conformance-linux:
    - mkdir testvec/bin    
    - cp -r scripts/testv/* testvec/testv
    - cp -r scripts/ls_layouts testvec
    - cp -r scripts/object_edit testvec
    - cp -r scripts/switchPaths testvec
    - cp -r scripts/trajectories testvec
    - cp -r scripts/binauralRenderer_interface/binaural_renderers_hrtf_data testvec/binauralRenderer_interface
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@
#include <assert.h>
#ifdef DEBUGGING
#include "debug.h"
#include <string.h>
#endif
#include "wmc_auto.h"

+10 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@
#include "options.h"
#ifdef DEBUGGING
#include "debug.h"
#include <string.h>
#endif
#include "cnst.h"
#include "ivas_cnst.h"
@@ -220,6 +221,15 @@ ivas_error pre_proc_front_ivas(
        }
    }

#ifdef DEBUG_MODE_INFO
    if ( !( hCPE->hStereoTD != NULL && n > 0 ) )
    {
        int16_t tmp_dmx_in[L_FRAME48k];
        mvr2s( signal_in - NS2SA( st->input_Fs, ACELP_LOOK_NS ), tmp_dmx_in, input_frame );
        dbgwrite( tmp_dmx_in, sizeof( int16_t ), input_frame, 1, strcat( fname( debug_dir, "ivas_input_dmx", 0, n + 1, ENC ), ".pcm" ) );
    }
#endif

    lMemRecalc_12k8 = 0;
    lMemRecalc = 0;
    if ( element_mode == IVAS_CPE_TD || element_mode == IVAS_CPE_MDCT )
+2 −1
Original line number Diff line number Diff line
@@ -426,8 +426,9 @@ def compare(
                raise NotImplementedError(
                    f"wav-diff tool not available for {curr_platform}"
                )
            
            search_path = toolsdir.joinpath(curr_platform.replace("Windows", "Win32"))
            wdiff = search_path.joinpath("wav-diff")
            wdiff = search_path.joinpath("wav-diff").with_suffix(".exe" if curr_platform == "Windows" else "")

            if not wdiff.exists():
                wdiff = shutil.which("wav-diff")
+37 −20
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ except ImportError:
def cmp_pcm(
    ref_file,
    cmp_file,
    out_config,
    nchannels: int,
    fs,
    get_mld=False,
    allow_differing_lengths=False,
@@ -39,23 +39,18 @@ def cmp_pcm(
    odg_ref=None,
    ref_jbm_tf: Optional[Path] = None,
    cut_jbm_tf: Optional[Path] = None,
    quiet: Optional[bool] = False,
) -> tuple[int, str]:
    """
    Compare 2 PCM files for bitexactness
    """
    print("Cmp PCM Report")
    print("=====================")

    out_config = "MONO" if out_config == "" else out_config
    # out_config may be a string or a Path. Wrap in str() to avoid error in case it is a Path.
    if str(out_config).upper() not in pyivastest.constants.OC_TO_NCHANNELS:
        nchannels = (
            pyivastest.IvasScriptsCommon.IvasScript.get_n_channels_from_ls_layout(
                out_config
            )
        )
    else:
        nchannels = pyivastest.constants.OC_TO_NCHANNELS[out_config.upper()]
    output_target = sys.stdout
    if quiet:
        output_target = open(os.devnull, "w")

    print("Cmp PCM Report", file=output_target)
    print("=====================", file=output_target)

    s1, fs1 = pyaudio3dtools.audiofile.readfile(
        ref_file, nchannels, fs, outdtype=np.int16
@@ -85,6 +80,7 @@ def cmp_pcm(
        print(
            f"file size in samples: file 1 = {s1.shape[0]},",
            f"file 2 = {s2.shape[0]}",
            file=output_target,
        )
        reason = "FAIL: File lengths differ. MAXIMUM ABS DIFF: None"
        if get_mld:
@@ -95,7 +91,7 @@ def cmp_pcm(
    cmp_result = pyaudio3dtools.audioarray.compare(
        s1,
        s2,
        fs,
        fs * 1000,
        per_frame=False,
        get_mld=get_mld,
        get_ssnr=get_ssnr,
@@ -113,8 +109,8 @@ def cmp_pcm(
    elif not cmp_result["bitexact"]:
        diff_msg = f"MAXIMUM ABS DIFF ==> {cmp_result['max_abs_diff']} at sample num {cmp_result['max_abs_diff_pos_sample']} (assuming {nchannels} channels)"
        first_msg = f"First diff found at sample num {cmp_result['first_diff_pos_sample']} in channel {cmp_result['first_diff_pos_channel']}, frame {cmp_result['first_diff_pos_frame']} (assuming {nchannels} channels, {fs} sampling rate)"
        print(diff_msg)
        print(first_msg)
        print(diff_msg, file=output_target)
        print(first_msg, file=output_target)

        reason = f"Non-BE - MAXIMUM ABS DIFF: {cmp_result['max_abs_diff']}"
        output_differs = 1
@@ -122,7 +118,7 @@ def cmp_pcm(
    if get_mld:
        mld_msg = f"MLD: {cmp_result['MLD']}"
        reason += " - " + mld_msg
        print(mld_msg)
        print(mld_msg, file=output_target)

        if cmp_result["MLD"] <= mld_lim:
            output_differs = 0
@@ -171,7 +167,10 @@ def cmp_pcm(

        msg = f"ODG: {odg}"
        reason += " - " + msg
        print(msg)
        print(msg, file=output_target)

    if quiet:
        output_target.close()

    return output_differs, reason

@@ -214,6 +213,21 @@ def pqevalaudio_wrapper(
        return result.stdout.decode("utf8")


def out_config_2_nchannels(out_config):
    out_config = "MONO" if out_config == "" else out_config
    # out_config may be a string or a Path. Wrap in str() to avoid error in case it is a Path.
    if str(out_config).upper() not in pyivastest.constants.OC_TO_NCHANNELS:
        nchannels = (
            pyivastest.IvasScriptsCommon.IvasScript.get_n_channels_from_ls_layout(
                out_config
            )
        )
    else:
        nchannels = pyivastest.constants.OC_TO_NCHANNELS[out_config.upper()]

    return nchannels


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("ref_file", type=str)
@@ -231,8 +245,11 @@ if __name__ == "__main__":
    parser.add_argument("--get_odg", action="store_true")
    parser.add_argument("--get_ssnr", action="store_true")
    parser.add_argument("--allow_differing_lengths", action="store_true")
    args = parser.parse_args()
    parser.add_argument("--quiet", action="store_true")
    args = vars(parser.parse_args())

    args["nchannels"] = out_config_2_nchannels(args.pop("out_config"))

    result, msg = cmp_pcm(**vars(args))
    result, msg = cmp_pcm(**args)
    print(msg)
    sys.exit(result)
Loading