Commit Graph

11701 Commits

Author SHA1 Message Date
Marton Balint
b016aae662 avfilter/f_loop: fix aloop activate logic
The logic did not follow the documented behaviour and that caused skipping of
some audio in the loop and in the leftover buffer.

Example command line which should produce a smooth sine wave for the whole
duration of the output:

ffmpeg -f lavfi -i "sine=r=48000:f=480:d=4" -af "aloop=loop=4:start=48000:size=48000" out.wav

Fixes ticket #11283.

Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit fe18ed3f2a)
2024-11-17 22:17:42 +01:00
Marton Balint
0a58588ffb avfilter/f_loop: fix length of aloop leftover buffer
If the audio loop stops inside an audio frame, the leftover buffer contains the
end of the frame, which is not looped. The length supposed to be the part which
was not written to the loop buffer, so we need to drain exactly that number of
bytes from the leftover buffer.

Signed-off-by: Marton Balint <cus@passwd.hu>
(cherry picked from commit b33a594160)
2024-11-17 22:17:31 +01:00
James Almer
99f6adce60 avfilter/vf_zscale: align the frame buffers
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit c8e5c684b3)
2024-11-17 12:19:02 -03:00
Pavel Koshevoy
5b461ffb04 lavfi/vf_zscale: fix call to av_pix_fmt_count_planes
realign_frame called av_pix_fmt_count_planes with incorrect parameter.

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 00cf3df03f)
2024-11-17 12:19:02 -03:00
Pavel Koshevoy
85f389520d lavfi/vf_zscale: fix tmp buffer ptr alignment for zimg_filter_graph_process
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 7b302f4db7)
2024-11-17 12:19:02 -03:00
James Almer
fa15e3839d avfilter/framepool: align the frame buffers
And not just the linesizes. Use the extra align bytes allocated for this purpose.

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit f15fc27db5)
2024-11-17 12:19:02 -03:00
Nicolas Gaullier
32d3e67717 avfilter/framesync: fix forward EOF pts
Note1: when the EOF pts is not accurate enough, the last frame
can be dropped by vf_fps with default rounding.

Note2: vf_scale use framesync since e82a3997cd,
so this is a very commonplace scenario.

For example:
./ffprobe -f lavfi testsrc=d=1,scale,fps -of flat \
  -count_frames -show_entries stream=nb_read_frames

Before:
streams.stream.0.nb_read_frames="24"

After:
streams.stream.0.nb_read_frames="25"

Signed-off-by: Anton Khirnov <anton@khirnov.net>
(cherry picked from commit de976eaf30)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2024-10-15 10:50:23 +02:00
James Almer
f7643454aa avfilter/vf_showinfo: add missing break to ViewID case
Missed in 6940a6de2f.

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit fd6cc18d60)
2024-09-24 16:09:05 -03:00
Michael Niedermayer
e1094ac45d */version.h: bump minor versions for release/7.1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-09-24 17:07:30 +02:00
Anton Khirnov
299d9115d4 lavfi/f_select: allow selection based on view ID
Can be used together with the split filter to decompose multiview video
into individual views.
2024-09-23 17:11:40 +02:00
Anton Khirnov
6940a6de2f lavu/frame: add side data storing view ID for multi-view video 2024-09-23 17:11:38 +02:00
Lynne
39c640e1d6 nlmeans_vulkan: split up descriptor sets, rename buffer offset vars 2024-09-23 13:42:34 +02:00
Lynne
bc36fe6f1f vulkan: use push descriptors where possible
Push descriptors are in theory slightly faster, but come with
limitations for which we have to check.

Either way, they're not difficult to implement, so even though
no one should be using peasant-tier descriptors, do it anyway.
2024-09-23 13:41:07 +02:00
Lynne
8a7af4aa49 vulkan: add support for regular descriptor pools
This permits:
 - The use of Vulkan filtering on many more devices
 - Better debugging due to lack of descriptor buffer support in layers

Much of the changes here are due to a requirement that updates to
descriptors must happen between the command buffer being waited on,
and the pipeline not being bound.

We routinely did it the other way around, by updating only after
we bind the pipeline.
2024-09-23 13:40:38 +02:00
James Almer
dc11c12b64 avfilter: add an LCEVC decoding filter
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-19 10:06:05 -03:00
Marvin Scholz
c59a073abe lavfi/af_channelmap: fix channelmap_init error handling
The channelmap_init function was returning success even on error after
7dc81d33c2 due to shadowing of the
outer ret variable.

