Marvin Scholz
8a314e3f11
lavu/opt: Fix return of uninitialised value
...
In one of the failure paths of av_opt_get_array, the ret variable
was accidentally declared again, shadowing the outer one and once when
jumping to the fail label would return the still uninitialised outer
one.
To fix this simply remove the local declaration of ret that shadowed
the outer one.
Introduced in d89930f866
Fixes: CID1618663 Uninitialized scalar variable
2024-09-07 20:42:26 +02:00
Marvin Scholz
b4e64b86ad
lavu/opt: av_opt_set_array: fix uninitialised return
...
In one failure path for av_opt_set_array, the ret variable
was declared again, shadowing the outer one and writing the
return value to the wrong one and then after the goto returning
the uninitialized one instead.
Introduced in 450a3f58ed
Fixes: CID1619242 Uninitialized scalar variable
2024-09-07 20:39:42 +02:00
Timo Rothenpieler
7e35aeda03
lavu/opt: properly initialize av_opt_set_array return value
2024-09-07 20:21:01 +02:00
Ramiro Polla
c0666d8bed
swscale/aarch64/rgb2rgb: add neon implementation for rgb24toyv12
...
A55 A76
rgb24toyv12_16_200_c: 36890.6 17275.5
rgb24toyv12_16_200_neon: 12460.1 ( 2.96x) 5360.8 ( 3.22x)
rgb24toyv12_128_60_c: 83205.1 39884.8
rgb24toyv12_128_60_neon: 27468.4 ( 3.03x) 13552.5 ( 2.94x)
rgb24toyv12_512_16_c: 88111.6 42346.8
rgb24toyv12_512_16_neon: 29126.6 ( 3.03x) 14411.2 ( 2.94x)
rgb24toyv12_1920_4_c: 82068.1 39620.0
rgb24toyv12_1920_4_neon: 27011.6 ( 3.04x) 13492.2 ( 2.94x)
2024-09-06 23:11:13 +02:00
Ramiro Polla
caaec2ea95
swscale/x86/rgb2rgb: disable rgb24toyv12_mmxext for x86_64
...
The mmxext implementation is slower than the C version in x86_64.
m32 m64
rgb24toyv12_16_200_c: 24942.7 14812.6
rgb24toyv12_16_200_mmxext: 17857.2 ( 1.40x) 17400.4 ( 0.85x)
rgb24toyv12_128_60_c: 56892.9 35616.9
rgb24toyv12_128_60_mmxext: 40730.9 ( 1.40x) 39610.4 ( 0.90x)
rgb24toyv12_512_16_c: 58402.7 37209.4
rgb24toyv12_512_16_mmxext: 44842.4 ( 1.30x) 41136.2 ( 0.90x)
rgb24toyv12_1920_4_c: 54827.4 34737.4
rgb24toyv12_1920_4_mmxext: 51169.9 ( 1.07x) 34818.9 ( 1.00x)
2024-09-06 23:06:38 +02:00
Ramiro Polla
e0cc06184c
checkasm/sw_rgb: add rgb24toyv12 tests
2024-09-06 23:06:35 +02:00
Ramiro Polla
3604b2403c
swscale/rgb2rgb: improve chroma conversion in ff_rgb24toyv12_c
...
The current code subsamples by dropping 3/4 pixels to calculate the
chroma components. This commit calculates the average of 4 rgb pixels
before calculating the chroma components, putting it in line with the
mmxext implementation.
2024-09-06 23:06:32 +02:00
Ramiro Polla
d8848325a6
swscale/aarch64/rgb2rgb: add deinterleaveBytes neon implementation
...
A55 A76
deinterleave_bytes_c: 70342.0 34497.5
deinterleave_bytes_neon: 21594.5 ( 3.26x) 5535.2 ( 6.23x)
deinterleave_bytes_aligned_c: 71340.8 34651.2
deinterleave_bytes_aligned_neon: 8616.8 ( 8.28x) 3996.2 ( 8.67x)
2024-09-06 23:05:09 +02:00
Ramiro Polla
c08bb33e41
checkasm/sw_rgb: add deinterleaveBytes
2024-09-06 23:05:06 +02:00
Ramiro Polla
4c824ad391
swscale/x86/rgb2rgb: fix deinterleaveBytes writing past the end of the buffers
2024-09-06 23:05:04 +02:00
Ramiro Polla
f17a6bd200
swscale/x86/rgb2rgb: fix deinterleaveBytes for unaligned dst pointers
2024-09-06 23:05:01 +02:00
Frank Plowman
6df0c5f9f4
lavc/vvc: Remove experimental flag
...
This reverts commit 110d8549d5
.
I have been working through fixing bugs, particularly crashes I've
found using a fuzzer, in the VVC decoder for the past few months.
While I won't claim it is now bug-free, it is considerably more
resilient than it was and I think in a position to have the
experimental flag removed for release 7.1.
Additionally, most of the Main 10 features of VVC which were missing
version of the decoder released in 7.0 have now been implemented.
This includes the most major missing features: IBC, subpictures and RPR.
Signed-off-by: Frank Plowman <post@frankplowman.com>
2024-09-06 22:14:52 +08:00
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