1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-24 02:09:03 +03:00

27502 Commits

Author SHA1 Message Date
Michael Niedermayer
d32b387f2b avformat/rawutils: reject raw RGB frames that do not fit an AVPacket
Fixes: integer overflow
Fixes: out of array access
Fixes: payload.film
Fixes: czK1F83k3zvT
Found-by: Clouditera Security, Z.ai Security, NSFOCUS
(cherry picked from commit d3ad8a7fee)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-03 21:52:07 +02:00
Michael Niedermayer
301508d126 avformat/mov: reject a trun sample count the input cannot hold
Fixes: OOM
Fixes: 525088811/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5229499332231168
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
(cherry picked from commit ae0e0ba3c3)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-03 21:47:30 +02:00
Romain Beauxis
5da834256b avformat/mp3enc: fix underflow of the LAME encoder delay
AV_RL32() is unsigned, so a skip_samples value below 528 + 1 wraps around
instead of clamping to zero and is written out as a delay of 4095 samples.

(cherry picked from commit 146e0f7b79)
Signed-off-by: Romain Beauxis <romain.beauxis@gmail.com>
2026-08-03 09:44:01 -05:00
Christopher Decker
b0692eb266 avformat/os_support: fix return value of win32_rename
The return value of MoveFileExW was not being correctly interpreted,
see https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-movefileexw.

On Windows a failed rename over the file: protocol now surfaces as failed to rename file %s to %s:
Operation not permitted (ff_rename, libavformat/avio.c:867) plus an AVERROR(EPERM) return, where previously the muxer
reported success and the user was left with a missing or stale output file and no diagnostic. This affects the
write-to-temp-then-rename paths in hlsenc, dashenc, hdsenc, smoothstreamingenc, segment, and img2enc (e.g. HLS/DASH
playlist updates, -write_temp_file, segment list finalization).

Also, added unit tests to exercise the rename function.

Signed-off-by: Christopher Decker <chris.decker08@gmail.com>
(cherry picked from commit 94ff335d76)
Co-Authored-by: Fable 5
2026-08-02 06:24:00 +02:00
Steven Liu
2bf9f7b6e3 avformat/dashdec: check NULL pointer before use str_end_offset
fix issue: issues/23057 POC2

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
(cherry picked from commit 5e0ca682a4)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 06:03:04 +02:00
Steven Liu
e22de4c790 avformat/dashdec: check NULL pointer of av_strtok value before use it
fix issue: issues/23057 POC1
release seg memory and return NULL if av_strtok return NULL.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
(cherry picked from commit 813c28d1ce)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 06:03:04 +02:00
Steven Liu
02edc0f612 avformat/dashdec: fix integer truncation in calc_max_seg_no()
When computing the segment count for a SegmentTimeline entry with
repeat="-1" (indefinite repeat, typical for live streams), the
expression:

  length_of_each_segment = pls->timelines[i]->duration /
                           pls->fragment_timescale;
  num = c->period_duration / length_of_each_segment;

performs two successive integer divisions.  The first division
truncates toward zero; if the segment duration in timescale ticks
is smaller than the timescale (duration < fragment_timescale),
length_of_each_segment becomes 0, and the second division triggers
a division by zero.

Fix this by using av_rescale(), which computes

  period_duration * fragment_timescale / duration

with 64-bit intermediate precision, avoiding both the truncation
and the zero-division risk.  If duration is 0 (invalid manifest),
explicitly fall back to first_seq_no instead of crashing.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
(cherry picked from commit 0c0dd61b8f)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 06:03:03 +02:00
James Almer
a5ef0da32a avformat/dashdec: don't stop at the first input EOF
The current logic would stop demuxing the entire manifest once the first Representation
returned EOF, which could result in plenty of packets from other Representations being
lost.

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit d9da090b1d)
2026-08-02 00:14:22 -03:00
James Almer
95fe88589a avformat/iamf_parse: check that num_sub_mixes and num_audio_elements in Mix Presentations are not zero
As required by the spec in Section 3.7

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 1b946a3abd)
2026-08-02 00:13:26 -03:00
James Almer
5eac4c5e3e avformat/iamf_parse: bound the output mix gain duration by the audio elements
Based on a patch by Michael Niedermayer

