Commit 8626e2ed authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Merge branch 'main' into 1170-missing-test-cases-for-binaural_room_reverb

parents 3e615205 0bfe56bc
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ import argparse

from create_report_pages import SUBPAGE_TMPL_CSS, FORMATS

MEASURES = ["MLD","DIFF","SSNR"]
MEASURES = ["MLD","DIFF","SSNR","ODG"]

SUMMARY_PAGE_TMPL_HTML = """

+4 −0
Original line number Diff line number Diff line
@@ -381,9 +381,11 @@ JB4_DATAUNIT_HANDLE JB4_AllocDataUnit(
        JB4_dropFromBuffer( h );
    }

    /* LOCK JBM MEMORY SLOT BEGIN */
    --h->nFreeMemorySlots;
    dataUnit = h->freeMemorySlots[h->nFreeMemorySlots];
    h->freeMemorySlots[h->nFreeMemorySlots] = NULL;
    /* LOCK JBM MEMORY SLOT END */
    assert( dataUnit != NULL );

    return dataUnit;
@@ -397,8 +399,10 @@ void JB4_FreeDataUnit(
{
    assert( dataUnit != NULL );
    assert( h->nFreeMemorySlots < MAX_JBM_SLOTS );
    /* LOCK JBM MEMORY SLOT BEGIN */
    h->freeMemorySlots[h->nFreeMemorySlots] = dataUnit;
    h->nFreeMemorySlots++;
    /* LOCK JBM MEMORY SLOT END */

    return;
}
+18 −0
Original line number Diff line number Diff line
@@ -150,6 +150,24 @@ executables are "IVAS_cod.exe", "IVAS_dec.exe", "IVAS_rend.exe", and
"ISAR_post_rend.exe". All reside in the c-code main directory. 


                       INTEGRATION AS LIBRARIES
                       ========================

While this package contains the necessary applications to execute the IVAS encoder,
decoder, renderer and ISAR post renderer, it is envisioned that the libraries used
would be integrated into custom applications.

It should be noted that this library is not thread-safe by default. Thus, when using
the IVAS libraries in a multi-threaded environment, proper synchronization of API
calls is required to prevent race conditions by concurrent access to IVAS internal
state memory, FIFO queues buffers or any other data structures. Potential mechanisms
include e.g. mutexes, spinlocks and semaphores. The API calls are at the present not
optimized for fine-granular locking of just critical sections. Some sensitive
sections have thus been marked with a comment in the form /* LOCK XYZ BEGIN */ and
/* LOCK XYZ END */ to provide guidance where code could be modified to prevent
some potential race conditions.


                       RUNNING THE SOFTWARE
                       ====================

+5 −3
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ if __name__ == "__main__":
        "--measure",
        type=str,
        nargs=1,
        help="Measure, any of: MLD, DIFF, SSNR, default: MLD",
        help="Measure, any of: MLD, DIFF, SSNR, ODG, default: MLD",
        default=["MLD"],
    )
    parser.add_argument(
@@ -67,6 +67,7 @@ if __name__ == "__main__":
        "MLD": ("MLD", [0, 5, 10, math.inf]),
        "DIFF": ("MAXIMUM ABS DIFF", [0, 1024, 16384, 32769]),
        "SSNR": ("MIN_SSNR", [-math.inf, 0, 20, 40, 60, 100]),
        "ODG": ("MIN_ODG", [-5, -4, -3, -2, -1, 0]),
    }
    (measure_label, limits) = limits_per_measure[measure]

@@ -85,7 +86,7 @@ if __name__ == "__main__":
    # Output CSV file
    with open(csv_summary, "w") as fp:
        limits_labels = [
            f"{str(a)} --\n {str(b)}" for (a, b) in zip(limits[0:-1], limits[1:])
            f"{str(a)} -- {str(b)}" for (a, b) in zip(limits[0:-1], limits[1:])
        ] + ["None"]
        # Zero difference is treated as a special category for MLD and MAXIMUM ABS DIFF
        if measure_label == "MLD" or measure_label == "MAXIMUM ABS DIFF":
@@ -124,7 +125,8 @@ if __name__ == "__main__":
                fp.write(line)

                # Matplotlib histogram
                ax.bar(limits_labels, data, 0.5, label=cat, bottom=bottom)
                labels = [x if len(x) < 10 else x.replace('--','--\n') for x in limits_labels]
                ax.bar(labels, data, 0.5, label=cat, bottom=bottom)
                bottom += data

            # Histogram layout