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 Rothenpieler and James 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 Rothenpieler and Martin 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