100 Commits
Author SHA1 Message Date
Timo Rothenpieler 5f998e304d avcodec/nvenc: fix b_ref_mode capability check
Turns out it's a bitfield, not straight values.

Fixes #23061
2026-06-10 20:17:44 +02:00
Timo Rothenpieler 3baab604db forgejo/workflows: run at least one test out-of-tree 2026-05-24 00:12:16 +02:00
Timo Rothenpieler 0b52ae8aa6 tests/fate/generic-tags: fix out-of-tree testing 2026-05-23 23:16:57 +02:00
Timo Rothenpieler 1351c2c019 forgejo/workflows: make labeler also removed non-applicable labels again 2026-04-26 15:28:38 +00:00
Timo Rothenpieler 5c35d0b880 avformat/tls_gnutls: actually send client cert if one is provided
Without setting this flag, apparently gnutls will only send the client
certificate according some logic based on what it thinks the server
accepts.
This is not the case a lot of times.
Just force it to send the client cert the user supplied, if one was
supplied, no matter what.

Fixes #22707
2026-04-08 12:26:29 +00:00
Timo Rothenpieler fb088f224b avfilter/vf_vpp_amf: fix build on non-windows
sscanf and sscanf_s are identical for pure number parsing anyway.
2026-03-11 14:12:26 +01:00
Timo Rothenpieler 4f77473b46 forgejo/workflows: update actions 2026-01-24 20:05:07 +00:00
Timo Rothenpieler 7379539685 avcodec/prores_raw: use av_popcount instead of limited lookup table
The calculation can yield bigger values than the lookup table provides.
So just use actual popcount instead.

Fixes #21503
2026-01-18 18:52:55 +01:00
Timo Rothenpieler 69773c404a forgejo/workflows: don't cancel concurrent CI builds for non-PR pushes 2026-01-10 01:53:48 +00:00
Timo Rothenpieler b5d6cfd55b avcodec/notchlc: zero-initialize history buffer
Otherwise a specially crafted bitstream can potentially read
uninitialized stack memory.

Fixes #YWH-PGM40646-37
2026-01-05 13:30:38 +00:00
Timo Rothenpieler 7f44dcfbfb avcodec/notchlc: actually use HISTORY_SIZE to initialize history 2026-01-05 13:30:38 +00:00
Timo Rothenpieler e6184bce67 forgejo/workflows: explicitly name all workflows and jobs 2026-01-02 16:56:03 +00:00
Timo Rothenpieler f6a95c7eb7 avformat/img2dec: reject input images too big to fit into a single packet
Not entirely sure if it should instead use some entirely different
approach here, given that images exceeding 2GB don't seem that crazy
to me, but so far processing such images results in a heap overflow,
since the size addition overflows and a much too small packet is
allocated and its size never checked again when writing into it.

Fixes #YWH-PGM40646-32
2025-12-31 14:37:58 +00:00
Timo Rothenpieler 0d7b8d8913 forgejo/workflows: fix error handling of configure result 2025-12-17 13:28:21 +00:00
Timo Rothenpieler 0be989edcb forgejo/workflows: cat .err files after running fate 2025-12-17 13:28:21 +00:00
Timo Rothenpieler 5e8dcd6db1 forgejo/workflows: run windows fate tests through wine 2025-12-17 13:28:21 +00:00
Timo RothenpielerandJames Almer 4bb9b46486 avcodec/demux: validate avctx state in has_decode_delay_been_guessed 2025-12-16 22:45:17 -03:00
Timo Rothenpieler 338889c0d9 avfilter/vf_scale_d3d12: fix integer overflow in input framerate calculation
Also removes pointless intermediate variables that caused
the overflow and truncation to happen in the first place.

