Commit graph

52128 commits

Author SHA1 Message Date
Andreas Rheinhardt
cb54eca41a avcodec/svq3: Improve returned error codes
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 03:10:52 +02:00
Andreas Rheinhardt
0468b866ca avcodec/svq3: Factor out decoding extradata
Reduces indentation and avoids an extra variable for whether
a sequence header has been found.
It also fixes potential undefined behaviour:
NULL + 0 is undefined and happens when no extradata is available.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 03:10:52 +02:00
Andreas Rheinhardt
0b3dae6c63 avcodec/mpeg12enc: Combine put_bits()
This is a 16bit field in the spec, so using a single
put_bits() to write it is more natural.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 03:10:22 +02:00
Andreas Rheinhardt
f5f890fee4 avcodec/mpeg12dec: Remove nonsense comment
Everything in mpeg12dec.c is about decoding.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 03:10:05 +02:00
Andreas Rheinhardt
562192e283 avcodec/mpeg12dec: Remove redundant save_width/height
These have been added in 29644cb504
in 2007 at a time when the MPEG-1/2 parser just set
the AVCodecContext's dimensions when encountering a sequence header,
so that the checks for the coded dimensions didn't trigger.
Yet this is no more and so we can simply remove these redundant checks.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 03:09:55 +02:00
Andreas Rheinhardt
56497671dd avcodec/mpeg12dec: Set save_chroma_format also for VCR2
Otherwise the MpegEncContext would be unnecessarily reinitialized
once (this does not affect the output for an intra-only variant
like VCR2) in mpeg_decode_postinit().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 03:09:45 +02:00
Andreas Rheinhardt
a1e4be5740 avcodec/mpegvideo_dec: Move ff_mpv_report_decode_progress() to h263dec.c
It is its only user. Also make it static and call it
before ff_mpeg_draw_horiz_band().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 02:54:22 +02:00
Andreas Rheinhardt
e12cbf6095 avcodec/tests/avcodec: Check only frame-mt decoders set update_thread_ctx
Possible since 554b52b1b3.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 02:44:15 +02:00
Andreas Rheinhardt
a6f7b32085 avcodec/ratecontrol: Fix wrong sizeof expression
Fixes Coverity issue #1644200.
Introduced in 89a8033fc9.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 02:44:06 +02:00
Andreas Rheinhardt
36af32f9e5 avcodec/tests/.gitignore: Add apv test tool
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 02:43:22 +02:00
Andreas Rheinhardt
66f5323652 avcodec/rv60dec: Avoid branch when decoding cbp16
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-21 02:41:55 +02:00
Timo Rothenpieler
d5a9f7bdd4 avcodec/cuviddec: only flush cuvid when output queue is empty 2025-05-21 01:16:19 +02:00
Timo Rothenpieler
431e2cae87 avcodec/cuviddec: print error when queueing frames fails 2025-05-21 01:15:29 +02:00
Lynne
7b45d9c5fd
vulkan_ffv1: pipe through slice decoding status 2025-05-20 19:53:02 +09:00
Lynne
cb8f4b675d
vulkan/ffv1: unify encode and decode get/put primitives
This simply makes a get_rac/put_rac_internal variant that can be
reused.
2025-05-20 19:53:02 +09:00
Lynne
7576410af7
ffv1enc_vulkan: implement RCT search for level >= 4 2025-05-20 19:53:01 +09:00
Lynne
0156680f09
ffv1enc_vulkan: implement the cached EC writer from the decoder
This gives a 35% speedup on AMD and 50% on Nvidia.
2025-05-20 19:53:01 +09:00
Lynne
a24ea37228
vulkan_ffv1: fix PCM + cached symbol reader
writeout_rgb requires that all subgroups are active.
2025-05-20 19:53:01 +09:00
Lynne
f69db914ce
ffv1enc_vulkan: use ff_get_encode_buffer
We used to create our own buffer, but still used the DR1 flag,
which is not how it's supposed to work.

Instead, use ff_get_encode_buffer, and either host-map the buffer
before copying each slice via GPU transfers, or just copy each
slice manually if that fails or is unavailable.
2025-05-20 19:53:01 +09:00
Lynne
8a2d921627
ffv1_common: minor RGB optimization 2025-05-20 19:53:01 +09:00
Lynne
bd41838b60
ffv1enc_vulkan: switch to 2-line cache, unify prediction code 2025-05-20 19:53:01 +09:00
Lynne
52595025c5
ffv1enc_vulkan: minor EC optimizations 2025-05-20 19:53:01 +09:00
Lynne
7c0a8c07ce
ffv1enc_vulkan: unify EC code between setup and encode 2025-05-20 19:53:00 +09:00
Lynne
69f83bafd1
ffv1enc_vulkan: get rid of temporary data for the setup shader 2025-05-20 19:53:00 +09:00
Lynne
a4078abd73
vulkan/ffv1: synchronize get_pred implementations between encoder and decoder 2025-05-20 19:53:00 +09:00
Lynne
ebbc7ff650
ffv1enc_vulkan: merge all encoder variants into one file
Makes it easier to work with, despite the heavy ifdeffery.
2025-05-20 19:52:55 +09:00
Henrik Gramner
fd18ae88ae avcodec/x86/vp9: Add AVX-512ICL for 16x16 and 32x32 8bpc inverse transforms 2025-05-19 15:56:27 +02:00
Kacper Michajłow
eb6dc952cb avcodec/libzvbi-teletextdec: change new lines to \n in ASS header
Fixes remaining \r\n is ASS header after 57c545090d.

