Commit 1722f8b0 authored by Anika Treffehn's avatar Anika Treffehn
Browse files

added osba and omasa ivas support

parent da2af526
Loading
Loading
Loading
Loading
+74 −3
Original line number Diff line number Diff line
@@ -248,6 +248,7 @@ METADATA_ASSISTED_SPATIAL_AUDIO_FORMATS = {
        "num_channels": 2,
    },
}

OBJECT_BASED_AUDIO_FORMATS = {
    "ISM1": {
        "num_channels": 1,
@@ -263,7 +264,6 @@ OBJECT_BASED_AUDIO_FORMATS = {
    },
}


SCENE_BASED_AUDIO_FORMATS = {
    "FOA": {
        "num_channels": 4,
@@ -338,55 +338,127 @@ OMASA_AUDIO_FORMATS = {
    },
}


OSBA_AUDIO_FORMATS = {
    "ISM1SBA1": {
        "num_channels": 5,
        "num_ism_channels": 1,
        "is_planar": False,
    },
    "ISM1SBA2": {
        "num_channels": 10,
        "num_ism_channels": 1,
        "is_planar": False,
    },
    "ISM1SBA3": {
        "num_channels": 17,
        "num_ism_channels": 1,
        "is_planar": False,
    },
    "ISM2SBA1": {
        "num_channels": 6,
        "num_ism_channels": 2,
        "is_planar": False,
    },
    "ISM2SBA2": {
        "num_channels": 11,
        "num_ism_channels": 2,
        "is_planar": False,
    },
    "ISM2SBA3": {
        "num_channels": 18,
        "num_ism_channels": 2,
        "is_planar": False,
    },
    "ISM3SBA1": {
        "num_channels": 7,
        "num_ism_channels": 3,
        "is_planar": False,
    },
    "ISM3SBA2": {
        "num_channels": 12,
        "num_ism_channels": 3,
        "is_planar": False,
    },
    "ISM3SBA3": {
        "num_channels": 19,
        "num_ism_channels": 3,
        "is_planar": False,
    },
    "ISM4SBA1": {
        "num_channels": 8,
        "num_ism_channels": 4,
        "is_planar": False,
    },
    "ISM4SBA2": {
        "num_channels": 13,
        "num_ism_channels": 4,
        "is_planar": False,
    },
    "ISM4SBA3": {
        "num_channels": 20,
        "num_ism_channels": 4,
        "is_planar": False,
    },
    # planar sba
    "ISM1PLANARSBA1": {
        "num_channels": 5,
        "num_ism_channels": 1,
        "is_planar": True,
    },
    "ISM1PLANARSBA2": {
        "num_channels": 10,
        "num_ism_channels": 1,
        "is_planar": True,
    },
    "ISM1PLANARSBA3": {
        "num_channels": 17,
        "num_ism_channels": 1,
        "is_planar": True,
    },
    "ISM2PLANARSBA1": {
        "num_channels": 6,
        "num_ism_channels": 2,
        "is_planar": True,
    },
    "ISM2PLANARSBA2": {
        "num_channels": 11,
        "num_ism_channels": 2,
        "is_planar": True,
    },
    "ISM2PLANARSBA3": {
        "num_channels": 18,
        "num_ism_channels": 2,
        "is_planar": True,
    },
    "ISM3PLANARSBA1": {
        "num_channels": 7,
        "num_ism_channels": 3,
        "is_planar": True,
    },
    "ISM3PLANARSBA2": {
        "num_channels": 12,
        "num_ism_channels": 3,
        "is_planar": True,
    },
    "ISM3PLANARSBA3": {
        "num_channels": 19,
        "num_ism_channels": 3,
        "is_planar": True,
    },
    "ISM4PLANARSBA1": {
        "num_channels": 8,
        "num_ism_channels": 4,
        "is_planar": True,
    },
    "ISM4PLANARSBA2": {
        "num_channels": 13,
        "num_ism_channels": 4,
        "is_planar": True,
    },
    "ISM4PLANARSBA3": {
        "num_channels": 20,
        "num_ism_channels": 4,
        "is_planar": True,
    },
}

@@ -401,7 +473,6 @@ AUDIO_FORMATS = [
    OMASA_AUDIO_FORMATS,
]


IVAS_FRAME_LEN_MS = 20

IVAS_CICPX_TO_MONO = np.array(
+11 −8
Original line number Diff line number Diff line
@@ -153,13 +153,13 @@ class IVAS(Processing):
        if isinstance(self.in_fmt, audio.MetadataAssistedSpatialAudio):
            md_file = in_file.parent / (in_file.name + ".met")
            metadata_files.append(md_file)

        if isinstance(self.in_fmt, audio.ObjectBasedAudio):
            if in_meta is None:
                # TODO treffehn: search in folder of in_file
                pass
            else:
        elif isinstance(self.in_fmt, audio.ObjectBasedAudio) or isinstance(self.in_fmt, audio.OSBAAudio):
            metadata_files = in_meta
        elif isinstance(self.in_fmt, audio.OMASAAudio):
            # TODO treffehn: check and maybe change here and for masa
            metadata_files = in_meta
            md_file = in_file.parent / (in_file.name + ".met")
            metadata_files.append(md_file)

        # Support input file wav, pcm and txt (metadata iis)
        if in_file.suffix == ".wav":
@@ -356,7 +356,10 @@ class IVAS(Processing):
        ]:
            return ["-mc", fmt.name]
        elif isinstance(fmt, audio.OSBAAudio):
            return ["-ism_sba", str(fmt.num_ism_channels), str(fmt.ambi_order)] + metadata_files
            if fmt.is_planar:
                return ["-ism_sba", f"-{str(fmt.num_ism_channels)}", str(fmt.ambi_order)] + metadata_files
            else:
                return ["-ism_sba", f"+{str(fmt.num_ism_channels)}", str(fmt.ambi_order)] + metadata_files
        elif isinstance(fmt, audio.OMASAAudio):
            return ["-ism_masa", str(fmt.num_ism_channels), str(fmt.num_channels-fmt.num_ism_channels)] + metadata_files