Fixes #YWH-PGM40646-1
2025-12-08 14:22:16 +01:00
Timo Rothenpieler f7aaa8ecb5 forgejo/workflows: make test shared/static mode more human readable 2025-11-26 23:21:11 +00:00
Timo Rothenpieler d479a4926a forgejo/workflows: make one of the builds shared 2025-11-03 19:03:16 +00:00
Timo Rothenpieler 994a368451 configure: deprecate support for libnpp 2025-09-26 12:31:39 +00:00
Timo Rothenpieler 61835e1d8b avfilter/vsrc_gfxcapture: keep cbdata object alive
Depending on the threading backend the stdlib uses, creating a
mutex/condvar can be quite expensive.
So keep this object alive in the ctx, on which we synchronize via the
uninit mutex anyway.
2025-09-18 01:04:59 +00:00
Timo Rothenpieler c4e537793b avfilter/vsrc_gfxcapture: fix leaking all callback handlers
Fixes #20537
2025-09-18 01:04:59 +00:00
Timo Rothenpieler 1849068c65 avfilter/vsrc_gfxcapture: use free threaded capture frame pool
Apparently, using a normal frame pool in a multithreaded environment
leads to strange resource leaks on shutdown, which vanish when using a
free threaded pool.
2025-09-18 01:04:59 +00:00
Timo Rothenpieler 4879c9f4e2 avfilter/vsrc_gfxcapture: stop capture session before initializing capture thread shutdown
It might have things going on in the background that still need cleaned
up, and this gives it a chance to enqueue them on the dispatch queue.
2025-09-18 01:04:59 +00:00
Timo Rothenpieler 23d9412ff9 avfilter/vsrc_gfxcapture: fix re-using ret variable from outside of lambda scope 2025-09-18 01:04:59 +00:00
Timo Rothenpieler 983fed34f8 avfilter/vsrc_gfxcapture: don't pass pointer to ComPtr
While it does appear to work fine, with all the operator overloads, it
at least has potential for surprises, so pass it by reference instead.
2025-09-18 01:04:59 +00:00
Timo Rothenpieler efd484cb2d avutil/hwcontext_d3d11va: remove D3D11_BIND_RENDER_TARGET restriction for array textures
This was added in 4f78711f9c, with the
commit message claiming that it's a Microsoft restriction that array
textures with ArraySize > 2 cannot be created with
D3D11_BIND_RENDER_TARGET.

I was unable to find any documentation or other references on that, and
a quick test also found it to not be the case. So this patch removes
that restriction.

This enables frame sources, like the d3d11 capture filters, to output
frames in an array texture, which is neccesary to pass those frames as
input to some hardware encoders.
2025-09-17 14:50:41 +00:00
Timo Rothenpieler 00ddb408c5 avfilter/vsrc_ddagrab: support rendering mouse cursor onto array textures 2025-09-17 14:50:41 +00:00
Timo Rothenpieler b8256b82f5 avfilter/vsrc_gfxcapture: remove needless use of atomics 2025-09-16 15:52:11 +00:00
Timo Rothenpieler 61378d6b91 avfilter/vsrc_gfxcapture: fix possible missed wakeup race in capture loop 2025-09-16 15:52:11 +00:00
Timo Rothenpieler 189d0b83b2 configure: pass CFLAGS to ObjC tests again
It was mistakenly removed in 0ce413af9c.

This matches how the Makefiles actually compile ObjC code, and
unlike C++, this seems to actually be benign and various existing
setups rely on that behaviour.
2025-09-15 14:37:43 +02:00
Timo Rothenpieler f85da32e3a configure: make --extra-objcflags show the right default flags 2025-09-15 14:17:49 +02:00
Timo Rothenpieler faba1501d5 avfilter/vsrc_gfxcapture: switch to std::thread
Combining C++ with our w32pthreads does not work out.
The C++ standard lib headers might include pthread.h, which will then
define clashing types with our w32pthread header.

To solve this, switch to using C++ native std::thread.
2025-09-14 21:46:40 +02:00
Timo Rothenpieler 570949822b avfilter/vsrc_gfxcapture: MapWindowPoints can return 0 and still succeed 2025-09-14 20:46:29 +02:00
Timo Rothenpieler d74d3080ff avfilter/vsrc_gfxcapture: make checkheaders happy 2025-09-14 20:33:24 +02:00
Timo Rothenpieler 6e63b978d3 doc/filters: fix missed reference to outdated option name 2025-09-14 15:33:31 +02:00
Timo Rothenpieler 36e374efb0 avfilter: add gfxcapture, Windows.Graphics.Capture based window/monitor capture 2025-09-14 11:45:11 +00:00
Timo Rothenpieler 7856f57533 compat/w32pthreads: fix compatibility with C++ 2025-09-14 11:45:11 +00:00
Timo Rothenpieler 5146b2fb8b configure: don't use MinGW ANSI stdio when using UCRT
MinGWs ANSI stdio is quite slow, and when using UCRT, its extra features
are not needed.
The only troublesome part with ucrt printf is that is disagrees about
the size of "long double", but FFmpeg does not use that anywhere, let
alone prints it.
2025-09-14 11:45:11 +00:00
Timo Rothenpieler 9c8a6ac85c configure: fix naming of some C++/cxx functions being mislabeled as cpp 2025-09-14 11:45:11 +00:00
Timo Rothenpieler 0ce413af9c configure: properly split C/CXX and CPP flags
Right now, CFLAGS like -std=c17 leak onto the C++ compilers commandline,
leading to tons of warnings and even some errors.

