Anton Khirnov
eec1a7a6bb
lavc/hevc: check framerate num/den to be strictly positive
...
Rather than just != 0. These values are read as uint32 and can become
negative when cast to int.
2024-09-06 14:09:03 +02:00
Anton Khirnov
fc8df81cb1
lavc/hevcdec: move active SPS from HEVCParamSets to HEVCLayerContext
...
Currently active SPS is a per-layer property.
2024-09-06 13:59:29 +02:00
Anton Khirnov
9bccc634af
lavc/hevcdec: make a HEVCFrame hold a reference to its PPS
...
ff_hevc_get_ref_list() needs the PPS of a previously decoded frame,
which may be different from the currently active one.
2024-09-06 13:59:29 +02:00
Anton Khirnov
672713761b
lavc/hevcdec: move HEVCContext.sao_pixel_buffer_[vh] to HEVCLayerContext
...
Handle them together with other sps-dependent arrays.
Note that current code only allocates these arrays when hwaccel is not
set, but this is wrong as the relevant code runs BEFORE get_format() is
called and hence before we know whether hwaccel is in use.
2024-09-06 13:59:29 +02:00
Anton Khirnov
6fcf0045cf
lavc/hevcdec: move HEVCContext.{tab_mvf,rpl_tab}_pool to HEVCLayerContext
...
pic_arrays_{init,free}() no longer access HEVCContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
4f87ff7666
lavc/hevcdec: move HEVCContext.{horizontal,vertical}_bs to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
e8baf2fb97
lavc/hevcdec: move HEVCContext.qp_y_tab to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
d5188adba8
lavc/hevcdec: move HEVCContext.tab_slice_address to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
eeb369d24f
lavc/hevcdec: move HEVCContext.filter_slice_edges to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
463a85c5a1
lavc/hevcdec: move HEVCContext.is_pcm to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
0704559932
lavc/hevcdec: move HEVCContext.tab_ipm to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
59de042cf6
lavc/hevcdec: move HEVCContext.cbf_luma to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
cf7add8d70
lavc/hevcdec: move HEVCContext.tab_ct_depth to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
1ca4c2a96d
lavc/hevcdec: move HEVCContext.skip_flag to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
ed2d25e7f0
lavc/hevcdec: move HEVCContext.deblock to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
3d4294e344
lavc/hevcdec: move HEVCContext.sao to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
747609e967
lavc/hevcdec: move HEVCContext.bs_{width,height} to HEVCLayerContext
2024-09-06 13:59:29 +02:00
Anton Khirnov
c7f0753a6b
lavc/hevcdec: move active VPS from HEVCParamSets to HEVCContext
...
Active VPS is a property of the decoding process, not of the list of
parameter sets.
Check that the VPS can only change in a base layer - while this can
never happen currently (as no other layers can exist in the decoder), it
will become useful when multilayer decoding is supported.
2024-09-06 13:59:29 +02:00
Anton Khirnov
4c0d669b20
lavc/hevcdec: add a per-layer context
...
Start by moving the DPB to it.
Only one context exists for now, so decoder behaviour should not change
with this commit, but that will change in the future.
2024-09-06 13:59:29 +02:00
Anton Khirnov
c35a51f4bb
lavc: add HEVC Multiview Main profile
2024-09-06 13:59:28 +02:00
Anton Khirnov
4cbd1a8a54
MAINTAINERS: add myself for hevc/*
2024-09-06 13:59:04 +02:00
Anton Khirnov
4ef149249a
lavu/opt: handle UINT options as the POD they are
...
Fixes operations on array UINT options.
2024-09-06 13:59:04 +02:00
Anton Khirnov
450a3f58ed
lavu/opt: add API for setting array-type option values
...
Previously one could only replace the entire array with a new one
deserialized from a string. The new API allows inserting, replacing, and
removing arbitrary element ranges.
2024-09-06 13:59:04 +02:00
James Almer
2a6f84718b
fate/checkasm/sw_gbrp: don't randomly set internal values
...
They are set by sws_init_context().
May help with signed integer overflows reported by gcc-usan.
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-05 22:19:47 -03:00
James Almer
a49188297f
avfilter/af_bs2b: remove unecessary initializer from layouts
...
Fixes compilation with msvc.
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-05 12:36:04 -03:00
James Almer
d98de855a8
avfilter/af_asr: remove unecessary initializer from layouts
...
Fixes compilation with msvc.
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-05 12:36:04 -03:00
James Almer
ef6a5c98fb
avfilter/af_apulsator: remove unecessary initializer from layouts
...
Fixes compilation with msvc.
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-05 12:35:58 -03:00
Gyan Doshi
3d0d0f68d5
doc/filters: update uspp availability status
...
The filter was disabled in 95054bfa48
and re-enabled in 771c27119d
2024-09-05 15:47:14 +05:30
Anton Khirnov
f0f1cf2697
lavfi/af_channelmap: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
3045949945
lavfi/af_bs2b: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
96a8a6139e
lavfi/af_biquads: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
2e899d3bdf
lavfi/af_asr: convert to query_func2()
...
Also, simplify code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
cf43a02c2c
lavfi/af_asetrate: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
b18f7d7e2d
lavfi/af_arnndn: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
dfaa339167
lavfi/af_arls: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
814c961a78
lavfi/af_aresample: convert to query_func2()
2024-09-05 10:03:33 +02:00
Anton Khirnov
c24e0df30b
lavfi/af_apulsator: convert to query_func2()
...
Also, simplify code, and drop a redundant call that also happens
implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
6f2adb7967
lavfi/af_anlms: convert to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
e0ab1fcc8c
lavfi/af_anequalizer: convert to query_func2()
...
Also, simplify code and drop redundant calls that also happen implicitly
in generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
6e4affc407
lavfi/af_aiir: convert to query_func2()
...
Drop redundant ff_set_common_all_channel_counts() /
ff_set_common_all_samplerates() calls, since those happen implicitly in
generic code.
2024-09-05 10:03:33 +02:00
Anton Khirnov
f143723095
lavfi/af_agate: convert to query_func2()
...
Drop redundant ff_set_common_all_channel_counts() /
ff_set_common_all_samplerates() calls, since those happen implicitly in
generic code.
2024-09-05 10:03:33 +02:00
Rémi Denis-Courmont
d9f594209f
checkasm/riscv: print official extension names
2024-09-04 22:04:11 +03:00
Rémi Denis-Courmont
27d28b68da
swscale/rgb2rgb: enable R-V V deinterleaveBytes
...
T-Head C908:
deinterleave_bytes_c: 100328.3 ( 1.00x)
deinterleave_bytes_rvv_i32: 19331.3 ( 5.19x)
deinterleave_bytes_aligned_c: 100337.5 ( 1.00x)
deinterleave_bytes_aligned_rvv_i32: 15748.0 ( 6.37x)
SpacemiT X60:
deinterleave_bytes_c: 95230.6 ( 1.00x)
deinterleave_bytes_rvv_i32: 9790.3 ( 9.73x)
deinterleave_bytes_aligned_c: 96564.1 ( 1.00x)
deinterleave_bytes_aligned_rvv_i32: 7780.1 (12.41x)
2024-09-04 22:04:11 +03:00
Hendrik Leppkes
d4cfbf329c
hevc/sei: return INVALIDDATA when a referenced SPS is not available
...
The code previously returned ENOMEM, despite this not being an
allocation problem, but rather a bitstream problem referring to data not
currently available.
Fixes playback of such streams, as it allows further processing of NAL
units after skipping the broken SEI NAL.
2024-09-04 18:34:47 +02:00
Araz Iusubov
eda3fc6053
avcodec/amfenc: GPU driver version check
...
Implemented gpu driver check.
10-bit patch works incorrectly on driver version lower than 23.30.
Signed-off-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com>
2024-09-04 13:18:41 +02:00
Evgeny Pavlov
9f02408583
avcodec/amfenc: add 10 bit encoding in av1_amf
...
v2: refactored after review
Signed-off-by: Evgeny Pavlov <lucenticus@gmail.com>
Co-authored-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com>
Co-authored-by: Araz Iusubov <Primeadvice@gmail.com>
Signed-off-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com>
2024-09-04 13:18:28 +02:00
nyanmisaka
628762034d
avcodec/amfenc: HDR metadata.
...
v2: fixes for indentation
Signed-off-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com>
2024-09-04 13:18:18 +02:00
Michael Fabian 'Xaymar' Dirks
fb4dd4b6f4
avcodec/amfenc: Fixes the color information in the output.
...
added 10 bit support for amf hevc.
before:
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file.mkv -an -c:v h264_amf res.dx11_hw_h264.mkv
output - Format of input frames context (p010le) is not supported by AMF.
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file -an -c:v hevc_amf res.dx11_hw_hevc.mkv
output - Format of input frames context (p010le) is not supported by AMF.
after:
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file -an -c:v h264_amf res.dx11_hw_h264.mkv
output - 10-bit input video is not supported by AMF H264 encoder
command - ffmpeg.exe -hide_banner -y -hwaccel d3d11va -hwaccel_output_format d3d11 -i test_10bit_file -an -c:v hevc_amf res.dx11_hw_hevc.mkv
output - 10bit file
v2 - lost line returned in ff_amf_pix_fmts
v3 - fixes after review
v4 - extract duplicated code, fix incorrect processing of 10-bit input for h264
v5 - non-functional changes after review
Co-authored-by: Evgeny Pavlov <lucenticus@gmail.com>
Co-authored-by: Araz Iusubov <Primeadvice@gmail.com>
Signed-off-by: Dmitrii Ovchinnikov <ovchinnikov.dmitrii@gmail.com>
2024-09-04 13:18:09 +02:00
Nicolas Gaullier
ee9ae4e8ba
fftools/ffmpeg: Fix honor -r output option with streamcopy
...
Fix "ost->st->avg_frame_rate = ost->frame_rate" in streamcopy_init()
being reset to input's frame rate a few lines below.
Note that in current code, there are some discrepancies amongst the
muxers. For example, avienc relies on time_base, so it is not affected
by this patch, whereas mxfenc and matroskaenc do use avg_frame_rate,
so this patch fixes -r being honored.
In the updated fate test, the input is (wrongly) probed as 50fps. With
this patch, the correct value (25fps) is successfully forced with -r.
Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2024-09-04 13:01:37 +02:00
Nicolas Gaullier
c14573a4d2
tests: Remove void -time_base overrides when streamcopying to mxf
...
Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2024-09-04 13:01:37 +02:00