Fixes: unbounded allocation
Fixes: poc_output_mix_config_dos.iamf
Fixes: 387qWpjUgeKH
Found-by: Duong Tran Thai (CyStack)
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit d2476bfd2b)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:34 +02:00
Abdessamie
63cfa99169 avformat/rtsp: clear authentication on cross-origin redirects
RTSP redirects retain URL credentials and authentication state when a
Location URI changes to another origin. This can forward reusable
credentials to a server with a different scheme, host, or port.

Clear the stored credentials and authentication state when the redirect
crosses an origin boundary. Preserve them for same-origin redirects.

Fixes: cross-origin credential disclosure
Fixes: rtsp_redirect_auth_leak_poc.py
Fixes: VaKaPOnfN02z
(cherry picked from commit a441a2eb38)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:32 +02:00
Michael Niedermayer
dd22741d71 avformat/mov: bound sgpd sync entry_count by the atom size
Fixes: unbounded allocation
Fixes: ffmpeg-sgpd-sync-entry-count-alloc.mp4
Fixes: 4f7OaHqbUKh2
Found-by: Brian Lee, Youngjoon Kim (Georgia Tech SSLab)
(cherry picked from commit a100d346da)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:30 +02:00
Omkhar Arasaratnam
9718986bf0 avformat/tls_openssl: bind peer identity for numeric-IP verify
tls_open() installed a peer-identity target only when the URL host was
non-numeric. For a numeric-IP target the whole block was skipped, so
with verify=1 OpenSSL validated the chain to a trusted CA but bound no
identity, and any publicly-trusted certificate for any name was accepted
(e.g. tls://203.0.113.10?verify=1).

Run the identity block for every non-listening connection. Classify
s->host with the same getaddrinfo(AI_NUMERICHOST) rule tls.c uses. A
numeric host is pinned to the certificate's iPAddress SAN by handing
OpenSSL the parsed binary address via X509_VERIFY_PARAM_set1_ip();
everything else, including a verifyhost=<name> override, binds by name
via SSL_set1_host(). Passing the binary address rather than re-probing
the ASCII form pins legacy numeric spellings such as 2130706433 as IPs
instead of letting them fall back to hostname matching. SNI is still
suppressed for numeric transport hosts (RFC 6066 sec. 3) via
s->numerichost.

The identity target is installed unconditionally for non-listening
connections; whether the certificate is actually verified stays
controlled separately by SSL_CTX_set_verify() under s->verify, so
disabling verification keeps the prior behaviour. Sets AVERROR_EXTERNAL
with an explicit log line on failure.

dtls_open() sets s->is_dtls and then calls tls_open(), so DTLS client
connections run through the same identity block and are covered here.

Found-by: Claude (Anthropic). Human-verified and reported by
Omkhar Arasaratnam <omkhar@linkedin.com>.
Signed-off-by: Omkhar Arasaratnam <omkhar@linkedin.com>
(cherry picked from commit 83c6922826)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:30 +02:00
Michael Niedermayer
4af563686f avformat/codec2: avoid integer overflow in packet size and duration
Fixes: signed integer overflow
Fixes: 2jy_poc_codec2.zip / poc_codec2.raw
Fixes: jOQASNnOm6O7
Found-by: Jiale Yao <yaojiale02@163.com>
(cherry picked from commit 2b7e501242)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:29 +02:00
Steven Liu
01044d0453 avformat/hls: Enforce protocol checks when opening child playlists
Fix: vulnerability:019f3b84-903b-75fb-a8de-fad1c2d7e99c
The parse_playlist() path for opening a new child playlist (in == NULL)
directly called c->ctx->io_open(), bypassing the protocol whitelist and
file-extension checks that open_url() enforces. This allowed child URLs
from a master playlist to use protocols other than file/http/data or to
have disallowed extensions.

Route the !in branch through open_url() so that all child playlists are
subject to the same security policy as segment URLs.

Fixes a security bypass in HLS master playlist parsing.

Found-by: depthfirst
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
(cherry picked from commit 23602df9cd)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:29 +02:00
Steven Liu
f6c97aeadc avformat/hlsenc: Fix heap buffer overflow in parse_playlist()
Fix: vulnerability:019f3b84-903b-75fb-a8de-fe6f84d6bc32

When parsing IV=0x... followed by a comma, end - ptr was passed directly
to av_strlcpy() as the destination size. Since iv_string is only 33 bytes
(KEYSIZE*2 + 1), a long IV token could overflow into adjacent heap data.

Use FFMIN(end - ptr + 1, sizeof(buf)) to cap the copy size to the actual
buffer size. Apply the same fix to key_uri parsing for consistency.

Fixes a heap buffer overflow in append_list mode when reading an existing
playlist with a crafted IV or URI token length.

Found-by: depthfirst
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
(cherry picked from commit 275e217b10)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:28 +02:00
Steven Liu
0e5fd5f5f6 avformat/hlsenc: Handle extensionless URIs in extract_segment_number()
fix: vulnerability:019f3b84-90fb-737a-ae7a-b3e0219266fc
extract_segment_number() used strrchr(filename, '.') and immediately did
dot - 1 without checking for NULL. A segment URI with no extension would
cause undefined behavior (NULL pointer arithmetic) when resuming an
append_list playlist with subtitle variants.

Add a NULL check and return -1 early when no dot is found.

Fixes a crash/UB in HLS muxer resume path.

Found-by: depthfirst
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
(cherry picked from commit 601d9ee881)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-08-02 02:47:28 +02:00
almogyalin
8d7f63675c avformat/iamf_parse: fix inverted subblock duration validation
The check on variable subblock durations had an inverted comparison, rejecting valid multi-subblock parameters and failing to catch subblock durations exceeding the remaining time.

(cherry picked from commit 1635b49b80402c8cec39eefb12f35e2ee7c13606)
2026-07-29 21:10:58 +00:00
James Almer
af3779401a avformat/lcevc: add a log context parameter to all functions
Printing to NULL should be avoided when possible.

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit b3d4ce20a4)
2026-07-23 13:58:00 -03:00
Omkhar Arasaratnam
f8051f532c avformat/tls_mbedtls: check the certificate verification result in tls_handshake()
tls_mbedtls verifies the peer certificate manually via
mbedtls_ssl_get_verify_result() (it uses MBEDTLS_SSL_VERIFY_OPTIONAL), but
only in tls_open(). On the external-socket path (external_sock=1) tls_open()
skips the handshake; it then runs later through the url_handshake hook,
tls_handshake(), which never checks the verification result, so with verify=1
an untrusted peer certificate would be accepted.

