Commit 88429e48 authored by Jan Kiene's avatar Jan Kiene
Browse files

some restructuring and make --update_ref write to ref dir

parent d7c3a846
Loading
Loading
Loading
Loading
+32 −10
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ from ..constants import (
    HERE,
    BS_PROC_FER_15,
    BS_PROC_JBM_DLY_PROF_5,
    BS_PROC_NONE,
    BINAURAL_HRTF_NONE,
    HRTF_PATHS,
)
@@ -74,12 +75,19 @@ def create_head_rotation_file(


def get_output_path(
    bitstream_path, output_format, output_sampling_rate, bitstream_processing, suffix=""
    bitstream_path: Path,
    output_format: str,
    output_sampling_rate: int,
    bitstream_processing: str,
    is_ref_creation: bool,
    suffix: str = "",
):
    if suffix != "":
        suffix = f"-{suffix}"
    output_name = f"{bitstream_path.stem}.dec-{output_format}-{output_sampling_rate}kHz-{bitstream_processing}{suffix}.wav"
    return DUT_PATH.joinpath(output_name)

    output_folder = REF_PATH if is_ref_creation else DUT_PATH
    return output_folder.joinpath(output_name)


@contextmanager
@@ -102,6 +110,7 @@ def get_bitstream_and_options(
    """
    options = list()
    with TemporaryDirectory() as tmp_dir:
        # TODO: this should be coming from TESTV_PATH - current setuponly for development
        bitstream = get_bitstream_path(
            REF_PATH, testv_name, encoder_format, bitrate, sampling_rate, dtx, suffix
        )
@@ -149,17 +158,30 @@ def get_bitstream_and_options(


def run_check(
    ref_bitstream: Path,
    output_format: str,
    output_sampling_rate: int,
    options: list,
    decoder_frontend,
    is_ref_creation: bool,
    output_suffix="",
    bitstream_processing=BS_PROC_NONE,
):
    output_path = get_output_path(
        ref_bitstream,
        output_format,
    sampling_rate,
    dut_output,
    options,
    decoder_frontend,
        output_sampling_rate,
        bitstream_processing,
        is_ref_creation,
):
        suffix=output_suffix,
    )
    decoder_frontend.run(
        output_format, sampling_rate, ref_bitstream, dut_output, add_option_list=options
        output_format,
        output_sampling_rate,
        ref_bitstream,
        output_path,
        add_option_list=options,
    )

    if not is_ref_creation and not is_be_to_ref(dut_output):
    if not is_ref_creation and not is_be_to_ref(output_path):
        pytest.fail(f"Decoder output differs from reference")
+10 −29
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods.
"""

import pytest
from . import get_bitstream_and_options, get_output_path, run_check
from . import get_bitstream_and_options, run_check
from .. import get_testv_path
from ..constants import *

@@ -61,22 +61,15 @@ def test_decoder_mc_and_masa(
        hrtf=hrtf,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream,
            output_format,
            output_sampling_rate,
            bitstream_processing,
            suffix=hrtf,
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            output_suffix=hrtf,
            bitstream_processing=bitstream_processing,
        )


@@ -111,18 +104,14 @@ def test_decoder_objectbased(
        suffix=suffix,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )


@@ -155,18 +144,14 @@ def test_decoder_scenebased(
        suffix=suffix,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )


@@ -205,16 +190,12 @@ def test_decoder_combined_formats(
        suffix=suffix,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )
+9 −25
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods.
"""

import pytest
from . import get_bitstream_and_options, get_output_path, run_check
from . import get_bitstream_and_options, run_check
from .. import get_testv_path
from ..constants import *

@@ -58,18 +58,14 @@ def test_decoder_channelbased_and_masa(
        dtx,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )


@@ -104,18 +100,14 @@ def test_decoder_objectbased(
        suffix=suffix,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )


@@ -148,18 +140,14 @@ def test_decoder_scenebased(
        suffix=suffix,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )


@@ -198,16 +186,12 @@ def test_decoder_combined_formats(
        suffix=suffix,
        processing=bitstream_processing,
    ) as (ref_bitstream, options):
        dut_output = get_output_path(
            ref_bitstream, output_format, output_sampling_rate, bitstream_processing
        )

        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            bitstream_processing=bitstream_processing,
        )
+7 −19
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods.
"""

import pytest
from . import get_bitstream_and_options, get_output_path, run_check
from . import get_bitstream_and_options, run_check
from .. import get_testv_path
from ..constants import (
    STEREO_DMX_EVS_PARAMS,
@@ -86,21 +86,15 @@ def test_decoder_non_diegetic_pan_ism(
        suffix=suffix,
    ) as (ref_bitstream, options):
        suffix += f"-non_diegetic_pan_{non_diegetic_panning_value}"
        dut_output = get_output_path(
            ref_bitstream,
            output_format,
            output_sampling_rate,
            bitstream_processing,
            suffix=suffix,
        )
        run_check(
            str(ref_bitstream),
            ref_bitstream,
            output_format,
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            output_suffix=suffix,
            bitstream_processing=bitstream_processing,
        )


@@ -130,19 +124,13 @@ def test_decoder_non_diegetic_pan_mono(
        non_diegetic_pan_value=non_diegetic_panning_value,
    ) as (ref_bitstream, options):
        suffix = f"-non_diegetic_pan_{non_diegetic_panning_value}"
        dut_output = get_output_path(
            ref_bitstream,
            "STEREO",
            output_sampling_rate,
            bitstream_processing,
            suffix=suffix,
        )
        run_check(
            str(ref_bitstream),
            ref_bitstream,
            "",
            output_sampling_rate,
            str(dut_output),
            options,
            dut_decoder_frontend,
            update_ref == 1,
            output_suffix=suffix,
            bitstream_processing=bitstream_processing,
        )
+20 −7
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ import numpy as np
import random
import pytest
from itertools import permutations
from .. import is_be_to_ref
from .. import is_be_to_ref, get_bitstream_path
from ..constants import (
    METADATA_FOR_INPUT_FORMAT,
    ISM_MD_NULL,
@@ -41,6 +41,8 @@ from ..constants import (
    INPUT_FORMATS_OBJECT_BASED,
    DUT_PATH,
    TESTV_PATH,
    REF_PATH,
    DTX_ON,
)


@@ -115,23 +117,34 @@ def get_options(input_format, md_type=None):


def run_check(
    dut_bitstream,
    input_format,
    bitrate,
    sampling_rate,
    testv,
    options,
    encoder_frontend,
    is_ref_creation,
    dtx_mode=False,
    dtx,
    bitstream_suffix="",
):
    bs_path = REF_PATH if is_ref_creation else DUT_PATH
    bitstream = get_bitstream_path(
        bs_path,
        testv.stem,
        input_format,
        bitrate,
        sampling_rate,
        dtx,
        suffix=bitstream_suffix,
    )
    encoder_frontend.run(
        bitrate,
        sampling_rate,
        str(testv),
        str(dut_bitstream),
        dtx_mode=dtx_mode,
        testv,
        bitstream,
        dtx_mode=dtx == DTX_ON,
        add_option_list=options,
    )

    if not is_ref_creation and not is_be_to_ref(dut_bitstream):
    if not is_ref_creation and not is_be_to_ref(bitstream):
        pytest.fail(f"Bitstream file differs from reference")
Loading