Commit Graph

26974 Commits

Author SHA1 Message Date
openvela-robot 4cc6af2a0e random_seed: Rewrite the generic clock() based seed code
The new code is faster and reuses the previous state in case of
multiple calls.

The previous code could easily end up in near-infinite loops,
if the difference between two clock() calls never was larger than
1.

This makes fate-parseutils finish in finite time when run in wine,
if CryptGenRandom isn't available (which e.g. isn't available if
targeting Windows RT/metro).

Patch originally by Michael Niedermayer but with some modifications
by Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2026-04-20 15:13:56 +08:00
openvela-robot f15005ee32 Merge commit '9cbf2d78f0a9c19129e7a70b2281a450d386c6d9'
* commit '9cbf2d78f0a9c19129e7a70b2281a450d386c6d9':
  pthread_frame: unref decoded frames on failure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:51 +08:00
openvela-robot 3649f83881 Merge commit 'a03a642d5ceb5f2f7c6ebbf56ff365dfbcdb65eb'
* commit 'a03a642d5ceb5f2f7c6ebbf56ff365dfbcdb65eb':
  h264: do not use 422 functions for monochrome

See: 07abf13da4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:50 +08:00
openvela-robot 62c7dbe19e Merge commit '9eef9eb3014b2ed9c3ff4aac510a9f04edb555cf'
* commit '9eef9eb3014b2ed9c3ff4aac510a9f04edb555cf':
  h264: check that execute_decode_slices() is not called too many times

Conflicts:
	libavcodec/h264.c

The check is replaced by an assert() as the mb index should not ever go out
of bounds.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:49 +08:00
openvela-robot 66a64248e2 Merge commit 'bfd26b7ce6efea594f2b99441d900419df3af638'
* commit 'bfd26b7ce6efea594f2b99441d900419df3af638':
  h264: reject mismatching luma/chroma bit depths during sps parsing

Conflicts:
	libavcodec/h264_ps.c

See: bdeb61ccc6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:48 +08:00
Michael Niedermayer 8a5fb74623 avcodec/h264: reset list_count too in case of error in ff_set_ref_count()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:47 +08:00
openvela-robot da11b17ab2 Merge commit '9a026c72982faf20e1c8dfbe48f0b312cdea69c8'
* commit '9a026c72982faf20e1c8dfbe48f0b312cdea69c8':
  h264: rebuild the default ref list if the reference count changes

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:47 +08:00
openvela-robot af69a3718a Merge commit '4736d003fac30af4afd8390182f12f480ad78801'
* commit '4736d003fac30af4afd8390182f12f480ad78801':
  cavsdec: check ff_get_buffer() return value

Conflicts:
	libavcodec/cavsdec.c

See: eee8c94f50
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:46 +08:00
openvela-robot 102e9f1ce9 Merge commit '50079a6aa93291e6dc9d9fb8d33da83f79e9311d'
* commit '50079a6aa93291e6dc9d9fb8d33da83f79e9311d':
  lavc: do not leak the internal frame if opening the codec fails

Conflicts:
	libavcodec/utils.c

See: 8b285f03f7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:45 +08:00
openvela-robot e8580eeebc Merge commit '8058284ce09030b47512746d726fb2ad3ae8a20f'
* commit '8058284ce09030b47512746d726fb2ad3ae8a20f':
  lavc: add 422/444 YUV with alpha to align_dimensions()

Conflicts:
	libavcodec/utils.c

Only cosmetical changes happen as these formats already where in the list before

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:42 +08:00
openvela-robot cabc1d8ebb Merge commit '2f97094608cfd2665660f7a26a3291559b186752'
* commit '2f97094608cfd2665660f7a26a3291559b186752':
  lagarith: do not call simd functions on unaligned lines

Conflicts:
	libavcodec/lagarith.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:41 +08:00
openvela-robot 9e83577bdc Merge commit 'f4a8a0080537484154bb74e08ec76cbcbd25484b'
* commit 'f4a8a0080537484154bb74e08ec76cbcbd25484b':
  sgidec: fix buffer size check in expand_rle_row()