The only in-tree user of this path is the WHIP muxer, which sets verify=0
(WebRTC binds the peer via the SDP a=fingerprint, not a CA), so this is not
reachable today. This change is defence-in-depth: it makes tls_handshake()
honor verify symmetrically with the existing tls_open() check.

Signed-off-by: Omkhar Arasaratnam <omkhar@linkedin.com>
(cherry picked from commit b96701098f)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 23:00:00 +02:00
Michael Niedermayer
1b8b99dd45 avformat/mov: avoid overflow/negative discard sample duration
This also fixes a corner case with st->duration = INT64_MAX

This assumes pkt->duration >= 0

Fixes: 525566001/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-5952332261818368
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6d300b4732)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 23:00:00 +02:00
Michael Niedermayer
03e6259254 avformat/concatdec: Check recursion depth
This variant is easy backportable but is concatdec specific

Fixes: self_ref.ffconcat
Reported-by: Yuhao Jiang <danisjiang@gmail.com>
Rediscovered-by: Anxious Koisi
Fixes: RWHkT0ASFMNI
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 58d39e99e2)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:59 +02:00
Michael Niedermayer
52f7983f15 avformat/ty: don't let the Series2 AC3 trim underflow the packet size
Fixes: negative-size-param
Fixes: ty-s2-ac3-negative-size-single-file.ffconcat / create_poc.py
Fixes: g0qeE6KvrjZi
Found-by: Adrian Junge (vurlo)
(cherry picked from commit de771bd527)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:59 +02:00
Jun Zhao
39809968eb avformat/utils: fix ff_mkdir_p() swallowing intermediate mkdir errors
When creating nested directories (e.g. /a/b/c), a genuine mkdir()
failure for an intermediate component was overwritten by later
attempts, making the original failure harder to diagnose.

