Commit 1c495962 authored by Vladimir Malenovsky's avatar Vladimir Malenovsky
Browse files

program version to 3.1

parent 7f3a5982
Loading
Loading
Loading
Loading
+23 −18
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ ReferenceMasaMDFiles = {
    "REND": "masa_ref_REND.csv",
}

PROGRAM_VERSION = "4.0"
PROGRAM_VERSION = "3.1"


@dataclass
@@ -1566,7 +1566,7 @@ class MLDConformance:
                if not row:
                    continue

                # vlad: MASA MD CSV columns are: frame index, then per-frame diff metrics.
                # MASA MD CSV columns are: frame index, then per-frame diff metrics.
                # We Use a single scalar per frame (max abs over all diff columns)
                # so corridor handling is the same as  MLD's one-value-per-frame pipeline.
                metric_values = []
@@ -1651,7 +1651,7 @@ class MLDConformance:
                )
                return None, (command_str, err_msg)

            # vlad: a Non-zero return code from masaDiffTool can indicate detected differences,
            # A Non-zero return code from masaDiffTool can indicate detected differences,
            # but which is valid for non-BE analysis. Treat missing/invalid CSV as failure.
            if frame_scores.size == 0:
                self.appendFailed(
@@ -2193,11 +2193,11 @@ if __name__ == "__main__":
            "  --filter LEVEL1                     Run LEVEL1 ENC+DEC (≤80 kbps).\n"
            "  --filter LEVEL2                     Run LEVEL2 ENC+DEC (≤192 kbps).\n"
            "  --filter LEVEL1 DEC MONO            Restrict to DEC MONO tests at LEVEL1.\n"
            "  --filter +REND +ISAR                Add REND and ISAR to baseline ENC+DEC.\n"
            "  --filter LEVEL1 +REND +ISAR         Add REND and ISAR to LEVEL1 baseline ENC+DEC.\n"
            "  --filter DEC HOA                    Run DEC tests with HOA2/HOA3 outputs.\n"
            "  --filter DEC -voip                  Run DEC tests except those matching 'voip'.\n"
            "  --filter ISAR*                      Add ISAR and ISAR_ENC (wildcard expansion).\n"
            "  --filter DEC +BINAURAL*             Run LEVEL3 DEC + all BINAURAL variant outputs.\n"
            "  --filter DEC +BINAURAL*             Run LEVEL3 DEC + all BINAURAL output formats.\n"
            "  --filter +ISAR* -voip               Add ISAR/ISAR_ENC groups then remove 'voip' tests.\n"
        ),
    )
@@ -2253,10 +2253,6 @@ if __name__ == "__main__":
                unescaped_filter.append(tok)
        args.filter = unescaped_filter

    # Explicit LEVEL3 means default level behavior (same as no explicit level token).
    if args.filter and len(args.filter) == 1 and args.filter[0].upper() == "LEVEL3":
        args.filter = None

    if not os.path.isdir(args.testvecDir):
        parser.error(
            f"--testvecDir does not exist or is not a directory: {os.path.abspath(args.testvecDir)}"
@@ -2368,13 +2364,15 @@ if __name__ == "__main__":
    tag_remove_tokens = list(dict.fromkeys(tag_remove_tokens))
    decoder_format_tokens = list(dict.fromkeys(decoder_format_tokens))

    # All levels share the same default tag baseline: ENC + DEC.
    # REND/ISAR/ISAR_ENC are optional and must be explicitly selected or added.
    # Plain tag_tokens restrict the baseline; +tag_tokens add beyond it.
    # Default with no --filter: run all tags.
    # LEVEL1 default baseline: ENC + DEC (REND/ISAR optional unless explicitly selected/added).
    # For other filter cases, plain tag_tokens restrict selected tags and +tag_tokens add tags.
    if tag_tokens:
        selected_tag_set = set(tag_tokens)
    else:
    elif filter_tokens and filter_level == "LEVEL1":
        selected_tag_set = {"ENC", "DEC"}
    else:
        selected_tag_set = set(IVAS_Bins.keys())
    for tag in tag_add_tokens:
        selected_tag_set.add(tag)
    for tag in tag_remove_tokens:
@@ -2394,17 +2392,24 @@ if __name__ == "__main__":
    if args.filter_display:
        print(f"Applying filter: {args.filter_display}")
        print()
    print("No of tests:")
    for tag in IVAS_Bins.keys():
        n = len(conformance.getSelectedTestsForTag(tag)) if tag in testTags else 0
        print(f"    {tag} : {n}")
    print()

    if args.regenerate_enc_refs:
        print()
        print("Reference regeneration targets:")
        print(f"    ISAR_ENC : {len(conformance.TestDesc['ISAR_ENC'])}")
        print(f"    ENC : {len(conformance.TestDesc['ENC'])}")
        print()
        conformance.runReferenceGeneration(encTag="ISAR_ENC")
        conformance.runReferenceGeneration(encTag="ENC")
        sys.exit(0)

    print()
    print("No of tests:")
    for tag in IVAS_Bins.keys():
        n = len(conformance.getSelectedTestsForTag(tag)) if tag in testTags else 0
        print(f"    {tag} : {n}")
    print()

    # If --regenerate-mld-ref is set, treat as --analyse
    if args.regenerate_mld_ref:
        args.analyse = True