Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6060fe6
avcodec/bit_depth_template: add tpixel for intermediate pixel type
QSXW Apr 14, 2025
d6015a1
avcodec/h26x/h2656_inter_template: fix put pixel functions for high b…
QSXW Apr 14, 2025
6fb787d
avcodec/h26x/h2656_inter_template: fix put luma functions for high bi…
QSXW Apr 14, 2025
06a5557
avcodec/h26x/h2656_inter_template: fix put chroma functions for high …
QSXW Apr 14, 2025
1707be2
avcodec/h26x/h2656_inter_template: fix put uni luma functions for hig…
QSXW Apr 14, 2025
f159c07
avcodec/h26x/h2656_inter_template: fix put uni chroma functions for h…
QSXW Apr 14, 2025
78b47cc
avcodec/h26x/h2656_inter_template: fix put uni luma w functions for h…
QSXW Apr 14, 2025
0bca8ca
avcodec/h26x/h2656_inter_template: fix put uni chroma w functions for…
QSXW Apr 14, 2025
a99d07d
avcodec/vvc/inter_template: fix avg function for high bitdepth
QSXW Apr 14, 2025
848b460
avcodec/vvc/inter_template: fix w_avg function for high bitdepth
QSXW Apr 14, 2025
7b0bb24
avcodec/vvc/inter_template: fix put_scaled function for high bitdepth
QSXW May 29, 2025
80370c7
avcodec/vvc/inter_template: fix put_gpm function for high bitdepth
QSXW Apr 14, 2025
84bb2f6
avcodec/vvc/inter_template: fix bdof_fetch_samples function for high …
QSXW Apr 14, 2025
0ab7d5e
avcodec/vvc/inter_template: fix prof_grad_filter function for high bi…
QSXW Apr 14, 2025
ddf02de
avcodec/vvc/inter_template: fix apply_prof function for high bitdepth
QSXW Apr 14, 2025
ce3376d
avcodec/vvc/inter_template: fix apply_prof_uni function for high bitd…
QSXW Apr 14, 2025
20f48b0
avcodec/vvc/inter_template: fix apply_prof_uni_w function for high bi…
QSXW May 29, 2025
71a4db0
avcodec/vvc/inter_template: fix apply_bdof function for high bitdepth
QSXW Apr 14, 2025
c6c326e
avcodec/vvc/ctu: *2 for high bitdepth
QSXW Apr 14, 2025
6e18631
avcodec/vvc/inter: multiply the memory size of temporary buffer by 2 …
QSXW Apr 14, 2025
c6a84a4
avcodec/vvc/dsp: add get_clip_from_idx for high bitdepth
QSXW Apr 14, 2025
d1f8b53
avcodec/vvc/filter_template: fix alf_recon_coeff_and_clip function fo…
QSXW Apr 14, 2025
b10d9ba
avcodec/vvc/filter_template: fix alf_filter_luma function for high bi…
QSXW Apr 14, 2025
2f07dce
avcodec/vvc/filter_template: fix alf_filter_chroma function for high …
QSXW Apr 14, 2025
d1a3fcb
avcodec/vvc/dsp_template: remove warning conversion from size_t to co…
QSXW May 29, 2025
ce17c0d
avcodec/vvc/dsp: init dsp template for 14 bits
QSXW May 2, 2025
376d1fc
avcodec/vvc/dsp: init dsp template for 16 bits
QSXW May 2, 2025
7a12c3a
avcodec/vvc/ps: support 14 bits pixel formats
QSXW May 2, 2025
f84a9b1
avcodec/vvc/ps: support 16 bits pixel formats
QSXW May 2, 2025
888d04c
Changelog: the VVC decoder supports decoding 14/16 bits bitstreams
QSXW May 29, 2025
b24f100
add github workflow
nuomi2021 Feb 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: test
run-name: ${{ github.workflow }} - ${{ github.sha }}
on:
push:
branches: [ main, up ]
pull_request:
branches: [ main, up ]
workflow_dispatch:


jobs:
ffvvc-test:
name: ffvvc-test / ${{ matrix.os.name }}/${{ matrix.compiler.name }}/${{ matrix.assembler.name }}
env:
configure_flags: --enable-ffmpeg --disable-everything --enable-decoder=vvc --enable-parser=vvc --enable-demuxer=vvc,mpegts --enable-protocol=file,pipe --enable-encoder=rawvideo,wrapped_avframe --enable-muxer=rawvideo,md5,null
strategy:
fail-fast: false
matrix:
os:
- { name: linux, runner: ubuntu-latest, shell: bash, runner_threads: 4 }
- { name: windows, runner: windows-latest, shell: 'msys2 {0}', runner_threads: 1 }
compiler:
- { name: gcc, flags: --cc=gcc }
- { name: clang, flags: --cc=clang }
- { name: msvc, flags: --toolchain=msvc }
- { name: clang-usan, flags: '--toolchain=clang-usan' }
- { name: clang-asan, flags: '--toolchain=clang-asan' }
assembler:
- { name: no asm, flags: --disable-asm }
- { name: nasm, flags: --as=nasm }
exclude:
# GitHub's Actions runners do not support AVX2.
- os: { name: linux, runner: ubuntu-latest, shell: bash, runner_threads: 4}
compiler: { name: msvc, flags: --toolchain=msvc }
- os: { name: linux, runner: ubuntu-latest, shell: bash, runner_threads: 4 }
assembler: { name: nasm, flags: --as=nasm }
# Address sanitizer cannot be run with handwritten assembly.
- compiler: { name: clang-asan, flags: '--toolchain=clang-asan' }
assembler: { name: nasm, flags: --as=nasm }
# Windows only supports MSVC.
- os: { name: windows, runner: windows-latest, shell: 'msys2 {0}', runner_threads: 1 }
compiler: { name: gcc, flags: --cc=gcc }
- os: { name: windows, runner: windows-latest, shell: 'msys2 {0}', runner_threads: 1 }
compiler: { name: clang, flags: --cc=clang }
- os: { name: windows, runner: windows-latest, shell: 'msys2 {0}', runner_threads: 1 }
compiler: { name: clang-usan, flags: '--toolchain=clang-usan' }
- os: { name: windows, runner: windows-latest, shell: 'msys2 {0}', runner_threads: 1 }
compiler: { name: clang-asan, flags: '--toolchain=clang-asan' }

runs-on: ${{ matrix.os.runner }}
defaults:
run:
shell: ${{ matrix.os.shell }}

steps:
- name: Get MSVC
if: ${{ matrix.compiler.name == 'msvc' && matrix.os.name == 'windows' }}
uses: ilammy/msvc-dev-cmd@v1

- name: Set up MSYS2
if: ${{ matrix.os.shell == 'msys2 {0}' }}
uses: msys2/setup-msys2@v2
with:
release: false
msystem: UCRT64
path-type: inherit
install: >-
make
diffutils

- name: Setup python package
run: python3 -m pip install tqdm pyyaml

- name: Get assembler
if: ${{ matrix.os.shell == 'msys2 {0}' && matrix.assembler.name != 'no asm' }}
run: pacman --noconfirm -S ${{ matrix.assembler.name }}

- name: Get source
uses: actions/checkout@v3
with:
path: FFmpeg

- name: Configure
run: cd FFmpeg && ./configure ${{ matrix.compiler.flags }} ${{ matrix.assembler.flags }} ${{ env.configure_flags }} || (tail ffbuild/config.log; false)

- name: Build
run: cd FFmpeg && make -j8

- name: Get tests
uses: actions/checkout@v3
with:
repository: ffvvc/tests
path: tests

- name: Unit test
run: python3 tests/tools/ffmpeg.py --threads ${{ matrix.os.runner_threads }} --ffmpeg-path=./FFmpeg/ffmpeg tests/conformance/passed

- name: DVB 40 frames test
run: python3 tests/tools/ffmpeg.py --threads 1 --ffmpeg-path=./FFmpeg/ffmpeg tests/conformance/dvb/40frames

- name: Check ASM
run: cd FFmpeg && make checkasm -j && ./tests/checkasm/checkasm

- name: Negative test
run: python3 tests/tools/ffmpeg.py --threads ${{ matrix.os.runner_threads }} --ffmpeg-path=./FFmpeg/ffmpeg tests/conformance/failed || true

- name: Check for fuzz regressions
run: python3 tests/tools/ffmpeg.py --threads ${{ matrix.os.runner_threads }} --ffmpeg-path=./FFmpeg/ffmpeg --fuzz tests/fuzz/passed

- name: Fuzz negative test
run: python3 tests/tools/ffmpeg.py --threads ${{ matrix.os.runner_threads }} --ffmpeg-path=./FFmpeg/ffmpeg --fuzz tests/fuzz/failed || tree
1 change: 1 addition & 0 deletions Changelog
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ version <next>:
- APV encoding support through a libopenapv wrapper
- VVC decoder supports all content of SCC (Screen Content Coding):
IBC (Inter Block Copy), Palette Mode and ACT (Adaptive Color Transform
- The VVC decoder supports decoding 14/16 bits bitstreams


version 7.1:
Expand Down
7 changes: 7 additions & 0 deletions libavcodec/bit_depth_template.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
# undef pixel4
# undef dctcoef
# undef idctin
# undef tpixel
Comment thread
QSXW marked this conversation as resolved.
# undef no_rnd_avg_pixel4
# undef rnd_avg_pixel4
# undef AV_RN2P
Expand All @@ -52,6 +53,11 @@
# define pixel2 uint32_t
# define pixel4 uint64_t
# define dctcoef int32_t
#if BIT_DEPTH > 12
# define tpixel int
#else
# define tpixel int16_t
#endif

#ifdef IN_IDCT_DEPTH
#if IN_IDCT_DEPTH == 32
Expand Down Expand Up @@ -81,6 +87,7 @@
# define pixel4 uint32_t
# define dctcoef int16_t
# define idctin int16_t
# define tpixel int16_t

# define no_rnd_avg_pixel4 no_rnd_avg32
# define rnd_avg_pixel4 rnd_avg32
Expand Down
Loading