Undefining __STRICT_ANSI__ causes strong warnings from the stdlib
headers. So only set it for C.
2025-09-14 11:45:11 +00:00
Timo Rothenpieler 0362cb3806 build: link with CXX when -lstdc++ on linker commandline 2025-09-14 11:45:11 +00:00
Timo RothenpielerandMartin Storsjö 4c80cda08a forgejo: make aarch64 asm linter part of pre-commit
Needed some minor semantical changes to the shell wrapper, since
pre-commit expects it to exit with an error when applying fixes.
2025-09-13 20:58:29 +00:00
Timo Rothenpieler f8a300c673 configure: fix CUDA compilation with SDK version 13 nvcc
Compute Capability 7.5 is now the lowest supported version.

Fixes #20454
2025-09-08 14:25:44 +02:00
Timo Rothenpieler 883162d5b4 forgejo/workflows: make autolabel workflow always use token from secrets
Using the built-in token seems to only partially work.
And in the latest Forgejo release the issue forcing the use of the
built-in token was fixed with:

https://codeberg.org/forgejo/forgejo/pulls/9025
2025-09-01 03:02:51 +02:00
Timo Rothenpieler e3f01682d7 forgejo/labeler: react to 'labeled' action as well 2025-08-29 01:12:20 +02:00
Timo Rothenpieler 0f873fc07a forgejo/workflows: use built-in token for autolabeler whenever possible 2025-08-22 21:07:33 +02:00
Timo Rothenpieler 5bd866b6ed forgejo/workflows: cat config.log on configure failure 2025-08-21 15:08:50 +00:00
Timo Rothenpieler 8591227e1f forgejo/workflows: also run 32bit fate tests 2025-08-21 15:08:50 +00:00
Timo Rothenpieler 274e00ea84 forgejo/autolabeler: clean up logic a bit and prevent self-looping
The loop-protection only takes effect for the automatic token, not for
ffmpeg-devels PAT.
2025-08-10 01:50:46 +02:00
Timo Rothenpieler e992464f0f forgejo/autolabeler: add some logic to also auto-remove the "New" label 2025-08-09 23:18:57 +02:00
Timo Rothenpieler 5621eee672 avformat/tls: switch on peer certificate verification by default 2025-08-09 00:38:17 +00:00
Timo Rothenpieler aac1cddbeb forgejo/CODEOWNER: forgejo uses regex to match paths 2025-08-08 18:14:58 +02:00
Timo Rothenpieler 16d663d371 forgejo/workflows: add pre-commit based linting 2025-08-03 13:48:47 +02:00
Timo Rothenpieler 262d41c804 all: fix typos found by codespell 2025-08-03 13:48:47 +02:00
Timo Rothenpieler 8d439b2483 all: fix whitespace/new-line issues 2025-08-03 13:48:47 +02:00
Timo Rothenpieler c6b3aae0ee avfilter/vf_scale_d3d11: remove unused variable 2025-08-01 20:49:57 +02:00
Timo Rothenpieler 6115f03939 avcodec/mfenc: remove unused variables 2025-08-01 20:49:57 +02:00
Timo Rothenpieler e5275dbc96 avcodec/mfenc: fix compilation on modern gcc/clang 2025-08-01 20:49:57 +02:00
Timo Rothenpieler 18174cbae8 forgejo/workflows: add compile-only test for win64 2025-08-01 20:49:57 +02:00
Timo Rothenpieler 2d64d1129f forgejo/workflows: only upload cache if key changed 2025-07-31 22:57:35 +00:00
Timo Rothenpieler 29368ccb48 forgejo/workflows: use explicit token with issue write permission 2025-07-26 19:36:56 +02:00
Timo Rothenpieler dc0ac81bbe avcodec/cuviddec: fix wrong 10bit 420 format in cuvid_handle_video_sequence 2025-07-26 14:42:33 +02:00
Timo Rothenpieler a56da996ce avcodec/cuviddec: also reflect new pix_fmts in cuvid_handle_video_sequence 2025-07-26 14:42:05 +02:00
Timo Rothenpieler 2513f3d604 forgejo/workflows: add issue/PR auto labeler 2025-07-26 14:36:04 +02:00
Timo Rothenpieler 33e326ae02 forgejo/workflows: add initial rudimentary CI
It runs basic fate with no special dependencies enabled on x86_64 and
aarch64.
2025-07-22 20:06:20 +02:00
Timo Rothenpieler e6d2c67cd0 avformat/tls_openssl: avoid unusual inline-if style 2025-07-17 14:06:07 +02:00
Timo Rothenpieler 95eae5dd50 avformat/tls_openssl: unset nonblock flag on correct URLContext during dtls handshake
The internal BIO functions do not in fact look at this flag, only the outer
tls_read and tls_write functions do.
2025-07-17 02:20:34 +02:00
Timo Rothenpieler 9015d595a1 avformat/flvdec: don't skip backwards or over EOF
Skipping backwards (and even forwards) resets the EOF flag, and can thus
lead to infinite looping if the conditions are just right.

