Commit 3258593a authored by emerit's avatar emerit
Browse files

Merge branch '744-fix-sofa-to-rom-tables-and-binaural-binary-files' of...

Merge branch '744-fix-sofa-to-rom-tables-and-binaural-binary-files' of https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec into 744-fix-sofa-to-rom-tables-and-binaural-binary-files
parents 3e17c56d 2d997da3
Loading
Loading
Loading
Loading
+84 −20
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ def test_binary_file(test_info, out_fs):

""" Multichannel """

@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[:-1])
@pytest.mark.parametrize("out_fs", SAMPLE_RATE)
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC)
def test_multichannel_binaural_static(test_info, in_fmt, out_fmt, out_fs):
@@ -69,7 +69,7 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt, out_fs):
    )

@pytest.mark.parametrize("trj_file", [HR_TRAJECTORIES_TO_TEST[0]])
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[:-1])
@pytest.mark.parametrize("out_fs", SAMPLE_RATE)
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC)
def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, out_fs, trj_file):
@@ -98,7 +98,7 @@ def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, out_fs,

""" Ambisonics """

@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[:-1])
@pytest.mark.parametrize("fs", SAMPLE_RATE[1:])
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_SBA)
def test_sba_binaural_static(test_info, in_fmt, fs, out_fmt):
@@ -121,7 +121,7 @@ def test_sba_binaural_static(test_info, in_fmt, fs, out_fmt):
    )

@pytest.mark.parametrize("trj_file", [HR_TRAJECTORIES_TO_TEST[0]])
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[:-1])
@pytest.mark.parametrize("fs", SAMPLE_RATE[1:])
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_SBA)
def test_sba_binaural_headrotation(test_info, in_fmt, fs, out_fmt, trj_file):
@@ -146,7 +146,7 @@ def test_sba_binaural_headrotation(test_info, in_fmt, fs, out_fmt, trj_file):

""" MASA """

@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[:-1])
@pytest.mark.parametrize("fs", SAMPLE_RATE[-1:])
@pytest.mark.parametrize("in_dir", INPUT_FORMATS_MASA["dir"])
@pytest.mark.parametrize("in_tc", INPUT_FORMATS_MASA["tc"])
@@ -172,7 +172,7 @@ def test_masa_binaural_static(test_info, in_tc, in_dir, fs, out_fmt):
    )

@pytest.mark.parametrize("trj_file", [HR_TRAJECTORIES_TO_TEST[1]])
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[:-1])
@pytest.mark.parametrize("fs", SAMPLE_RATE[-1:])
@pytest.mark.parametrize("in_dir", INPUT_FORMATS_MASA["dir"])
@pytest.mark.parametrize("in_tc", INPUT_FORMATS_MASA["tc"])
@@ -200,60 +200,124 @@ def test_masa_binaural_headrotation(test_info, in_tc, in_dir, fs, out_fmt, trj_f

""" ISM """

@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("fs", SAMPLE_RATE[-1:])
@pytest.mark.parametrize("out_fmt", [OUTPUT_FORMATS_BINAURAL[0]])
@pytest.mark.parametrize("out_fs", SAMPLE_RATE)
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM)
def test_ism_binaural_static(test_info, in_fmt, fs, out_fmt):
def test_ism_binaural_static(test_info, in_fmt, out_fs, out_fmt):

    # -ism [+]Ch Files : ISM format
    #                    where Ch specifies the number of ISMs (1-4)
    #                    and Files specify input files containing metadata, one file per object

    in_fs = 48
    bitrate = BITRATE_ISM[in_fmt]
    option_list = ["-ism", in_fmt]
    metadata_file_list = []
    for n in range(int(in_fmt)):
        test = str(TESTV_DIR.joinpath(FORMAT_TO_METADATA_FILES["ISM"].format(n+1, fs)))
        test = str(TESTV_DIR.joinpath(FORMAT_TO_METADATA_FILES["ISM"].format(n+1, in_fs)))
        metadata_file_list.append(test)
    option_list.extend(metadata_file_list)
    in_file = FORMAT_TO_FILE_ISM_WOEXT.format(in_fmt, fs)
    in_file = FORMAT_TO_FILE_ISM_WOEXT.format(in_fmt, in_fs)

    compare_rom_vs_binary(
        test_info, 
        option_list,
        bitrate,
        in_file,
        fs,
        in_fs,
        out_fmt, 
        fs,
        out_fs,
    )