Fixes AVERROR_BUG error during init as this decoder expected `\r\n` in
default ASS header. strstr(..., "\r\n[Events]\r\n") failed after changes
in 57c545090d.

Fixes ticket #11545.

Fixes: 57c545090d
Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2025-05-17 21:27:29 +02:00
Kacper Michajłow
597186b153 avcodec/libaribcaption: change new lines to \n in ASS header
Fixes remaining \r\n is ASS header after 57c545090d.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2025-05-17 21:27:29 +02:00
Kacper Michajłow
0105ff554b avcodec/libaribb24: change new lines to \n in ASS header
Fixes remaining \r\n is ASS header after 57c545090d.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2025-05-17 21:27:29 +02:00
Andreas Rheinhardt
b5f26c4dd8 avcodec/utvideoenc: Don't advertise unsupported option
Also return an better error code if it is set numerically.
(This option was added in 2862b63783
when an AVCodecContext generic option was moved to
a codec private one without realizing that not every
generic one is valid for every encoder.)

Reviewed-by: Jan Ekström <jeebjp@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-05-17 15:06:00 +02:00
Mark Thompson
88f2ccdf16 cbs_apv: Fix memory leak on metadata parse failure
Buffers are allocated inside some metadata types, so we must ensure
that the object is visible to the free function before a parse failure.

Found by libFuzzer.
2025-05-17 11:23:36 +01:00
Wu Jianhua
fd5d754b2a avcodec/vvc: add adaptive color transform support
passed files:
    ACT_A_Kwai_3.bit
    ACT_B_Kwai_3.bit

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
0e4c0db317 avcodec/vvc/intra: refact out lmcs_scale_chroma and add_residual
prepare for adaptive color transform

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
ff1ecc7eb3 avcodec/vvc/intra: make lmcs_scale_chroma inplace
prepare for adaptive color transform

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
d2e7ca684c avcodec/vvc/intra: refact, predict jcbcr to tb->coeffs
prepare for adaptive color transform

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
86e96a1c02 avcodec/vvc/intra: fix scaling process for transform coefficients
See 8.7.3 Scaling process for transform coefficients

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
fef573f30b avcodec/vvc/dsp: add adaptive_color_transform
See 8.7.4.6 Residual modification process for blocks using colour space conversion

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
8bdad76c00 avcodec/vvc/dsp: update the interface of pred_residual_joint for joint cbcr residual functionality
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
d00a249dbf avcodec/vvc/ctu: fix derive_chroma_intra_pred_mode
See 8.4.3 Derivation process for chroma intra prediction mode

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
c58357edc2 avcodec/vvc/ctu: read act_enabled_flag for adaptive color transform
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
b9c5fb0d00 avcodec/vvc/cabac: add ff_vvc_cu_act_enabled_flag
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
70a2d0d756 avcodec/vvc/intra: add palette coding decoder
Introduction at https://ieeexplore.ieee.org/document/9408666

passed files:
    10b422_G_Sony_5.bit
    10b422_H_Sony_5.bit
    10b422_I_Sony_5.bit
    10b422_J_Sony_5.bit
    10b422_K_Sony_5.bit
    10b422_L_Sony_5.bit
    8b422_G_Sony_5.bit
    8b422_H_Sony_5.bit
    8b422_I_Sony_5.bit
    8b422_J_Sony_5.bit
    8b422_K_Sony_5.bit
    8b422_L_Sony_5.bit
    8b444_A_Kwai_2.bit
    8b444_B_Kwai_2.bit
    PALETTE_A_Alibaba_2.bit
    PALETTE_B_Alibaba_2.bit
    PALETTE_C_Alibaba_2.bit
    PALETTE_D_Alibaba_2.bit
    PALETTE_E_Alibaba_2.bit

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
95473fae9b avcodec/vvc/filter: skip deblocking filter for palette
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
26215b8c83 avcodec/vvc/ctu: add palette support
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
fd85f83608 avcodec/vvc/intra: add ff_vvc_palette_derive_scale
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
3ecf8f8766 avcodec/vvc/ctu: refact out intra_data
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
d0f9151eb0 avcodec/vvc: refact, save pf and ciip_flag in ff_vvc_set_intra_mvf
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
75e5fb6e37 avcodec/vvc: refact out ep_init and ep_init_wpp
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00
Wu Jianhua
cfea9b88a5 avcodec/vvc/ctu: refact out ff_vvc_channel_range
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-05-17 09:22:40 +08:00