James Almer
50d1b89fa0
avformat/avformat: add side data to AVStreamGroupTileGrid
...
Will be used to export certain information present in HEIF samples, like
rotation metadata, ICC profiles, and potentially others.
Signed-off-by: James Almer <jamrial@gmail.com>
2 months ago
James Almer
04182b5549
avformat/mov: don't return the latest stream when an item stream is expected
...
Otherwise, things like ICC profiles as read from the colr box meant for an item
with no stream (like a grid) may end up being added to the wrong stream.
Signed-off-by: James Almer <jamrial@gmail.com>
2 months ago
James Almer
6057cd8aee
fate/filter-audio: add missing aresample filter dependency to fate-filter-crazychannels
...
Signed-off-by: James Almer <jamrial@gmail.com>
2 months ago
James Almer
b622714573
fate/hevc: add missing scale filter dependency to fate-hevc-mv-switch
...
Signed-off-by: James Almer <jamrial@gmail.com>
2 months ago
James Almer
b1a7b0411a
fate/vcodec: add missing scale filter dependency to ffv1-2pass10 vsynth tests
...
Also, add sws_flags matching other similar tests while at it.
Signed-off-by: James Almer <jamrial@gmail.com>
2 months ago
Jonathan Baecker
f3d2624bfa
avformat/hlsenc: Fix missing EXT-X-DISCONTINUITY tag in subtitle streams
...
The EXT-X-DISCONTINUITY tag was not being added to subtitle streams,
causing synchronization issues.i
This patch ensures that the tag is applied consistently across video and subtitle streams.
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
2 months ago
Anton Khirnov
faa366003b
fftools/ffmpeg_mux_init: consolidate connecting source to mux stream
2 months ago
Anton Khirnov
ba06c7b08f
fftools/ffmpeg_mux_init: move the ost_get_filters() call to ost_bind_filter()
...
That is a more appropriate place for it.
2 months ago
Anton Khirnov
71916aa107
fftools/ffmpeg_mux_init: move the check for filtering+streamcopy
...
To streamcopy_init().
This will allow to simplify the control flow in ost_add() by moving the
ost_get_filters() call (which previously had to handle both encoding and
streamcopy streams) to ost_bind_filter() (which is only called for
audio/video encoding).
Also, return EINVAL rather than ENOSYS, as trying to combine filtering
with streamcopy is a parameter error.
2 months ago
Anton Khirnov
e83b5b2cc8
fftools/ffmpeg_mux_init: do not export forced_keyframes_const_names[]
...
It is only used in this file.
2 months ago
Anton Khirnov
c27b1e6c59
fftools/ffmpeg: drop unused OSTFinished
2 months ago
Anton Khirnov
64f3feb849
fftools/ffmpeg_mux: move OutputStream.enc_ctx to Encoder
...
The encoding AVCodecContext is a part of the encoder, and so should live
there.
2 months ago
Anton Khirnov
434377a764
fftools/ffmpeg_enc: split Encoder into a private and public part
...
Similar to what was previously done for other components, e.g. decoders
(see 3b84140a1b
).
Start by moving {samples,frames}_encoded into the public struct.
2 months ago
Anton Khirnov
f295b4d8a0
fftools/ffmpeg_demux: drop ist_output_add()
...
It is now a trivial wrapper over ist_use(), so export that directly.
2 months ago
Anton Khirnov
8e805b9c3c
fftools/ffmpeg_demux: drop InputStream.[nb_]outputs
...
It is write-only after d119ae2fd8
.
2 months ago
Anton Khirnov
df9b80d21a
lavu: deprecate av_opt_set_int_list() and related infrastructure
...
It has no more users and is replaced by array-type options.
2 months ago
Anton Khirnov
b97ccc537d
fftools/ffplay: switch to new buffersink options
2 months ago
Anton Khirnov
b150fdd500
doc/examples/decode_filter_video: switch to new buffersink options
2 months ago
Anton Khirnov
0dbd59242a
doc/examples/decode_filter_audio: switch to new buffersink options
...
Use a mix of av_opt_set() and av_opt_set_array() to demonstrate
different ways the options can be set.
2 months ago
Anton Khirnov
1efcdbc54d
lavfi/buffersink: add array-type options to replace "int-list" ones
...
"int-list" options are a hack that provides rudimentary support for
array-type options by treating them as byte arrays (i.e.
AV_OPT_TYPE_BINARY). Since we now have proper array-type options, they
should replace "int-list" everywhere (which happens to be just
buffersink).
2 months ago
Marth64
9d3cdf8fa6
MAINTAINERS: update myself for dvdvideo, rcwtdec, rcwtenc
...
I plan to look after and test them for the forseeable future.
I am not a committer but do care for these muxers/demuxers.
Signed-off-by: Marth64 <marth64@proxyid.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 months ago
Zhao Zhili
f56a54387b
avformat/img2enc: Fix integer truncation when frame_pts is enabled
...
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2 months ago
Zhao Zhili
a2d9663241
avformat/internal: Add ff_get_frame_filename
...
It's similar to av_get_frame_filename2 but with int64_t number
support. Make av_get_frame_filename* a wrapper over
ff_get_frame_filename.
Co-authored-by: Filip Mašić <shoutplenty@gmail.com>
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2 months ago
Marvin Scholz
8e76c99301
avdevice/decklink_dec: fix leaks on error
...
In case of errors in this function, the allocated context
was not properly freed in several cases.
Signed-off-by: Marton Balint <cus@passwd.hu>
2 months ago
Marvin Scholz
7554346cb5
avdevice/decklink_dec: fix leak on error
...
In the early return when both draw_bars and signal_loss_action
options are used, the context allocated previously was not
properly freed.
Introduced in 9bcb86b0fa
Fixes CID1619296
Signed-off-by: Marton Balint <cus@passwd.hu>
2 months ago
Brad Smith
6ec6b07900
ppc: Recognize the PPC VSX and Power8 CPU flags
...
Signed-off-by: Brad Smith <brad@comstyle.com>
2 months ago
Niklas Haas
2f77ecc6bc
avcodec/riscv: add h264 qpel
...
Benched on K230 for VLEN 128, SpaceMIT for VLEN 256. Variants for 4
width have no speedup for VLEN 256 vs VLEN 128 on available hardware,
so were disabled.
C RVV128 C RVV256
avg_h264_qpel_4_mc00_8 33.9 33.6 (1.01x)
avg_h264_qpel_4_mc01_8 218.8 89.1 (2.46x)
avg_h264_qpel_4_mc02_8 218.8 79.8 (2.74x)
avg_h264_qpel_4_mc03_8 218.8 89.1 (2.46x)
avg_h264_qpel_4_mc10_8 172.3 126.1 (1.37x)
avg_h264_qpel_4_mc11_8 339.1 190.8 (1.78x)
avg_h264_qpel_4_mc12_8 533.6 357.6 (1.49x)
avg_h264_qpel_4_mc13_8 348.4 190.8 (1.83x)
avg_h264_qpel_4_mc20_8 144.8 116.8 (1.24x)
avg_h264_qpel_4_mc21_8 478.1 385.6 (1.24x)
avg_h264_qpel_4_mc22_8 348.4 283.6 (1.23x)
avg_h264_qpel_4_mc23_8 478.1 394.6 (1.21x)
avg_h264_qpel_4_mc30_8 172.6 126.1 (1.37x)
avg_h264_qpel_4_mc31_8 339.4 191.1 (1.78x)
avg_h264_qpel_4_mc32_8 542.9 357.6 (1.52x)
avg_h264_qpel_4_mc33_8 339.4 191.1 (1.78x)
avg_h264_qpel_8_mc00_8 116.8 42.9 (2.72x) 123.6 50.6 (2.44x)
avg_h264_qpel_8_mc01_8 774.4 163.1 (4.75x) 779.8 165.1 (4.72x)
avg_h264_qpel_8_mc02_8 774.4 154.1 (5.03x) 779.8 144.3 (5.40x)
avg_h264_qpel_8_mc03_8 774.4 163.3 (4.74x) 779.8 165.3 (4.72x)
avg_h264_qpel_8_mc10_8 617.1 237.3 (2.60x) 613.1 227.6 (2.69x)
avg_h264_qpel_8_mc11_8 1209.3 376.4 (3.21x) 1206.8 363.1 (3.32x)
avg_h264_qpel_8_mc12_8 1913.3 598.6 (3.20x) 1894.3 561.1 (3.38x)
avg_h264_qpel_8_mc13_8 1218.6 376.4 (3.24x) 1217.1 363.1 (3.35x)
avg_h264_qpel_8_mc20_8 524.4 228.1 (2.30x) 519.3 227.6 (2.28x)
avg_h264_qpel_8_mc21_8 1709.6 681.9 (2.51x) 1707.1 644.3 (2.65x)
avg_h264_qpel_8_mc22_8 1274.3 459.6 (2.77x) 1279.8 436.1 (2.93x)
avg_h264_qpel_8_mc23_8 1700.3 672.6 (2.53x) 1706.8 644.6 (2.65x)
avg_h264_qpel_8_mc30_8 607.6 246.6 (2.46x) 623.6 238.1 (2.62x)
avg_h264_qpel_8_mc31_8 1209.6 376.4 (3.21x) 1206.8 363.1 (3.32x)
avg_h264_qpel_8_mc32_8 1904.1 607.9 (3.13x) 1894.3 571.3 (3.32x)
avg_h264_qpel_8_mc33_8 1209.6 376.1 (3.22x) 1206.8 363.1 (3.32x)
avg_h264_qpel_16_mc00_8 431.9 89.1 (4.85x) 436.1 71.3 (6.12x)
avg_h264_qpel_16_mc01_8 2894.6 376.1 (7.70x) 2842.3 300.6 (9.46x)
avg_h264_qpel_16_mc02_8 2987.3 348.4 (8.57x) 2967.3 290.1 (10.23x)
avg_h264_qpel_16_mc03_8 2885.3 376.4 (7.67x) 2842.3 300.6 (9.46x)
avg_h264_qpel_16_mc10_8 2404.1 524.4 (4.58x) 2404.8 456.8 (5.26x)
avg_h264_qpel_16_mc11_8 4709.4 811.6 (5.80x) 4675.6 706.8 (6.62x)
avg_h264_qpel_16_mc12_8 7477.9 1274.3 (5.87x) 7436.1 1061.1 (7.01x)
avg_h264_qpel_16_mc13_8 4718.6 820.6 (5.75x) 4655.1 706.8 (6.59x)
avg_h264_qpel_16_mc20_8 2052.1 487.1 (4.21x) 2071.3 446.3 (4.64x)
avg_h264_qpel_16_mc21_8 7440.6 1422.6 (5.23x) 6727.8 1217.3 (5.53x)
avg_h264_qpel_16_mc22_8 5051.9 950.4 (5.32x) 5071.6 790.3 (6.42x)
avg_h264_qpel_16_mc23_8 6764.9 1422.3 (4.76x) 6748.6 1217.3 (5.54x)
avg_h264_qpel_16_mc30_8 2413.1 524.4 (4.60x) 2415.1 467.3 (5.17x)
avg_h264_qpel_16_mc31_8 4681.6 839.1 (5.58x) 4675.6 727.6 (6.43x)
avg_h264_qpel_16_mc32_8 8579.6 1292.8 (6.64x) 7436.3 1071.3 (6.94x)
avg_h264_qpel_16_mc33_8 5375.9 829.9 (6.48x) 4665.3 717.3 (6.50x)
put_h264_qpel_4_mc00_8 24.4 24.4 (1.00x)
put_h264_qpel_4_mc01_8 987.4 79.8 (12.37x)
put_h264_qpel_4_mc02_8 190.8 79.8 (2.39x)
put_h264_qpel_4_mc03_8 209.6 89.1 (2.35x)
put_h264_qpel_4_mc10_8 163.3 117.1 (1.39x)
put_h264_qpel_4_mc11_8 339.4 181.6 (1.87x)
put_h264_qpel_4_mc12_8 533.6 348.4 (1.53x)
put_h264_qpel_4_mc13_8 339.4 190.8 (1.78x)
put_h264_qpel_4_mc20_8 126.3 116.8 (1.08x)
put_h264_qpel_4_mc21_8 468.9 376.1 (1.25x)
put_h264_qpel_4_mc22_8 330.1 274.4 (1.20x)
put_h264_qpel_4_mc23_8 468.9 376.1 (1.25x)
put_h264_qpel_4_mc30_8 163.3 126.3 (1.29x)
put_h264_qpel_4_mc31_8 339.1 191.1 (1.77x)
put_h264_qpel_4_mc32_8 533.6 348.4 (1.53x)
put_h264_qpel_4_mc33_8 339.4 181.8 (1.87x)
put_h264_qpel_8_mc00_8 98.6 33.6 (2.93x) 92.3 40.1 (2.30x)
put_h264_qpel_8_mc01_8 737.1 153.8 (4.79x) 738.1 144.3 (5.12x)
put_h264_qpel_8_mc02_8 663.1 135.3 (4.90x) 665.1 134.1 (4.96x)
put_h264_qpel_8_mc03_8 737.4 154.1 (4.79x) 1508.8 144.3 (10.46x)
put_h264_qpel_8_mc10_8 598.4 237.1 (2.52x) 592.3 227.6 (2.60x)
put_h264_qpel_8_mc11_8 1172.3 357.9 (3.28x) 1175.6 342.3 (3.43x)
put_h264_qpel_8_mc12_8 1867.1 589.1 (3.17x) 1863.1 561.1 (3.32x)
put_h264_qpel_8_mc13_8 1172.6 366.9 (3.20x) 1175.6 352.8 (3.33x)
put_h264_qpel_8_mc20_8 450.4 218.8 (2.06x) 446.3 206.8 (2.16x)
put_h264_qpel_8_mc21_8 1672.3 663.1 (2.52x) 1675.6 633.8 (2.64x)
put_h264_qpel_8_mc22_8 1144.6 1200.1 (0.95x) 1144.3 425.6 (2.69x)
put_h264_qpel_8_mc23_8 1672.6 672.4 (2.49x) 1665.3 634.1 (2.63x)
put_h264_qpel_8_mc30_8 598.6 237.3 (2.52x) 613.1 227.6 (2.69x)
put_h264_qpel_8_mc31_8 1172.3 376.1 (3.12x) 1175.6 352.6 (3.33x)
put_h264_qpel_8_mc32_8 1857.8 598.6 (3.10x) 1863.1 561.1 (3.32x)
put_h264_qpel_8_mc33_8 1172.3 376.1 (3.12x) 1175.6 352.8 (3.33x)
put_h264_qpel_16_mc00_8 320.6 61.4 (5.22x) 321.3 60.8 (5.28x)
put_h264_qpel_16_mc01_8 2774.3 339.1 (8.18x) 2759.1 279.8 (9.86x)
put_h264_qpel_16_mc02_8 2589.1 320.6 (8.08x) 2571.6 269.3 (9.55x)
put_h264_qpel_16_mc03_8 2774.3 339.4 (8.17x) 2738.1 290.1 (9.44x)
put_h264_qpel_16_mc10_8 2274.3 487.4 (4.67x) 2290.1 436.1 (5.25x)
put_h264_qpel_16_mc11_8 5237.1 792.9 (6.60x) 4529.8 685.8 (6.61x)
put_h264_qpel_16_mc12_8 7357.6 1255.8 (5.86x) 7352.8 1040.1 (7.07x)
put_h264_qpel_16_mc13_8 4579.9 792.9 (5.78x) 4571.6 686.1 (6.66x)
put_h264_qpel_16_mc20_8 1802.1 459.6 (3.92x) 1800.6 425.6 (4.23x)
put_h264_qpel_16_mc21_8 6644.6 2246.6 (2.96x) 6644.3 1196.6 (5.55x)
put_h264_qpel_16_mc22_8 4589.1 913.4 (5.02x) 4592.3 769.3 (5.97x)
put_h264_qpel_16_mc23_8 6644.6 1394.6 (4.76x) 6634.1 1196.6 (5.54x)
put_h264_qpel_16_mc30_8 2274.3 496.6 (4.58x) 2290.1 456.8 (5.01x)
put_h264_qpel_16_mc31_8 5255.6 802.1 (6.55x) 4550.8 706.8 (6.44x)
put_h264_qpel_16_mc32_8 7376.1 1265.1 (5.83x) 7352.8 1050.6 (7.00x)
put_h264_qpel_16_mc33_8 4579.9 802.1 (5.71x) 4561.1 696.3 (6.55x)
Signed-off-by: Niklas Haas <git@haasn.dev>
Signed-off-by: J. Dekker <jdek@itanimul.li>
2 months ago
Anton Khirnov
505fea34e5
lavu/opt: avoid accidentally propagating spurious errors
...
An error from read_number() is non-fatal here and should not be
forwarded.
2 months ago
Anton Khirnov
9b764e9b49
lavu/opt: add missing 'else'
2 months ago
Anton Khirnov
ca860d8d07
lavfi: clarify the behaviour of avfilter_graph_create_filter()
...
Mention explicitly that no options can be set manually when using this
function.
2 months ago
Anton Khirnov
d3f76dbca1
lavd/lavfi: stop using avfilter_graph_create_filter() incorrectly
...
See previous commits for details.
2 months ago
Anton Khirnov
577708a70a
fftools/ffplay: stop using avfilter_graph_create_filter() incorrectly
...
This function creates AND initializes a filter, so setting any filter
options after it is wrong. It happens to work when the filter's init
function does not touch the options in question, but is forbidden by the
API and is not guaranteed to remain functional.
Instead, use avfilter_graph_alloc_filter(), followed by setting the
options, and avfilter_init_dict().
2 months ago
Anton Khirnov
f6f0e05815
doc/examples/transcode: handle audio encoder frame size restrictions
2 months ago
Anton Khirnov
6b402cdbf4
lavfi/buffersink: allow av_buffersink_set_frame_size() to be called earlier
...
The function currently writes directly into the input link, which
requires it to be called after the filter has been linked. However, the
documentation does not mention this restriction and the natural place to
call av_buffersink_set_frame_size() during the options-setting stage,
that is before filter init (and so before the input link exists).
2 months ago
Anton Khirnov
cde307c783
doc/examples/transcode: switch to avcodec_get_supported_config()
2 months ago
Anton Khirnov
d18d119b8f
doc/examples/transcode: stop using avfilter_graph_create_filter() incorrectly
...
See previous commits for details.
2 months ago
Anton Khirnov
87faa8aeba
doc/examples/decode_filter_video: stop using avfilter_graph_create_filter() incorrectly
...
See previous commits for details.
2 months ago
Anton Khirnov
27564f9020
doc/examples/decode_filter_audio: stop using avfilter_graph_create_filter() incorrectly
...
See previous commit for details.
2 months ago
Anton Khirnov
53c71777e1
fftools/ffmpeg_filter: stop using avfilter_graph_create_filter() incorrectly
...
This function creates AND initializes a filter, so setting any filter
options after it is wrong. It happens to work when the filter's init
function does not touch the options in question, but is forbidden by the
API and is not guaranteed to remain functional.
Instead, use avfilter_graph_alloc_filter(), followed by setting the
options, and avfilter_init_dict().
2 months ago
Cameron Gutman
4ffd586e34
avcodec/amfenc: Add support for on-demand key frames
...
v2: Use forced_idr option instead of AV_FRAME_FLAG_KEY
Signed-off-by: Cameron Gutman <aicommander@gmail.com>
2 months ago
Cameron Gutman
e3ae57b0de
avcodec/amfenc: Update supported HEVC color ranges
...
We properly set AMF_VIDEO_ENCODER_HEVC_NOMINAL_RANGE since fb4dd4b6f4
.
Signed-off-by: Cameron Gutman <aicommander@gmail.com>
2 months ago
Cameron Gutman
4cbb997e15
avcodec/amfenc: Fix inverted loop filter option
...
The AMF HEVC encoder takes a bool option for whether deblocking filter
should be _disabled_ instead of whether it should _enabled_ like the
AMF H.264 encoder does. The logic was accidentally copied from H.264 to
HEVC without negating the bool value, so the deblocking filter was
actually disabled when AV_CODEC_FLAG_LOOP_FILTER was set.
Before this patch:
------------------
no flags set => deblocking filter on
flags +loop => deblocking filter off
flags -loop => deblocking filter on
After this patch:
-----------------
no flags set => deblocking filter on
flags +loop => deblocking filter on
flags -loop => deblocking filter off
Signed-off-by: Cameron Gutman <aicommander@gmail.com>
2 months ago
Anton Khirnov
8a951ef5e1
lavfi/avf_showwaves: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
fadd1dda8a
lavfi/avf_showvolume: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
197a619371
lavfi/avf_showspectrum: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
d4efdbd029
lavfi/avf_showspatial: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
d7fde5694d
lavfi/avf_showfreqs: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
423eccadd6
lavfi/avf_showcwt: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
70a16a18ca
lavfi/avf_showcqt: switch to query_func2()
...
Also, drop redundant calls that also happen implicitly in generic code.
2 months ago
Anton Khirnov
d36c368bf3
lavfi/avf_concat: switch to query_func2()
2 months ago