@pytest.mark.parametrize("trj_file", [HR_TRAJECTORIES_TO_TEST[0]])
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL)
@pytest.mark.parametrize("fs", SAMPLE_RATE[-1:])
@pytest.mark.parametrize("out_fmt", [OUTPUT_FORMATS_BINAURAL[0]])
@pytest.mark.parametrize("out_fs", SAMPLE_RATE)
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM)
def test_ism_binaural_headrotation(test_info, in_fmt, fs, out_fmt, trj_file):
def test_ism_binaural_headrotation(test_info, in_fmt, out_fs, out_fmt, trj_file):

    # -ism [+]Ch Files : ISM format
    #                    where Ch specifies the number of ISMs (1-4)
    #                    and Files specify input files containing metadata, one file per object

    in_fs = 48
    bitrate = BITRATE_ISM[in_fmt]
    option_list = ["-ism", in_fmt]
    metadata_file_list = []
    for n in range(int(in_fmt)):
        test = str(TESTV_DIR.joinpath(FORMAT_TO_METADATA_FILES["ISM"].format(n+1, fs)))
        test = str(TESTV_DIR.joinpath(FORMAT_TO_METADATA_FILES["ISM"].format(n+1, in_fs)))
        metadata_file_list.append(test)
    option_list.extend(metadata_file_list)
    in_file = FORMAT_TO_FILE_ISM_WOEXT.format(in_fmt, fs)
    in_file = FORMAT_TO_FILE_ISM_WOEXT.format(in_fmt, in_fs)

    compare_rom_vs_binary(
        test_info, 
        option_list,
        bitrate,
        in_file,
        fs,
        in_fs,
        out_fmt, 
        fs,
        out_fs,
        trj_file=str(TESTV_DIR.joinpath(f"{trj_file}.csv"))
    )

""" ISM - Room Reverb """

@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[-1:])
@pytest.mark.parametrize("out_fs", SAMPLE_RATE)
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM)
def test_ism_binaural_roomreverb_static(test_info, in_fmt, out_fs, out_fmt):

    # -ism [+]Ch Files : ISM format
    #                    where Ch specifies the number of ISMs (1-4)
    #                    and Files specify input files containing metadata, one file per object

    in_fs = 48
    bitrate = BITRATE_ISM[in_fmt]
    option_list = ["-ism", in_fmt]
    metadata_file_list = []
    for n in range(int(in_fmt)):
        test = str(TESTV_DIR.joinpath(FORMAT_TO_METADATA_FILES["ISM"].format(n+1, in_fs)))
        metadata_file_list.append(test)
    option_list.extend(metadata_file_list)
    in_file = FORMAT_TO_FILE_ISM_WOEXT.format(in_fmt, in_fs)

    compare_rom_vs_binary(
        test_info, 
        option_list,
        bitrate,
        in_file,
        in_fs,
        out_fmt, 
        out_fs,
    )

@pytest.mark.parametrize("trj_file", [HR_TRAJECTORIES_TO_TEST[0]])
@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL[-1:])
@pytest.mark.parametrize("out_fs", SAMPLE_RATE)
@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM)
def test_ism_binaural_roomreverb_headrotation(test_info, in_fmt, out_fs, out_fmt, trj_file):

    # -ism [+]Ch Files : ISM format
    #                    where Ch specifies the number of ISMs (1-4)
    #                    and Files specify input files containing metadata, one file per object

    in_fs = 48
    bitrate = BITRATE_ISM[in_fmt]
    option_list = ["-ism", in_fmt]
    metadata_file_list = []
    for n in range(int(in_fmt)):
        test = str(TESTV_DIR.joinpath(FORMAT_TO_METADATA_FILES["ISM"].format(n+1, in_fs)))
        metadata_file_list.append(test)
    option_list.extend(metadata_file_list)
    in_file = FORMAT_TO_FILE_ISM_WOEXT.format(in_fmt, in_fs)

    compare_rom_vs_binary(
        test_info, 
        option_list,
        bitrate,
        in_file,
        in_fs,
        out_fmt, 
        out_fs,
        trj_file=str(TESTV_DIR.joinpath(f"{trj_file}.csv"))
    )
 No newline at end of file