Fixes CID1619297 Logically dead code
2024-09-13 19:12:58 +02:00
Marvin Scholz
e7126d9648 lavfi/vf_signature: use av_err2str to simplify code
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
2024-09-13 00:26:23 +02:00
Marvin Scholz
8fac5beaf8 lavfi/f_metadata: use av_err2str to simplify code
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
2024-09-13 00:24:47 +02:00
Marvin Scholz
59244a0c50 lavfi/vf_ssim: narrow variable scopes 2024-09-13 00:24:20 +02:00
Marvin Scholz
3f8061afe8 lavfi/vf_ssim: use av_err2str to simplify code
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
2024-09-13 00:23:00 +02:00
Marvin Scholz
bd3038b28c lavfi/vf_vmafmotion: fix variable shadowing 2024-09-13 00:22:29 +02:00
Marvin Scholz
e93f20c017 lavfi/vf_vmafmotion: use av_err2str to simplify code
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
2024-09-13 00:21:23 +02:00
Marvin Scholz
29d7ed089e lavfi/vf_psnr: use av_err2str to simplify code
No need to explicitly specify the buffer here as it is only
ever passed to av_log, so av_err2str can be used.
2024-09-13 00:21:02 +02:00
Marvin Scholz
bbde886b63 lavfi/vf_ssim360: fix variable shadowing 2024-09-13 00:19:46 +02:00
Marvin Scholz
c6ab95d009 lavfi/vf_ssim360: use av_err2str to simplify code
No need to explicitly specify the buffer here as it is only ever passed
to av_log, so av_err2str can be used.
2024-09-13 00:19:20 +02:00
Niklas Haas
ca77fc2177 avfilter: fix YUV colorspace negotiation for YUVJ
Ironically, despite being introduced to make YUVJ unnecessary, the new
YUV negotiation logic failed to actually negotiate YUVJ formats
themselves correctly, leading to errors when passing YUVJ frames into
a filter graph. (They were effectively treated like RGB or Grayscale
formats, rather than as forced-full-range YUV, and hence did not have
their colorspace matrix correctly negotiated)

Fix this by splitting off the YUVJ check from ff_fmt_is_regular_yuv().
Obviously, we can trivially undo this change again once YUVJ is actually
deleted from the codebase.

Fixes: #11179
2024-09-12 19:13:21 +02:00
James Almer
2e91532ead avfilter/af_join: pass the correct input layouts to ff_channel_layouts_ref
Should fix memory leaks show in fate-filter-join and fate-filter-crazychannels.

Reviewed-by: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-11 16:26:55 -03:00
Zhao Zhili
071c499026 avfilter/unsharp: Call function directly rather than via function pointer
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2024-09-10 00:59:30 +08:00
Anton Khirnov
691e0a1082 lavfi/af_pan: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
b38f4e7f86 lavfi/af_pan: stop modifying private data in query_formats()
It is not supposed to have any side effects, and the modification in
question can just as well be done in filter init.
2024-09-09 17:26:18 +02:00
Anton Khirnov
d0f4c08207 lavfi/af_lv2: convert to query_func2() 2024-09-09 17:26:18 +02:00
Anton Khirnov
363d4a7559 lavfi/af_replaygain: convert to query_func2() 2024-09-09 17:26:18 +02:00
Anton Khirnov
75b2f5a7d3 lavfi/af_sidechaincompress: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
4c4199758c lavfi/af_sofalizer: convert to query_func2() 2024-09-09 17:26:18 +02:00
Anton Khirnov
449f670a14 lavfi/af_stereotools: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
c4d9282a56 lavfi/af_stereowiden: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
d90035c941 lavfi/af_surround: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
2ee4625d4b lavfi/af_virtualbass: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
7887d00ee6 lavfi/af_volume: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
e13592c22d lavfi/af_loudnorm: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:18 +02:00
Anton Khirnov
bfb139bb8d lavfi/af_ladspa: convert to query_func2() 2024-09-09 17:26:18 +02:00
Anton Khirnov
48d9a4d7ca lavfi/af_join: convert to query_func2()
Also, drop a redundant call that also happens implicitly in generic code.
2024-09-09 17:26:17 +02:00
Anton Khirnov
fdc6e31725 lavfi/af_headphone: convert to query_func2()
Also, drop a redundant call that also happens implicitly in generic code.
2024-09-09 17:26:17 +02:00
Anton Khirnov
c9c6f07436 lavfi/af_hdcd: convert to query_func2() 2024-09-09 17:26:17 +02:00
Anton Khirnov
0ec382f494 lavfi/af_haas: convert to query_func2()
Also, drop a redundant call that also happens implicitly in generic code.
2024-09-09 17:26:17 +02:00
Anton Khirnov
408587c836 lavfi/af_extrastereo: convert to query_func2()
Also, drop a redundant call that also happens implicitly in generic code.
2024-09-09 17:26:17 +02:00
Anton Khirnov
7896b95430 lavfi/af_earwax: convert to query_func2() 2024-09-09 17:26:17 +02:00
Anton Khirnov
e37d1efe65 lavfi/af_dialoguenhance: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:17 +02:00
Anton Khirnov
ffbafbfded lavfi/af_crossfeed: convert to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-09 17:26:17 +02:00
Anton Khirnov
84fda7de79 lavfi/af_channelsplit: convert to query_func2()
Also, drop a redundant call that also happens implicitly in generic code.
2024-09-09 17:26:17 +02:00