Stop immediately on intermediate errors other than EEXIST, preserving
errno for the caller. Existing path components remain non-fatal, as
required by mkdir -p semantics. Add a regression test for creating a
child below an existing parent directory.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
(cherry picked from commit a6ed750664)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:57 +02:00
Michael Niedermayer
27f503c90e avformat/spdif: fix reading past the buffer when probing AAC in IEC 61937
Fixes: read of uninitialized memory
Fixes: 528525234/clusterfuzz-testcase-minimized-ffmpeg_dem_W64_fuzzer-6429204661731328
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
(cherry picked from commit 15bbf3a21d)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:55 +02:00
Michael Niedermayer
9d5704e4d9 avformat/hls_sample_encryption: Validate ADTS frame length against packet
Fixes: out of array access
Fixes: playlist.m3u8 / make_poc.py
Fixes: rJ50u41V7ctk
Fixes: ff958b3846 (libavformat/hls: add support for decryption of HLS media segments encrypted using SAMPLE-AES encryption method)
Found-by: Clouditera Security Research Team <haoyuliu@clouditera.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 976490dcc3)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:54 +02:00
Michael Niedermayer
6727eb54e8 avformat/iff: reject invalid data_size in ANIM
Fixes: 520277418/clusterfuzz-testcase-minimized-ffmpeg_dem_IFF_fuzzer-6733106211258368
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 14604ec4b7)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:54 +02:00
Kacper Michajłow
0e6eef3551 avformat/hls: reject Master Playlist tags in a Media Playlist
Fixes infinite loop on crafted HLS playlists.

Fixes: recursion.m3u8
Fixes: cEy2cxyyPaLH
Fixes: cd223e0b4e (Add Apple HTTP Live Streaming demuxer)
Found-by: BapToutatis
Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
(cherry picked from commit c364ab176f)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:53 +02:00
Omkhar Arasaratnam
1f51b7b87f avformat/mov: bound the iref thmb/cdsc entry count by the sub-box size
Fixes: excessive parsing past the iref sub-box
Fixes: TMwMAJfgy3l9
Fixes: 74e430202d (avformat/mov: make items referencing items generic)
Found-by: Omkhar Arasaratnam
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit dcc18b6077)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:53 +02:00
Michael Niedermayer
eac6965d9c avformat/wavdec: fix integer overflow in W64 chunk size check
Fixes: 523658585/clusterfuzz-testcase-minimized-ffmpeg_dem_W64_fuzzer-5454488994643968
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 3b28a08a32)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:52 +02:00
Pavel Kohout
bd108f4026 avformat/imfdec: check for a missing or empty Path in the asset map
Fixes: NULL pointer dereference
Fixes: vIIX7oqa3coO
Fixes: 73f6cce936 (avformat/imf: Demuxer)
Found-by: Pavel Kohout (Aisle Research)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 0fe4bd4b43)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:52 +02:00
Pavel Kohout
aba17b5dc3 avformat/imfdec: reject virtual tracks with no resources
Fixes: NULL pointer dereference
Fixes: kia6rom3mZdr
Fixes: 73f6cce936 (avformat/imf: Demuxer)
Found-by: Pavel Kohout (Aisle Research)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit a76190152d)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:52 +02:00
Pavel Kohout
dcf8ce2802 avformat/vobsub: reuse subtitle streams and bound the stream count
Fixes: heap buffer overflow
Fixes: lqaO5R1BaZGO
Fixes: dbfe61100b (avformat/vobsub: fix several issues.)
Found-by: Pavel Kohout (Aisle Research)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit dbd495f066)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:51 +02:00
Pavel Kohout
3c441711a3 avformat/rtpdec_asf: reject ASF objects smaller than their header
Fixes: infinite loop
Fixes: MzWwJdpZF2Ls
Fixes: c2f3eec445 (Implement RTSP-MS/ASF packet parsing.)
Found-by: Pavel Kohout (Aisle Research)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 11d5f475be)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:51 +02:00
Michael Niedermayer
385ac2fadc avformat/spdifenc: bound DTS core_size against the packet size in the HD path
Fixes: out of array read
Fixes: yBSax492UIB9
Fixes: 482d98f69b (spdifenc: IEC 61937 encapsulation of DTS-HD for HDMI)
Found-by: Pavel Kohout (Aisle Research)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6f80e27654)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:51 +02:00
Michael Niedermayer
5464915e69 avformat/movenc: free sgpd_entries on the roll-distance error path
Found-by: Ao Xijie
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b553b810c4)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:50 +02:00
Michael Niedermayer
f15e730cd2 avformat/iamf_parse: check count_label against the available bytes
Fixes: unbounded allocation / denial of service
Fixes: tP59h4cpaFyg
Fixes: 4ee05182b7 (avformat: Immersive Audio Model and Formats demuxer)
Found-by: Adrian Junge (vurlo)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 86708357d1)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:49 +02:00
Michael Niedermayer
b76ad17ab4 avformat/mov: check current_dts for overflow
This includes a bunch of semi related checks that Fairy wanted added