Fixes: Infinite loop
Fixes: 427538726/clusterfuzz-testcase-minimized-ffmpeg_dem_FLV_fuzzer-6582567304495104

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2025-07-16 19:05:51 +02:00
Timo Rothenpieler 483e509169 avformat/tls_openssl: automatically generate self-signed certificate when none is provided in listen mode 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 454f161b4b avformat/tls_openssl: make generating fingerprints optional 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 40ce64eae7 avformat/tls_openssl: don't expose deprecated EC_KEY outside of its function 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 5339db2cf4 avformat/tls_openssl: properly free generated/read keys and certificates 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 49badc8689 avformat/tls_openssl: don't enable read_ahead in dtls mode
OpenSSL docs say:
These functions have no impact when used with DTLS.
2025-07-16 18:46:55 +02:00
Timo Rothenpieler 31abcc1505 avformar/tls_openssl: use correct info callback in DTLS mode 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 5edbfc4bae avformat/tls_openssl: clean up peer verify logic in dtls mode 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 95fd0840fe avformat/tls_openssl: don't hardcode ciphers and curves for dtls 2025-07-16 18:46:55 +02:00
Timo Rothenpieler f3355a1fff avformat/tls_openssl: properly limit written size to data mtu 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 576f44016a avformat/tls_openssl: set default MTU if none is set 2025-07-16 18:46:55 +02:00
Timo Rothenpieler b6e808d28b avformat/tls_openssl: initialize DTLS context with correct method 2025-07-16 18:46:55 +02:00
Timo Rothenpieler db0adbbd3f avformat/tls_openssl: don't abort if dtls has no key/cert set 2025-07-16 18:46:55 +02:00
Timo Rothenpieler 951013e603 avformat/tls_openssl: force dtls handshake to be blocking
There is no sensible way to handle this otherwise anyway, one just has
to loop over this function until it succeeds.
2025-07-16 18:46:55 +02:00
Timo Rothenpieler 87b09f3931 avformat/tls_openssl: set dtls remote addr in listen mode
Taken from the first received packet, which will signify the now
permanent peer of this DTLS "connection".
2025-07-16 18:46:55 +02:00
Timo Rothenpieler 3ce348063c avcodec/nvdec: switch to proper pixfmts on next major bump 2025-07-11 17:49:58 +02:00
Timo Rothenpieler 8304a1abc7 avcodec/nvenc: add support for new 10 bit MSB pixel formats 2025-07-11 17:49:58 +02:00
Timo Rothenpieler 02a7c85753 swscale: add support for new 10/12 bit MSB formats 2025-07-11 17:49:58 +02:00
Timo Rothenpieler e93de9948d avutils/pixfmt: add YUV444/GBRP 10 and 12 bit MSB formats 2025-07-11 17:49:58 +02:00
Timo Rothenpieler 9b6638e125 avformat/tls_schannel: fix non-blocking write breaking TLS sessions 2025-07-11 17:49:58 +02:00
Timo Rothenpieler 9cd86c431b avformat/tls_schannel: add option to load server certificate from store 2025-07-11 17:49:57 +02:00
Timo Rothenpieler 90fa9636ef avformat/tls_schannel: add DTLS support 2025-07-11 17:49:57 +02:00
Timo Rothenpieler 6af099522e avformat/tls: make passing an external socket universal 2025-07-11 17:49:57 +02:00
Timo Rothenpieler 2604c86c1f avformat/udp: add function to set remote address directly 2025-07-11 17:49:57 +02:00
Timo Rothenpieler 585cae13fa avformat/udp: separate rx and tx fifo 2025-07-11 17:49:57 +02:00
Timo Rothenpieler af04a27893 avformat/udp: make recv addr of each packet available 2025-07-11 17:49:57 +02:00
Timo Rothenpieler 2c7e117fe0 avformat/tls: move whip specific init out of generic tls code 2025-07-11 17:49:57 +02:00
Timo Rothenpieler bf5f3f1f2e avcodec/nvdec: fix 10bit output pixel formats
Fixes #11655
2025-07-04 17:20:57 +02:00
Timo Rothenpieler ba984355fe avformat/whip: fix format string for printing size_t 2025-07-03 22:51:15 +02:00
Timo Rothenpieler 3f7e0fddee avformat/tls: clean up new whip options 2025-07-03 22:18:10 +02:00
Timo Rothenpieler 4a4a566d6e avformat/tls: remove unused fingerprint option 2025-07-03 22:18:10 +02:00