From dd428e93405a42a36ec974c27e3073987ef004d7 Mon Sep 17 00:00:00 2001 From: rsanchez Date: Tue, 17 Mar 2026 09:45:19 +0100 Subject: [PATCH 1/2] refactor: AC4 decoder testing - Rename test_suites/ac4/elementary_streams.json to AC4_ELEMENTARY_STREAMS.json to follow the project convention where the filename matches the internal "name" field of the test suite - Set is_reference = True in DolbyPADSDecoder so it is correctly identified as the AC4 reference decoder for the reference command - Add ac4_reference_decoder Makefile target to install the Dolby PADS reference decoder binary into decoders/; since the binary requires Dolby customer credentials to download it is intentionally excluded from all_reference_decoders; the target provides a clear error message with download instructions when the binary is not found --- Makefile | 32 +++++++++++++++++-- fluster/decoders/ac4_decoder_reference.py | 6 ++-- ...reams.json => AC4_ELEMENTARY_STREAMS.json} | 0 3 files changed, 33 insertions(+), 5 deletions(-) rename test_suites/ac4/{elementary_streams.json => AC4_ELEMENTARY_STREAMS.json} (100%) diff --git a/Makefile b/Makefile index 1d47fb11..ee491394 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ CONTRIB_DIR=contrib DECODERS_DIR=decoders PYTHONPATH=. +AC4_DECODER_BIN ?= $(HOME)/Downloads/decoder_reference_app_linux_x86_64 FLUSTER=python3 ./fluster.py -tsd check ifeq ($(OS),Windows_NT) FLUSTER+=--no-emoji @@ -248,11 +249,38 @@ endif sudo rm -f /usr/include/asm +ac4_reference_decoder: ## install AC4 Dolby reference decoder (requires Dolby customer credentials - NOT included in all_reference_decoders) + $(create_dirs) + @if [ ! -f "$(AC4_DECODER_BIN)" ]; then \ + echo "ERROR: AC4 reference decoder binary not found at '$(AC4_DECODER_BIN)'"; \ + echo ""; \ + echo "This decoder requires Dolby customer credentials to download."; \ + echo "1. Log in to the Dolby customer portal (credentials required):"; \ + echo " https://customer.dolby.com/licensing-resources/technologies/dolby-pro-audio-decoder-software-development-kit-v45/downloads/tools/decoder_reference_app/linux/x86_64"; \ + echo "2. Download 'decoder_reference_app_linux_x86_64'"; \ + echo "3. Run: make ac4_reference_decoder AC4_DECODER_BIN=/path/to/decoder_reference_app_linux_x86_64"; \ + exit 1; \ + fi + cp $(AC4_DECODER_BIN) $(DECODERS_DIR)/decoder_reference_app_linux_x86_64 + chmod +x $(DECODERS_DIR)/decoder_reference_app_linux_x86_64 + clean: ## remove contrib temporary folder rm -rf $(CONTRIB_DIR) dbg-%: echo "Value of $* = $($*)" -.PHONY: help all_reference_decoders h264_reference_decoder h265_reference_decoder h266_reference_decoder\ -mpeg_4_aac_reference_decoder mpeg_4_aac_error_resilient_reference_decoder mpeg_2_aac_reference_decoder mpeg_2_video_reference_decoder check install_deps clean +.PHONY: help \ + all_reference_decoders \ + h264_reference_decoder \ + h265_reference_decoder \ + h266_reference_decoder \ + h266_vvdec_decoder \ + mpeg_2_aac_reference_decoder \ + mpeg_2_video_reference_decoder \ + mpeg_4_aac_reference_decoder \ + mpeg_4_aac_error_resilient_reference_decoder \ + ac4_reference_decoder \ + check \ + install_deps \ + clean diff --git a/fluster/decoders/ac4_decoder_reference.py b/fluster/decoders/ac4_decoder_reference.py index 8e5d5bd7..7fc72313 100644 --- a/fluster/decoders/ac4_decoder_reference.py +++ b/fluster/decoders/ac4_decoder_reference.py @@ -1,7 +1,6 @@ # Fluster - testing framework for decoders conformance -# Copyright (C) 2020, Fluendo, S.A. -# Author: Pablo Marcos Oltra , Fluendo, S.A. -# Author: Andoni Morales Alastruey , Fluendo, S.A. +# Copyright (C) 2026, Fluendo, S.A. +# Author: Pablo Garcia Sancho , Fluendo, S.A. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License @@ -29,6 +28,7 @@ class DolbyPADSDecoder(Decoder): description = "AC-4 Dolby Pro Audio Decoder Software Development Kit reference decoder implementation" binary = "decoder_reference_app_linux_x86_64" codec = Codec.AC4 + is_reference = True def decode( self, diff --git a/test_suites/ac4/elementary_streams.json b/test_suites/ac4/AC4_ELEMENTARY_STREAMS.json similarity index 100% rename from test_suites/ac4/elementary_streams.json rename to test_suites/ac4/AC4_ELEMENTARY_STREAMS.json From ff84970295da0d53f7eb47be09a11b38d645f12e Mon Sep 17 00:00:00 2001 From: rsanchez Date: Tue, 17 Mar 2026 09:51:17 +0100 Subject: [PATCH 2/2] ci: update GitHub Actions to Node.js 24 compatible versions - Bump actions/checkout from v4 to v5 and actions/setup-python from v5 to v6 to fix Node.js 20 deprecation warnings in CI. --- .github/workflows/python-app.yml | 16 ++++++++-------- .github/workflows/release.yml | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 40800751..5215b049 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -18,10 +18,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.10' @@ -56,9 +56,9 @@ jobs: - commit-validation steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python 3.7 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.7 - name: Install dependencies @@ -78,9 +78,9 @@ jobs: - commit-validation steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python 3.13 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.13 - name: Install dependencies @@ -100,9 +100,9 @@ jobs: - commit-validation steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python 3.7 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.7 - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7addd214..fbccff05 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,9 +14,9 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python 3.7 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.7 - name: Install dependencies @@ -52,9 +52,9 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python 3.13 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.13 - name: Install dependencies @@ -90,9 +90,9 @@ jobs: runs-on: windows-2022 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python 3.7 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.7 - name: Install dependencies @@ -120,7 +120,7 @@ jobs: steps: - name: Checkout repository at workflow sha - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 ref: ${{ github.sha }} @@ -134,7 +134,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} changelog: true - name: Set up Python 3.7 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.7' cache: pip