Fixes: 498236160/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-4526018559016960
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 7e4366cf51)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-07-21 22:59:49 +02:00
Jack Lau
ca9d828102 avformat/whip: disable DTLS certificate verification
Fix DTLS failure since 9549c9ad79

WebRTC does not verify CA because it allows self-signed cerificate.

Signed-off-by: Jack Lau <jacklau1222gm@gmail.com>
(cherry picked from commit 6f2f3755a0)
2026-07-07 22:27:00 +08:00
Michael Niedermayer
47e9d68e20 Bump minor for release/9.0
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-06-26 02:43:34 +02:00
Niklas Haas
e5a3c5e409 avformat/http: accept case-insensitive Connection header value
RFC 9110 defines this as case-insensitive, and some servers (e.g. MythTV)
send it as "Close" instead of "close".

See-Also: https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/23222
Signed-off-by: Niklas Haas <git@haasn.dev>
2026-06-25 15:50:43 +00:00
Niklas Haas
bd51105806 avformat/http: infer default s->willclose based on request header
If we send `Connection: close` but don't get any response Connection header
back from the HTTP server, we should still assume the server will close our
connection.

There is a minor bit of ambiguity about what state to assume if the user
overrode the "Connection:" header, but I'm optimistically leaning in
favor of keep-alive as the more likely value for a user to set.

Not updating our internal state tracking as a result of user-provided
headers overriding our own headers is a prior problem with http.c that is
outside the scope of this PR to fix.

Signed-off-by: Niklas Haas <git@haasn.dev>
2026-06-25 15:50:43 +00:00
Martin Storsjö
1499c4ac6d avformat/tls_openssl: Add a missing <string.h> include
This is needed when building with OpenSSL enabled on macOS after
c32a719cb2.

The tls_openssl.c contains a number of explicit calls to strlen(),
which require including <string.h>.
2026-06-25 15:34:04 +03:00
Marton Balint
18d164a573 avformat/asfdec_f: do not truncate get_value result
Also change the function to return 0 on error, this is a more sensible error
value for aspect ratios anyway.

Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:54 +02:00
Marton Balint
99aab32380 avformat/asfdec_f: simplify get_tag/get_value usage
get_tag() only behaves differently for the BOOLs of Extended Content
Description Object, so lets adjust the type there instead of passing BOOL width
for all calls. Similar to what asfdec_o does.

Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:54 +02:00
Marton Balint
dab1ac3e6e avformat/utils: fix ff_dict_set_timestamp() with negative timestamps
Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:53 +02:00
Marton Balint
c434d0a160 avformat/asfdec_f: set creation time as metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:53 +02:00
Marton Balint
2bbf0da31a avformat/asfdec_o: use common function for setting creation time
This also increases precision.

Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:53 +02:00
Marton Balint
83c6534d5a avformat/asfenc: use common function for timestamp conversion
Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:53 +02:00
Marton Balint
2d2a810294 avformat/wtvdec: use ISO timestamps with timezone and higher precision
Signed-off-by: Marton Balint <cus@passwd.hu>
2026-06-24 23:31:53 +02:00