Commit 95d11cc3 authored by Jan Kiene's avatar Jan Kiene
Browse files

restructure a bit

parent cfc05e94
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -31,9 +31,13 @@ the United Nations Convention on Contracts on the International Sales of Goods.
DTX_ON = "DTXon"
DTX_OFF = "DTXoff"

ISM_MD_BASIC = "MDbasic"
ISM_MD_EXTENDED = "MDextended"
ISM_MD_NULL = "MDnull"

SBA_FOA_PCA_ON = "PCAon"
SBA_FOA_PCA_OFF = "PCAoff"

TESTVECTOR_FOR_INPUT_FORMAT = {
    "STEREO": "ltv{fs}_STEREO.wav",
    "MC_5_1": "ltv{fs}_MC51.wav",
+56 −73
Original line number Diff line number Diff line
@@ -93,54 +93,20 @@ def run_check(

### --------------- Actual testcase definitions ---------------

# "Vanilla" encoder modes
# channel-based modes

STEREO_PARAMS = list(
    product(["STEREO"], BITRATES_STEREO, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON])
)
MC_PARAMS = list(product(INPUT_FORMATS_MC, BITRATES_ALL, SAMPLING_RATES_ALL, [DTX_OFF]))
SBA_PARAMS = list(
    (
        product(
            INPUT_FORMATS_SCENE_BASED,
            BITRATES_ALL[:7],
            SAMPLING_RATES_ALL,
            [DTX_OFF, DTX_ON],
        )
    )
) + list(
    (
        product(
            INPUT_FORMATS_SCENE_BASED, BITRATES_ALL[7:], SAMPLING_RATES_ALL, [DTX_OFF]
        )
    )
)
ISM1_PARAMS = list(
    product(["ISM1"], BITRATES_ISM1, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON])
)
ISM2_PARAMS = list(
    product(["ISM2"], BITRATES_ISM2, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON])
)
ISM3_PARAMS = list(
    product(["ISM3"], BITRATES_ISM3, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON])
)
ISM4_PARAMS = list(
    product(["ISM4"], BITRATES_ISM4, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON])
)
# TODO: MASA
ENCODER_PARAMS = (
ENCODER_CHANNEL_BASED_PARAMS = (
    STEREO_PARAMS
    + MC_PARAMS
    + SBA_PARAMS
    + ISM1_PARAMS
    + ISM2_PARAMS
    + ISM3_PARAMS
    + ISM4_PARAMS
)


@pytest.mark.parametrize("input_format,bitrate,sampling_rate,dtx", ENCODER_PARAMS)
def test_encoder(
@pytest.mark.parametrize("input_format,bitrate,sampling_rate,dtx", ENCODER_CHANNEL_BASED_PARAMS)
def test_encoder_channel_based_modes(
    input_format,
    bitrate,
    sampling_rate,
@@ -164,8 +130,20 @@ def test_encoder(
    )


# ISM "special" metadata cases: extended metadata and NULL
# ISM modes

ISM1_BASIC_NULL_PARAMS = list(
    product(["ISM1"], BITRATES_ISM1, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_BASIC, ISM_MD_NULL])
)
ISM2_BASIC_NULL_PARAMS = list(
    product(["ISM2"], BITRATES_ISM2, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_BASIC, ISM_MD_NULL])
)
ISM3_BASIC_NULL_PARAMS = list(
    product(["ISM3"], BITRATES_ISM3, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_BASIC, ISM_MD_NULL])
)
ISM4_BASIC_NULL_PARAMS = list(
    product(["ISM4"], BITRATES_ISM4, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_BASIC, ISM_MD_NULL])
)
ISM1_EXTENDED_PARAMS = list(
    product(
        ["ISM1"],
@@ -202,31 +180,11 @@ ISM4_EXTENDED_PARAMS = list(
        [ISM_MD_EXTENDED],
    )
)
ISM1_NULL_PARAMS = list(
    product(
        ["ISM1"], BITRATES_ISM1, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_NULL]
    )
)
ISM2_NULL_PARAMS = list(
    product(
        ["ISM2"], BITRATES_ISM2, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_NULL]
    )
)
ISM3_NULL_PARAMS = list(
    product(
        ["ISM3"], BITRATES_ISM3, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_NULL]
    )
)
ISM4_NULL_PARAMS = list(
    product(
        ["ISM4"], BITRATES_ISM4, SAMPLING_RATES_ALL, [DTX_OFF, DTX_ON], [ISM_MD_NULL]
    )
)
ISM_MD_SPECIAL_PARAMS = (
    ISM1_EXTENDED_PARAMS
    + ISM2_EXTENDED_PARAMS
    + ISM3_EXTENDED_PARAMS
    + ISM4_EXTENDED_PARAMS
ISM_PARAMS = (
    ISM1_BASIC_NULL_PARAMS
    + ISM2_BASIC_NULL_PARAMS
    + ISM3_BASIC_NULL_PARAMS
    + ISM4_BASIC_NULL_PARAMS
    + ISM1_EXTENDED_PARAMS
    + ISM2_EXTENDED_PARAMS
    + ISM3_EXTENDED_PARAMS
@@ -235,9 +193,9 @@ ISM_MD_SPECIAL_PARAMS = (


@pytest.mark.parametrize(
    "input_format,bitrate,sampling_rate,dtx,md_type", ISM_MD_SPECIAL_PARAMS
    "input_format,bitrate,sampling_rate,dtx,md_type", ISM_PARAMS
)
def test_encoder_ism_MD_special(
def test_encoder_object_based_modes(
    input_format,
    bitrate,
    sampling_rate,
@@ -266,18 +224,43 @@ def test_encoder_ism_MD_special(
    )


@pytest.mark.parametrize("sampling_rate", SAMPLING_RATES_ALL)
def test_encoder_foa_pca_at_256kbps(
# SBA modes

SBA_LOW_BITRATES_PARAMS = list(
    (
        product(
            INPUT_FORMATS_SCENE_BASED,
            BITRATES_ALL[:7],
            SAMPLING_RATES_ALL,
            [DTX_OFF, DTX_ON],
            [SBA_FOA_PCA_OFF],
        )
    )
)
SBA_HIGH_BITRATES_PARAMS = list(
    (
        product(
            INPUT_FORMATS_SCENE_BASED, BITRATES_ALL[7:], SAMPLING_RATES_ALL, [DTX_OFF], [SBA_FOA_PCA_OFF]
        )
    )
)
SBA_FOA_PCA_PARAMS = list(product(["FOA"], [256000], SAMPLING_RATES_ALL, [DTX_OFF], [SBA_FOA_PCA_ON]))
SBA_PARAMS = SBA_LOW_BITRATES_PARAMS + SBA_HIGH_BITRATES_PARAMS + SBA_FOA_PCA_PARAMS

@pytest.mark.parametrize("input_format,bitrate,sampling_rate,dtx,pca", SBA_PARAMS)
def test_encoder_sba(
    input_format,
    bitrate,
    sampling_rate,
    dtx,
    pca,
    dut_encoder_frontend,
    update_ref
):
    input_format = "FOA"
    bitrate = 256000
    dtx = "DTXoff"

    testv, options = get_encoder_inputs(input_format, sampling_rate)
    if pca == SBA_FOA_PCA_ON:
        options.extend(["-bypass", "2"])
    bitstream = DUT_PATH.joinpath(
        f"{testv.stem}-{input_format + '_pca'}-{bitrate}kbps-{sampling_rate}kHz-{dtx}.192"
        f"{testv.stem}-{input_format}-{bitrate}kbps-{sampling_rate}kHz-{dtx}-{pca}.192"
    )
    run_check(bitstream, bitrate, sampling_rate, testv, options, dut_encoder_frontend, update_ref == 1)
 No newline at end of file