On Sun, Jul 13, 2025 at 4:59 AM James Almer wrote:
>
> On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
> > On Fri, Jul 11, 2025 at 04:04:17PM +, Timo Rothenpieler wrote:
> >> ffmpeg | branch: master | Timo Rothenpieler | Tue
> >> Jun 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c081
On 7/12/2025 9:32 PM, Michael Niedermayer wrote:
On Fri, Jul 11, 2025 at 04:04:17PM +, Timo Rothenpieler wrote:
ffmpeg | branch: master | Timo Rothenpieler | Tue Jun
24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] | committer: Timo
Rothenpieler
avformat/tls_schannel: a
Michael Niedermayer write:
> On Thu, Jul 10, 2025 at 10:20:45AM +0800, Lidong Yan wrote:
> > In sap_write_header(), ff_format_set_url() assign new allocated new_url
> > to contexts[i]->url but forgot to free it later. Add for loop to free
> > contexts[i]->url before av_free(context).
> >
> > To p
Fixes: signed integer overflow: 2147483565 + 128 cannot be represented in type
'int'
Fixes:
428055715/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_OSQ_fuzzer-6358069900804096
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by:
Fixes: out of array read in the chroma plane
Fixes:
428034092/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_DEC_fuzzer-5582608941776896.test
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
liba
Signed-off-by: Michael Niedermayer
---
libavcodec/h264chroma_template.c | 30 +++---
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/libavcodec/h264chroma_template.c b/libavcodec/h264chroma_template.c
index b9d24f5a0cd..b20811a71ae 100644
--- a/libavcodec/h
Fixes: signed integer overflow: 4 - -922337203685477 cannot be
represented in type 'long'
Fixes:
427262541/clusterfuzz-testcase-minimized-ffmpeg_dem_CONCAT_fuzzer-4831506940100608
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-
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: Michael Niedermayer
---
libavformat/flvdec.c | 3 +++
1 file changed, 3
On Fri, Jul 11, 2025 at 04:04:17PM +, Timo Rothenpieler wrote:
> ffmpeg | branch: master | Timo Rothenpieler | Tue Jun
> 24 19:30:19 2025 +0200| [90fa9636efff84ec5a4b06815722c08188dca551] |
> committer: Timo Rothenpieler
>
> avformat/tls_schannel: add DTLS support
>
> > http://git.videolan
---
configure| 2 +
libavcodec/Makefile | 1 +
libavcodec/hwaccels.h| 1 +
libavcodec/vp9.c | 18 +-
libavcodec/vulkan_decode.c | 24 +++
libavcodec/vulkan_decode.h | 1 +
libavcodec/vulkan_vp9.c | 366
---
libavfilter/vf_scale_vulkan.c | 60 +--
libavfilter/vulkan/Makefile | 1 +
libavfilter/vulkan/debayer.comp | 102
3 files changed, 159 insertions(+), 4 deletions(-)
create mode 100644 libavfilter/vulkan/debayer.comp
diff --git a/libav
---
configure | 2 +-
libavcodec/vp9.c | 40
libavcodec/vp9dec.h| 6 ++
libavcodec/vp9shared.h | 4
4 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index eeb81d7aa3..92ee54c7a6 100755
-
This commit adds a ProRes RAW hardware implementation written in Vulkan.
Both version 0 and version 1 streams are supported.
The implementation is highly parallelized, with 512 invocations dispatched
per every tile, with generally 4k tiles on a 5.8k stream.
Thanks to unlord for the 8-point iDCT.
---
libavfilter/vf_scale_vulkan.c | 160 ++
1 file changed, 85 insertions(+), 75 deletions(-)
diff --git a/libavfilter/vf_scale_vulkan.c b/libavfilter/vf_scale_vulkan.c
index 1d6492e213..46b1476933 100644
--- a/libavfilter/vf_scale_vulkan.c
+++ b/libavfilter/vf_sca
---
libavcodec/codec_desc.c | 8
libavcodec/codec_id.h | 1 +
libavcodec/defs.h | 3 +++
libavcodec/profiles.c | 6 ++
libavcodec/profiles.h | 1 +
libavformat/isom_tags.c | 4
6 files changed, 23 insertions(+)
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_
---
configure | 1 +
libavcodec/Makefile | 1 +
libavcodec/allcodecs.c | 1 +
libavcodec/prores_raw.c | 525
libavcodec/prores_raw.h | 60 +
5 files changed, 588 insertions(+)
create mode 100644 libavcodec/prores_raw.c
create
Simple parser that only parses frame information.
This helps avoid requiring the software decoder on init to decode a
single frame, since the decoder can be quite slow.
---
libavcodec/Makefile| 1 +
libavcodec/parsers.c | 1 +
libavcodec/prores_raw_parser.c | 72 +++
This makes left_bits return useful data rather than overflowing, and
also saves some 64-bit integer operations, which is still always a plus sadly.
---
libavcodec/vulkan/common.comp | 22 +++---
libavcodec/vulkan/ffv1_dec_setup.comp | 2 +-
libavcodec/vulkan/ffv1_vlc.comp
---
libavutil/hwcontext_vulkan.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 5a9b995eb9..c20ebde36d 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -280,6 +280,7 @@ static void
device_feature
---
libavutil/hwcontext_vulkan.c | 3 +++
libavutil/vulkan.c | 5 +++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index c20ebde36d..e818099fdb 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcont
NVIDIA's support for it is a disaster.
Of no benefit to other vendors.
NVIDIA are working on fixing it, but it may take time.
---
libavutil/hwcontext_vulkan.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 894bc3dae1..5a9b995eb
This makes it possible to apply Adobe .cube files to inputs.
---
doc/filters.texi| 30 ++
libavfilter/vf_libplacebo.c | 36
2 files changed, 66 insertions(+)
diff --git a/doc/filters.texi b/doc/filters.texi
index ed2956f
On Thu, Jul 10, 2025 at 10:20:45AM +0800, Lidong Yan wrote:
> In sap_write_header(), ff_format_set_url() assign new allocated new_url
> to contexts[i]->url but forgot to free it later. Add for loop to free
> contexts[i]->url before av_free(context).
>
> To prevent from writing free-for-loop in eve
On Thu, Jul 10, 2025 at 04:26:39PM +, Jiasheng Jiang wrote:
> Add check for the return value of av_malloc_array() and av_calloc()
> to avoid potential NULL pointer dereference.
>
> Fixes: dcfd24b10c ("avcodec/alsdec: Implement floating point sample data
> decoding")
> Signed-off-by: Jiasheng
Add av_freep() to free new_elem to avoid memory leak.
Fixes: 2d0bfbd0fa ("fftools/cmdutils: Use av_dynarray_add_nofree()")
Signed-off-by: Jiasheng Jiang
---
Changlog:
v1 -> v2:
1. Remove the unnecessary return NULL.
---
fftools/cmdutils.c | 7 +--
1 file changed, 5 insertions(+), 2 deletio
From: winlin
See RFC5280 4.1.2.2
Co-authored-by: Jack Lau
Signed-off-by: winlin
---
libavformat/tls_openssl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
index 2a01fb387d..285ea166ac 100644
--- a/libavformat/tls_o
Signed-off-by: Jack Lau
---
libavformat/whip.c | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/libavformat/whip.c b/libavformat/whip.c
index d954e80830..f7eb6e1323 100644
--- a/libavformat/whip.c
+++ b/libavformat/whip.c
@@ -2089,13 +2089,13 @@ static int whip_c
RTP retransmission described in RFC4588 (RTX) is an effective packet
loss recovery technique for real-time applications with relaxed delay bounds.
This patch provides a minimal implementation for RTX and RTCP NACK (RFC3940)
and its associated SDP signaling and negotiation.
Co-authored-by: Sergio
AVCodecParameters::profile only contains constraint_set1_flag
(AV_PROFILE_H264_CONSTRAINED 1<<9).
So add H264 constraints flag fully parse refer to hlsenc
write_codec_attr
Signed-off-by: Jack Lau
---
libavformat/whip.c | 47 --
1 file changed, 16 inser
Remove redundant "WHIP: " prefix in log context
since it already add whip context.
Fix grammers in whip options descriptions
Signed-off-by: Jack Lau
---
libavformat/whip.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavformat/whip.c b/libavformat/whip.c
index e
mark this ignore_ipv6 flag could ignore any IPv6 ICE candidate,
preventing “No route to host” errors on devices without IPv6 connectivity.
Signed-off-by: Jack Lau
---
libavformat/whip.c | 17 -
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/libavformat/whip.c b/lib
Version 3 of https://ffmpeg.org/pipermail/ffmpeg-devel/2025-July/346052.html
This patchset rebase latest commit
Jack Lau (5):
avformat/whip: add whip_flags ignore_ipv6 to skip IPv6 ICE candidates
avformat/whip: fix typos
avformat/whip: fix H264 profile_iop bit map for SDP
avformat/whip: i
Araz Iusubov:
> -Original Message-
> From: ffmpeg-devel On Behalf Of Araz
> Iusubov
> Sent: Monday, July 7, 2025 9:52 PM
> To: ffmpeg-devel@ffmpeg.org
> Cc: Araz Iusubov
> Subject: [FFmpeg-devel] [PATCH, v5] avcodec/d3d12va_encode: texture array
> support for HEVC
>
> This patch adds s
Hi lynne
On Fri, Jul 11, 2025 at 12:13:35AM +0900, Lynne wrote:
> This commit adds a ProRes RAW hardware implementation written in Vulkan.
> Both version 0 and version 1 streams are supported.
> The implementation is highly parallelized, with 512 invocations dispatched
> per every tile, with gener
Hi Lynne
On Fri, Jul 11, 2025 at 12:13:34AM +0900, Lynne wrote:
> ---
> configure | 1 +
> libavcodec/Makefile| 1 +
> libavcodec/allcodecs.c | 1 +
> libavcodec/proresdec_raw.c | 519 +
> libavcodec/proresdec_raw.h | 60
From: Niklas Haas
This naive hist[p[x]]++ loop suffers badly when there are large regions of
identical values in the image, because of store-to-load forwarding delay.
Splitting up the histogram into four "parallel" histograms and processing
them one at a time speeds things up significantly, abou
From: Niklas Haas
---
libswscale/format.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/libswscale/format.c b/libswscale/format.c
index 53162f8756..ac130a2595 100644
--- a/libswscale/format.c
+++ b/libswscale/format.c
@@ -24,14 +24,14 @@
#include "form
On Fri, Jul 11, 2025 at 11:54:29AM +0200, Nicolas Gaullier wrote:
> Remove unused USAC/ADTS code: ff_adts_header_parse() parse the
> object_type from a 2 bits field.
> See also 696ea1c2236842572df88d573e24a39be3f19c98.
>
> Use ff_adts_header_parse_buf() wrapper to simplify as GetBitContext is
> no
From: Niklas Haas
Reset an SwsFormat to its fully unset/invalid state.
---
libswscale/format.h | 14 ++
1 file changed, 14 insertions(+)
diff --git a/libswscale/format.h b/libswscale/format.h
index 3b6d745159..be92038f4f 100644
--- a/libswscale/format.h
+++ b/libswscale/format.h
@@
From: Niklas Haas
This handles the low-level execution of an op list, and integration into
the SwsGraph infrastructure. To handle frames with insufficient padding in
the stride (or a width smaller than one block size), we use a fallback loop
that pads the last column of pixels using `memcpy` into
From: Niklas Haas
This patch adds format handling code for the new operations. This entails
fully decoding a format to standardized RGB, and the inverse.
Handling it this way means we can always guarantee that a conversion path
exists from A to B without having to explicitly cover logic for each
From: Niklas Haas
See doc/swscale-v2.txt for design details.
---
libswscale/Makefile| 1 +
libswscale/ops_chain.c | 291 +
libswscale/ops_chain.h | 134 +++
3 files changed, 426 insertions(+)
create mode 100644 libswscale/ops_chain.c
From: Niklas Haas
This can turn any compatible sequence of operations into a single packed
shuffle, including packed swizzling, grayscale->RGB conversion, endianness
swapping, RGB bit depth conversions, rgb24->rgb0 alpha clearing and more.
---
libswscale/ops_internal.h | 28 +++
libswsc
From: Niklas Haas
This adds an internal API for ops backends, which are responsible for
compiling op lists into executable functions.
---
libswscale/ops.c | 65 +++
libswscale/ops_internal.h | 108 ++
2 files changed, 173 insertio
From: Niklas Haas
This is responsible for taking a "naive" ops list and optimizing it
as much as possible. Also includes a small analyzer that generates component
metadata for use by the optimizer.
---
libswscale/Makefile| 1 +
libswscale/ops.h | 12 +
libswscale/ops_optimiz
From: Niklas Haas
See docs/swscale-v2.txt for an in-depth introduction to the new approach.
This commit merely introduces the ops definitions and boilerplate functions.
The subsequent commits will flesh out the underlying implementation.
---
libswscale/Makefile | 1 +
libswscale/ops.c| 52
From: Niklas Haas
Give users and developers a way to opt in to the new format conversion code,
and more code from the swscale rewrite in general, even while development is
still ongoing.
---
doc/APIchanges | 3 +++
doc/scaler.texi | 4
libswscale/options.c | 1 +
libswscale/swsca
From: Niklas Haas
Because of the lack of an external ABI on low-level kernels, we cannot
directly test internal functions. Instead, we construct a minimal op chain
consisting of a read, the op to be tested, and a write.
The bigger complication arises from the fact that the backend may generate
a
From: Niklas Haas
The humor originally contained in this commit message has been
redacted to comply with the strict FFmpeg code quality standards.
---
libswscale/graph.c | 84 --
1 file changed, 82 insertions(+), 2 deletions(-)
diff --git a/libswscale
From: Niklas Haas
Provides a generic fast path for any operation list that can be decomposed
into a series of memcpy and memset operations.
25% faster than the x86 backend for yuv444p -> yuva444p
33% faster than the x86 backend for gray -> yuvj444p
---
libswscale/Makefile | 1 +
libswscal
From: Niklas Haas
This covers most 8-bit and 16-bit ops, and some 32-bit ops. It also covers all
floating point operations. While this is not yet 100% coverage, it's good
enough for the vast majority of formats out there.
Of special note is the packed shuffle fast path, which uses pshufb at vect
From: Niklas Haas
We split the standard macro into its body (implementation) and declaration,
and use a macro argument in place of the raw `memcmp` call, with the major
difference that we now take the number of pixels to compare instead of the
number of bytes (to match the signature of float_near
From: Niklas Haas
This will serve as a reference for the SIMD backends to come. That said,
with auto-vectorization enabled, the performance of this is not atrocious.
It easily beats the old C code and sometimes even the old SIMD.
In theory, we can dramatically speed it up by using GCC vectors in
From: Niklas Haas
Sometimes, when measuring very small functions, rdtsc is not accurate enough
to get a reliable measurement. This increases the number of runs inside the
inner loop from 4 to 32, which should help a lot. Less important when using
the more precise linux-perf API, but still useful.
From: Niklas Haas
This behavior had no real justification and was just incredibly confusing,
since the in/out pointers passet to setup() did not match those passed to
run(), all for what is arguably an exception anyways (the palette setup).
---
libswscale/graph.c | 10 +++---
libswscale/grap
Prior to this patch, kth_order_egk_decode could read arbitrarily
large values which then overflowed and caused various issues.
Patch fixes this by making kth_order_egk_decode falliable,
requiring the caller to specify an upper bound and returning an
error if the read value would exceed that bound.
Hi Michael,
This affects users, so it needs to be documented.
Good hint. I assume you meant in the Changelog, even if it is otherwise
relatively high level compared to this change?
Do you know someone who may be interrested in maintaining
vf_frei0r in ffmpeg ?
Unfortunately not. The upstream
On Fri, 20 Jun 2025 15:17:21 +0200 Niklas Haas wrote:
> Changes since v6:
> - fix one MSVC build failure
>
> Will merge this version in ~24H assuming patchwork passes.
For the sake of the record, the reason this one cas not merged yet was
because there was a bug where older versions of clang misc
From: Niklas Haas
---
tests/checkasm/Makefile| 1 +
tests/checkasm/checkasm.c | 3 ++
tests/checkasm/checkasm.h | 1 +
tests/checkasm/scene_sad.c | 73 ++
4 files changed, 78 insertions(+)
create mode 100644 tests/checkasm/scene_sad.c
diff --git a/t
From: Niklas Haas
Since psadbw only exists for 8-bits, we have to emulate it for 16-bit
inputs. The simplest sequence is to use a normal subtraction, which is safe
as long as the inputs do not exceed 32767 - so limit this implementation
to 15-bit inputs and below.
For 16-bit inputs, we could in
From: Niklas Haas
I need to be able to distinguish between 10/12/14 and 16 bit depths, for
overflow reasons.
---
libavfilter/f_select.c | 2 +-
libavfilter/scene_sad.c | 5 ++---
libavfilter/vf_framerate.c | 2 +-
libavfilter/vf_freezedetect.c| 2 +-
libavfilter/vf_i
From: Niklas Haas
Trivial to add, but a lot faster (on my machine).
scene_sad8_c: 114476.4 ( 1.00x)
scene_sad8_sse2: 8644.3 (13.24x)
scene_sad8_avx2: 4520.1 (25.33x)
scene_sad8_avx512:
62 matches
Mail list logo