Conflicts:
	libavcodec/sgidec.c

See: 39c56ef921
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:40 +08:00
openvela-robot bb1a86d845 Merge commit 'adb199d1bc7f86aa6b85986f40190ec17f99d34f'
* commit 'adb199d1bc7f86aa6b85986f40190ec17f99d34f':
  kgv1dec: replace forcing EMU_EDGE by a copy

Conflicts:
	libavcodec/kgv1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:39 +08:00
openvela-robot 99df9a2c19 Merge commit 'fe80fa53bc4977ef6e8e749a9df8ca5590a09307'
* commit 'fe80fa53bc4977ef6e8e749a9df8ca5590a09307':
  4xm: replace forcing EMU_EDGE by a copy

Conflicts:
	libavcodec/4xm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:38 +08:00
openvela-robot 1937b4b65b Merge commit '98c0cd0b99254cd12f312bf6a4c24cd3ec5886b5'
* commit '98c0cd0b99254cd12f312bf6a4c24cd3ec5886b5':
  hevc: add new conformance streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:21 +08:00
Anton Khirnov 831f099151 pthread_frame: unref decoded frames on failure
This is similar to what the non-threaded code already does.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2026-04-20 15:13:19 +08:00
Anton Khirnov 80ae9956f7 h264: do not use 422 functions for monochrome
Fixes invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2026-04-20 15:13:19 +08:00
Anton Khirnov 089ee0d28c h264: check that execute_decode_slices() is not called too many times
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2026-04-20 15:13:19 +08:00
Anton Khirnov 37e8dcb938 h264: reject mismatching luma/chroma bit depths during sps parsing
There is no point in delaying the check and it avoids bugs with a
half-initialized context.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2026-04-20 15:13:19 +08:00
Anton Khirnov 614b37f6e2 h264: rebuild the default ref list if the reference count changes
Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2026-04-20 15:13:19 +08:00
Anton Khirnov e9945e7483 cavsdec: check ff_get_buffer() return value
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2026-04-20 15:13:18 +08:00
Anton Khirnov 2e22cd76d4 lavc: do not leak the internal frame if opening the codec fails 2026-04-20 15:13:18 +08:00
Anton Khirnov bbc863d01b lavc: add 422/444 YUV with alpha to align_dimensions()
Aligns frame dimensions to 16, which fixes potential invalid writes.
2026-04-20 15:13:18 +08:00
Kostya Shishkov 282475fa4c lagarith: do not call simd functions on unaligned lines
They end up overwriting past the line end.

Partially based on a patch by Michael Niedermayer <michaelni@gmx.at>

Bug-Id: vlc/9700
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2026-04-20 15:13:18 +08:00
Anton Khirnov f6580cb1fe sgidec: fix buffer size check in expand_rle_row()
Right now it will spuriously fail if the linesize is exactly equal to
the data width.

CC:libav-stable@libav.org
2026-04-20 15:13:18 +08:00
Anton Khirnov 6a34d7ced3 kgv1dec: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()
implementations.

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
2026-04-20 15:13:18 +08:00
Anton Khirnov b791ba3d44 4xm: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()
implementations.

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
2026-04-20 15:13:18 +08:00
openvela-robot afd74f16ef 4xm: return a proper error code. 2026-04-20 15:13:17 +08:00
Michael Niedermayer 9abe32b660 avcodec/hevc: Fix modulo operations
Fixes qp fields becoming out of range
Fixes: asan_static-oob_e393a3_6998_WPP_A_ericsson_MAIN10_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:15 +08:00
Michael Niedermayer 83ea006eba avcodec/hevc_ps: check that VPS referenced from SPS exists
This matches how its done for SPS/PPS.
An alternative to this is to check it when its used.

