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 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