Anton Khirnov
4bdffec814
fftools/ffmpeg_dec: pass hwaccel options to the decoder in a separate struct
...
Stop reading them from InputStream.
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
a3a9c4ae66
fftools/ffmpeg: move hwaccel_retrieve_data() from ffmpeg_hw to ffmpeg_dec
...
This function is decoding-only and has no interaction with the rest of
ffmpeg_hw. It thus belongs more properly in ffmpeg_dec.
11 months ago
Anton Khirnov
ebb8a58c8f
fftools/ffmpeg_dec: replace InputFile.format_nots with a decoder flag
...
Reduces the need to access InputFile from decoding.
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
a938f47916
fftools/ffmpeg: refactor disabling decoder threading for attached pictures
...
* as this decision is based on demuxing information, move it from the
decoder to the demuxer
* as the issue being addressed is latency added by frame threading, we
only need to disable frame threading, not all threading
11 months ago
Anton Khirnov
474ca6c71e
fftools/ffmpeg_dec: stop accesing InputStream.fix_sub_duration
...
Pass this information to dec_open() instead.
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
924a6f3cc7
fftools/ffmpeg_dec: override video SAR with AVCodecParameters value
...
Rather than access the AVStream one.
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
b2a0a2e6f5
fftools/ffmpeg: move decoder existence check to a more appropriate place
11 months ago
Anton Khirnov
217b8757db
fftools/ffmpeg_dec: drop a useless log message
11 months ago
Anton Khirnov
27de2aacd1
fftools/ffmpeg_dec: drop useless and racy code
...
Setting demuxer's video_delay from the decoder cannot accomplish
anything meaningful and is racy, as they run in different threads.
11 months ago
Anton Khirnov
9be3f80527
fftools/ffmpeg_dec: move decoding counters from InputStream to Decoder
...
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
5b0e4f945e
fftools/ffmpeg_dec: pass decoder options as an argument to dec_open()
...
Rather than access the dictionary in InputStream.
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
7ecd45587f
fftools/ffmpeg_dec: add an AVClass to Decoder
...
Log decoder messages to the decoder rather than InputStream.
This is a step towards decoupling Decoder and InputStream.
11 months ago
Anton Khirnov
f2a2094c47
fftools/ffmpeg: make decoding AVCodecContext private to the decoder
11 months ago
Anton Khirnov
d47bb91f8b
fftools/ffmpeg_filter: consolidate decoder/filter type checks
...
Also perform them earlier.
11 months ago
Anton Khirnov
b43d4a0692
fftools/ffmpeg_dec: export subtitle_header in Decoder
...
This way the encoder does not need to access the decoder AVCodecContext,
which will allow to make it private in future commits.
11 months ago
Anton Khirnov
3b84140a1b
fftools/ffmpeg_dec: split Decoder into a private and public part
...
Similar to what is currently done for other components, e.g. (de)muxers.
There is nothing in the public part currently, but that will change in
future commits.
11 months ago
Anton Khirnov
e0da916b8f
fftools/ffmpeg: optimize inter-thread queue sizes
...
Use 8 packets/frames by default rather than 1, which seems to provide
better throughput.
Allow -thread_queue_size to set the muxer queue size manually again.
11 months ago
Anton Khirnov
1ea2e757f7
fftools/ffmpeg_filter: do not end filtering when a graph input EOFs
...
There may be other inputs or sources in the filtergraph. Propagate the
EOF to the scheduler and continue filtering.
Fixes #10803
11 months ago
Anton Khirnov
00013341df
fftools/ffmpeg_sched: add filter API to signal EOF on input
11 months ago
James Almer
d2eb6f4d44
fftools/ffmpeg_mux_init: don't free the AVDictionaryEntry until after it's been used
...
Signed-off-by: James Almer <jamrial@gmail.com>
11 months ago
James Almer
04a37e238f
fftools/ffmpeg_mux_init: remove whitespaces from input arguments when parsing stream groups
...
If the arguments are read from a file, things like line breaks could be present
Signed-off-by: James Almer <jamrial@gmail.com>
11 months ago
Anton Khirnov
344d3a7d45
fftools/ffmpeg_opt: improve wording in option descriptions
11 months ago
Anton Khirnov
9cb52927b9
fftools/cmdutils: surround option arguments by <> in help output
...
Makes it more clear that they are placeholders for actual values.
11 months ago
Anton Khirnov
0b95e71aa0
fftools/ffmpeg_opt: briefly mention stream specifier syntax in help output
11 months ago
Anton Khirnov
68af3e37cc
fftools/cmdutils: indicate specifiers in option syntax in help output
11 months ago
Anton Khirnov
43323c3802
fftools/ffmpeg_opt: add more structure to long help output
...
Split the "Per-file main options" section into
* per-file input and output
* per-file input-only
* per-file output-only
* per-stream
11 months ago
Anton Khirnov
67529ad8a4
fftools/cmdutils: drop alt_flags parameter from show_help_options()
...
No user sets it to more than one flag, so it is redundant with
req_flags.
11 months ago
Anton Khirnov
03aedbdd40
fftools/cmdutils: add a flag for per-stream options
...
Not all OPT_SPEC options are per-stream, this will allow identifying
those that are, which will be useful in following commits.
11 months ago
Anton Khirnov
d8173cfcaf
fftools/cmdutils: hide some information listing options from basic help
...
They are for advanced usage only and should not clutter basic output.
11 months ago
Anton Khirnov
08bebeb1be
Revert "all: Don't set AVClass.item_name to its default value"
...
Some callers assume that item_name is always set, so this may be
considered an API break.
This reverts commit 0c6203c97a
.
11 months ago
Anton Khirnov
a8bc79c3fd
fftools/ffmpeg: deprecate -filter_script
...
It is equivalent to -/filter.
11 months ago
Anton Khirnov
c316c4c77b
fftools/ffmpeg: deprecate -filter_complex_script
...
It is equivalent to -/filter_complex.
11 months ago
Anton Khirnov
6d17991b7e
fftools/cmdutils: add option syntax for loading arbitrary arguments from a file
...
Aligned with analogous feature for filter options in ffmpeg CLI.
11 months ago
Anton Khirnov
8aed3911fc
fftools/ffmpeg: make attachment filenames dynamically allocated
...
Do not store the supplied arg pointer directly. While that is valid for
now, it will become ephemeral in the future commits.
11 months ago
Anton Khirnov
fcddd233fe
fftools/ffplay: make option strings dynamically allocated
...
Do not store the supplied arg pointer directly. While that is valid for
now, it will become ephemeral in the future commits.
11 months ago
Anton Khirnov
4ce1987abc
fftools/ffprobe: make option strings dynamically allocated
...
Do not store the supplied arg pointer directly. While that is valid for
now, arg will become ephemeral in the future commits.
11 months ago
Anton Khirnov
568dfed06f
fftools/ffmpeg_opt: mark -stream_group as expert option
11 months ago
Anton Khirnov
ae06111d74
fftools/ffmpeg_demux: implement -bsf for input
...
Previously bitstream filters could only be applied right before muxing,
this allows to apply them right after demuxing.
11 months ago
Anton Khirnov
6cb7295abf
fftools/ffmpeg_demux: add demuxing thread private data
...
To be used for data that never needs to be visible outside of the
demuxer thread, similarly as was previously done for other components.
11 months ago
Anton Khirnov
50448ca290
fftools/ffmpeg_demux: only allocate the decoder when actually decoding
...
It is not needed otherwise.
11 months ago
Anton Khirnov
2ee1c6ffb2
fftools/ffmpeg_demux: set options on codec parameters rather than decoder
...
This avoids the requirement to always have a decoder context.
11 months ago
Anton Khirnov
7e33534506
fftools/ffmpeg_demux: do not set bitexact directly on the decoder
...
Add it to decoder options instead, to be processed when opening the
decoder. This way it won't be overridden by flags the user might be
setting otherwise.
11 months ago
Anton Khirnov
f8939bad1e
fftools/ffmpeg_demux: replace abort() by av_assert0(0)
...
This is the standard way to mark unreachable cases in a switch
11 months ago
Zhao Zhili
564a15b2ee
fftools/ffplay_renderer: Add device selection support
...
The device can be selected by GPU name or index. For example,
ffplay -hwaccel cuda \
-vulkan_params device="NVIDIA GeForce RTX 3060" \
foo.mp4
ffplay -hwaccel cuda -vulkan_params device="0" foo.mp4
Please note that select device by index only supported by hwcontext,
not by libplacebo.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
12 months ago
Zhao Zhili
38aca1dc9a
fftools/ffplay: fix missing hw_frames_ctx when config avfilter
...
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
12 months ago
Marton Balint
90bef6390f
fftools/ffmpeg_filter: log an information message about filter graph reconfigurations
...
Filter graph reconfigurations can cause nontrivial issues, e.g. PTS
discontinuities, so it is better to warn the user about them.
Signed-off-by: Marton Balint <cus@passwd.hu>
12 months ago
Marton Balint
324be730fc
fftools/ffmpeg_filter: honor -reinit_filters 0 even on changed display matrix
...
Not sure about honoring it also in case of a hwaccel change, so left that as is
for now.
Signed-off-by: Marton Balint <cus@passwd.hu>
12 months ago
xufuji456
6caf34dbe0
fftool/ffplay: avoid same name in local variable
...
There is a warning in XCode:"Declaration shadows a local variable"
Signed-off-by: xufuji456 <839789740@qq.com>
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
12 months ago
Niklas Haas
9613ba95c1
fftools/ffmpeg_filter: configure buffersrc with csp/range
...
Propagates input metadata to the input filter graph.
1 year ago
Niklas Haas
9d0f361f7f
fftools/ffmpeg_filter: don't clear buffersrc params
...
This memset is bogus, it accomplishes nothing in the best case and
regresses future additions to AVBufferSrcParameters in the worst case.
1 year ago