Derek Buitenhuis
049dfe3f65
fftools/ffprobe: Print more Stereo 3D info from side data
...
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2024-06-18 14:47:40 +01:00
Thomas Siedel and Christian Bartnik chris10317h5@gmail.com
c75940db29
avcodec: add external enc libvvenc for H266/VVC
...
Add external encoder VVenC for H266/VVC encoding.
Register new encoder libvvenc.
Add libvvenc to wrap the vvenc interface.
libvvenc implements encoder option: preset,qp,qpa,period,
passlogfile,stats,vvenc-params,level,tier.
Enable encoder by adding --enable-libvvenc in configure step.
Co-authored-by: Christian Bartnik chris10317h5@gmail.com
Signed-off-by: Thomas Siedel <thomas.ff@spin-digital.com >
2024-06-15 21:00:05 +08:00
Andreas Rheinhardt
6ae1a337f2
fftools/ffmpeg_mux_init: Fix leak when using non-encoding option
...
Reviewed-by: Anton Khirnov <anton@khirnov.net >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-06-11 14:32:25 +02:00
Andreas Rheinhardt
c84e40d9e6
fftools/ffmpeg_mux_init: Return error upon error
...
Currently it may return an uninitialized value.
Introduced in 840f2bc18e .
Fixes Coverity issue #1603565 .
Reviewed-by: Anton Khirnov <anton@khirnov.net >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-06-11 08:16:42 +02:00
Michael Niedermayer
840f2bc18e
fftools/ffmpeg_mux_init: Free pts on error
...
Fixes: CID1538863 Resource leak
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2024-06-07 21:42:26 +02:00
Michael Niedermayer
d9b9fc4be2
fftools/cmdutils: Add protective () to FLAGS
...
issue found while reviewing CID1452612 Free of array-typed value
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2024-06-07 21:42:26 +02:00
Marton Balint
ed927f2f0c
fftools/ffplay: allow unused format options which are also codec options
...
Same as it is handled in ffmpeg, allows using -ch_layout codec option.
Signed-off-by: Marton Balint <cus@passwd.hu >
2024-05-27 21:46:47 +02:00
Marton Balint
4d97557137
fftools/ffplay: use cmdutils code for checking remaining avoptions
...
Signed-off-by: Marton Balint <cus@passwd.hu >
2024-05-27 21:46:47 +02:00
Marton Balint
f9810be5d3
fftools: move check_avoptions and remove_avoptions to cmdutils
...
Signed-off-by: Marton Balint <cus@passwd.hu >
2024-05-27 21:46:47 +02:00
Marton Balint
4bfecde9b9
fftools/ffmpeg_demux: honor -ch_layout options for overriding input stream channel layout
...
The code only set the channel layout of the AVFormatContext, so the user could
not override the channel layout if the demuxer did not have such parameter.
This used to work via the respective AVCodecContext option, but since
639c2f0049 it no longer gets passed to the
decoders. It is actually better if we set it manually, instead of using the
codec option because that way we can also override it on the stream level, so
it will also work for stream copy or bitstream filtering.
We don't allow changing the number of channels, because that can cause
unexpected results. We disable layout guessing, if a channel layout is
specified.
Fixes ticket #11016 .
Signed-off-by: Marton Balint <cus@passwd.hu >
2024-05-27 21:46:47 +02:00
Andreas Rheinhardt
62929f40ee
fftools/ffmpeg_filter: Fix leak on error
...
Do this by attaching the FilterGraph directly to more permanent
storage from which it will be automatically freed.
Fixes Coverity issue #1596533 .
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-20 14:15:23 +02:00
Andreas Rheinhardt
f3d206d25f
fftools, avfilter, avformat: Simplify check for "is dictionary empty?"
...
Reviewed-by: epirat07@gmail.com
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-20 13:52:41 +02:00
Michael Niedermayer
f44f441555
fftools/ffplay: Check return of swr_alloc_set_opts2()
...
This probably makes no difference but its more correct
Fixes: CID1503080 Unchecked return value
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2024-05-09 16:17:40 +02:00
Michael Niedermayer
ba7038043a
tools/opt_common: Check for malloc failure
...
Fixes: CID1539100 Negative loop bound
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2024-05-09 16:17:40 +02:00
Derek Buitenhuis
f8a613d6a8
fftools/ffprobe: Avoid overflow when calculating DAR
...
Both the codecpar's width and height, and the SAR num and den are
ints, which can overflow. Cast to int64_t, which is what av_reduce
takes.
Without this, occasionally, display_aspect_ratio can be negative in
ffprobe's -show_stream output.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2024-05-05 11:56:29 +01:00
Andreas Rheinhardt
4c8a6631ad
fftools/ffmpeg_filter: Fix check
...
Fixes Coverity issues #1596529 , #1596531 .
Introduced in 8e35e33d42 .
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-04-27 17:00:12 +02:00
James Almer
8c27cdd2d4
fftools/ffmpeg_mux_init: add missing IAMF Param Definition copies
...
Signed-off-by: James Almer <jamrial@gmail.com >
2024-04-24 18:12:00 -03:00
James Almer
f684228407
fftools/ffmpeg_mux_init: remove leftover debug log messages
...
Signed-off-by: James Almer <jamrial@gmail.com >
2024-04-24 17:37:13 -03:00
James Almer
ecf87dd230
fftools/ffmpeg_mux_init: allow mapping a stream group from one of the inputs
...
Signed-off-by: James Almer <jamrial@gmail.com >
2024-04-23 23:54:46 -03:00
Zhao Zhili
1b41631185
fftools: Fix implicit-const-int-float-conversion warning
...
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com >
2024-04-23 16:09:09 +08:00
Anton Khirnov
3bd7c57125
fftools/ffmpeg_filter: implement filtergraph chaining
...
This allows one complex filtergraph's output to be sent as input to
another one, which is useful in certain situations (one is described in
the docs).
Chaining filtergraphs was already effectively possible by using a
wrapped_avframe encoder connected to a loopback decoder, but it is ugly,
non-obvious and inefficient.
2024-04-09 10:34:18 +02:00
Anton Khirnov
255ae03601
fftools/ffmpeg_sched: allow filtergraphs to send to filtergraphs
...
Will be useful for filtergraph chaining that will be added in following
commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
3d01996b24
fftools/ffmpeg_filter: change processing order in fg_finalise_bindings()
...
First bind all inputs in all filtergraphs, only then check that all
outputs are bound.
Needed by the following commit.
2024-04-09 10:34:18 +02:00
Anton Khirnov
243a51490a
fftools/ffmpeg_filter: only store complex filtergraphs in global array
...
Store simple filtergraphs in the stream they feed. Keeping the two
separate will be useful in following commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
d74cbcb963
fftools/ffmpeg_filter: drop OutputFilter.ost
...
All remaining code accessing it only needs to know whether this
filtergraph output has been bound or not.
2024-04-09 10:34:18 +02:00
Anton Khirnov
f2c919252d
fftools/ffmpeg_filter: accept encoder thread count through OutputFilterOptions
...
Stop digging through encoder options manually.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
bfeb751171
fftools/ffmpeg_mux: drop OutputFile.format
...
It is no longer used outside of the muxing code (where we can access the
muxer directly).
2024-04-09 10:34:18 +02:00
Anton Khirnov
5b0589c8c3
fftools/ffmpeg_mux: drop OutputFile.shortest
...
It is no longer needed outside of of_open() and its children.
2024-04-09 10:34:18 +02:00
Anton Khirnov
a4c940c86a
fftools/ffmpeg_filter: move most of -apad logic to the muxer
...
The decision whether -apad actually does anything is made based on muxer
properties, and so more properly belongs there. Filtering code only
receives the result.
2024-04-09 10:34:18 +02:00
Anton Khirnov
a2892dbe06
fftools/ffmpeg_filter: pass trim parameters through OutputFilterOptions
...
Do not read them from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
83304f7c1f
fftools/ffmpeg_filter: pass autoscale through OutputFilterOptions
...
Do not read it from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
b8e6802023
fftools/ffmpeg_filter: pass sws/swr opts through OutputFilterOptions
...
Do not read them from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
23c23077fc
fftools/ffmpeg_filter: drop an unnecessary use of OutputStream
...
OutputFilter.type contains the same information.
2024-04-09 10:34:18 +02:00
Anton Khirnov
fc6354c39c
fftools/ffmpeg_filter: add an AVClass to OutputFilter
...
Use it for logging where appropriate, avoid logging to OutputStream as
we do not own it.
This is a step towards decoupling filtering from encoding.
2024-04-09 10:34:18 +02:00
Anton Khirnov
3c3e04c8a3
fftools/ffmpeg_filter: simplify retrieving filter type
2024-04-09 10:34:18 +02:00
Anton Khirnov
114cbaa316
fftools/ffmpeg_filter: drop a redundant check
...
fg_finalise_bindings() already checks that all filtergraph outputs are
connected.
2024-04-09 10:34:18 +02:00
Anton Khirnov
da80e0b077
fftools/ffmpeg_filter: accept a caller-provided output name
...
Do not construct it from OutputStream manually.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
82c7c21b18
fftools/ffmpeg: drop OutputStream.is_cfr
...
It is used in a single place in the filtering code, so it is better to
inline it there.
2024-04-09 10:34:18 +02:00
Anton Khirnov
509afedaaf
fftools/ffmpeg_filter: pass vsync method through OutputFilterOptions
...
Do not read it from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
bc206ed1b3
fftools/ffmpeg_filter: stop accessing encoder AVCodecContext
...
Pass all the necessary value through OutputFilterOptions.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
17702c5f7b
fftools/ffmpeg_filter: move the MJPEG format selection hack to muxer setup
...
That, if anywhere, is a more appropriate place for it.
2024-04-09 10:34:18 +02:00
Anton Khirnov
9d5bf2d69e
fftools/ffmpeg_filter: pass enc_timebase through OutputFilterOptions
...
Reduces the need to access OutputStream, which will allow decoupling
filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
606c71bb11
fftools/ffmpeg: warn about ignored -enc_time_base for subtitles earlier
...
Can do it as soon as that option is parsed, no need to postpone it until
opening the encoder.
2024-04-09 10:34:18 +02:00
Anton Khirnov
e903c31fd1
fftools/ffmpeg_filter: pass keep_pix_fmt through OutputFilterOptions
...
Reduces the need to access OutputStream, which will allow decoupling
filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
b3864e7a08
fftools/ffmpeg_filter: pass ts offset through OutputFilterOptions
...
Reduces the need to access OutputFile, which will allow decoupling
filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
651c79da36
fftools/ffmpeg_filter: check that filter type matches output stream type
...
For simple filtergraphs. For complex filtergraphs they always match.
2024-04-09 10:34:18 +02:00
Anton Khirnov
8e35e33d42
fftools/ffmpeg_filter: stop accessing AVCodecContext.codec
...
Instead pass the encoder through a newly-added output options struct,
analogous to previously added input options.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
8c33085313
fftools/ffmpeg_filter: do not pass OutputStream to set_channel_layout()
...
It only needs a list of allowed layouts and the requested layout.
2024-04-09 10:34:18 +02:00
Andreas Rheinhardt
790f793844
avutil/common: Don't auto-include mem.h
...
There are lots of files that don't need it: The number of object
files that actually need it went down from 2011 to 884 here.
Keep it for external users in order to not cause breakages.
Also improve the other headers a bit while just at it.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-03-31 00:08:43 +01:00
Anton Khirnov
24b9f29ff2
fftools/ffmpeg_sched: make sure to always run task cleanup
...
Even in cases where sch_start() failed. This ensures all links are
properly closed and no tasks are left hanging.
Fixes #10916 .
2024-03-29 08:51:12 +01:00