Fixes null pointer dereference
Fixes: signal_sigsegv_e30a43_1437_CIP_A_Panasonic_3.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:15 +08:00
Michael Niedermayer 7f397a8dc2 avcodec/huffyuvdec: optimize decode_plane_bitstream(), use joint tables for new yuv formats
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:15 +08:00
Michael Niedermayer a24be34111 avcodec/huffyuv: Support more 8bit YUV formats
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:15 +08:00
openvela-robot 2f27d717fc Merge commit '7840c40445c9f52aeccba96de3d27613398bfbf2'
* commit '7840c40445c9f52aeccba96de3d27613398bfbf2':
  (e)ac3dec: set AV_FRAME_DATA_MATRIXENCODING side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:14 +08:00
openvela-robot 040f9d502d Merge commit '13345fc1f86fc3615789e196d5a339c1c27c9068'
* commit '13345fc1f86fc3615789e196d5a339c1c27c9068':
  (e)ac3: parse and store the Dolby Surround, Surround EX and Headphone mode flags.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:13 +08:00
openvela-robot 8c54903c55 Merge commit 'e92123093dfdca0ef6608998240e2f9345d63bff'
* commit 'e92123093dfdca0ef6608998240e2f9345d63bff':
  mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:12 +08:00
openvela-robot 07afff9cf4 Merge commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09'
* commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09':
  mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream.

Conflicts:
	libavcodec/mlp_parser.h
	libavcodec/mlpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:11 +08:00
openvela-robot 2ed19a1db5 Merge commit '30d70e79a6b4ac7f4eb66446a9da275161ef6ea7'
* commit '30d70e79a6b4ac7f4eb66446a9da275161ef6ea7':
  dcadec: set AV_FRAME_DATA_MATRIXENCODING side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:10 +08:00
openvela-robot 24fc497f1a Merge commit '6bfdb2de881372048be7fbda643417e1fd3ce93c'
* commit '6bfdb2de881372048be7fbda643417e1fd3ce93c':
  dcadec: set the output channel mode more accurately.

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:09 +08:00
openvela-robot 8578302d03 Merge commit '5b4797a21db900b7d509660b7a4d49829089b004'
* commit '5b4797a21db900b7d509660b7a4d49829089b004':
  avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:08 +08:00
openvela-robot c419eae610 vp9_parse: don't use AVCodecParserContext as av_log context.
Fixes trac ticket 3273.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:05 +08:00
openvela-robot 294f4ac836 cmdutils: update copyright year to 2014.
Signed-off-by: Martin Storsjö <martin@martin.st>
2026-04-20 15:13:03 +08:00
openvela-robot 90e7d604c2 avformat/nutdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2026-04-20 15:13:00 +08:00
Tim Walker edfd76b561 (e)ac3dec: set AV_FRAME_DATA_MATRIXENCODING side data. 2026-04-20 15:12:58 +08:00
Tim Walker 8cf39efec2 (e)ac3: parse and store the Dolby Surround, Surround EX and Headphone mode flags. 2026-04-20 15:12:58 +08:00
Tim Walker 92b2584586 mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data. 2026-04-20 15:12:58 +08:00
Tim Walker 966bdafa44 mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream. 2026-04-20 15:12:58 +08:00
Tim Walker b700282baa dcadec: set AV_FRAME_DATA_MATRIXENCODING side data. 2026-04-20 15:12:58 +08:00
Tim Walker 2f107308ba dcadec: set the output channel mode more accurately.
When downmixing 2.1 to 2-channel, if the 2.0 portion is Lt/Rt, sum-difference or dual mono, the actual output will be the same (with the LFE either mixed-in or discarded).

Also, when downmixing an arbitrary layout to 2-channel, if the bitstream contains custom downmix coefficients targeting Lt/Rt, then the output will be Lt/Rt rather than regular Stereo.
2026-04-20 15:12:58 +08:00
Tim Walker bfe24d612a avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Includes a libavcodec utility function to update a frame's side data.
2026-04-20 15:12:57 +08:00
openvela-robot 76a607033b lavu: Add values for various Dolby flags to the AVMatrixEncoding enum. 2026-04-20 15:12:57 +08:00