Anton Khirnov
fe3be6f78f
fftools/ffmpeg_dec: stop passing InputStream to dec_open()
2024-01-30 09:52:00 +01:00
Anton Khirnov
a0ca99ccb7
fftools/ffmpeg_dec: remove unnecessary InputStream arguments
2024-01-30 09:52:00 +01:00
Anton Khirnov
1b2c539a0f
fftools/ffmpeg_dec: pass AVCodecParameters through DecoderOpts
...
Do not retrieve it from InputStream directly.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
b3d1916ba0
fftools/ffmpeg_dec: pass AVCodec through DecoderOpts
...
Do not retrieve it from InputStream directly.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
d5f9ef766b
fftools/ffmpeg_dec: eliminate InputStream use in hw_device_setup_for_decode()
...
The same information can also be obtained from the decoder itself.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
097f9ddbe9
fftools/ffmpeg_dec: pass decoder name through DecoderOpts
...
Do not build it from InputStream values.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
9ba4bc87e6
fftools/ffmpeg_dec: pass top_field_first through DecoderOpts
...
Do not read it from InputStream directly.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
9702817662
fftools/ffmpeg_dec: pass input timebase through DecoderOpts
...
Do not read it from AVStream directly.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
b27de18e4f
fftools/ffmpeg_dec: move setting compute_edt to demuxer
...
It is done based on demuxer information, so that is the more appropriate
place for this code.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
052c83e356
fftools/ffmpeg_dec: pass forced/estimated framerate though DecoderOpts
...
Stop reading them from InputStream.
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
Anton Khirnov
e0a6cb07b2
fftools/ffmpeg_dec: move flags to DecoderOpts
...
Will be useful in the following commit.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
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
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
Anton Khirnov
b2a0a2e6f5
fftools/ffmpeg: move decoder existence check to a more appropriate place
2024-01-30 09:52:00 +01:00
Anton Khirnov
217b8757db
fftools/ffmpeg_dec: drop a useless log message
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
Anton Khirnov
9be3f80527
fftools/ffmpeg_dec: move decoding counters from InputStream to Decoder
...
This is a step towards decoupling Decoder and InputStream.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
Anton Khirnov
f2a2094c47
fftools/ffmpeg: make decoding AVCodecContext private to the decoder
2024-01-30 09:52:00 +01:00
Anton Khirnov
d47bb91f8b
fftools/ffmpeg_filter: consolidate decoder/filter type checks
...
Also perform them earlier.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:52:00 +01:00
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.
2024-01-30 09:51:57 +01:00
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.
2024-01-28 13:34:56 +01:00
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
2024-01-27 09:24:29 +01:00
Anton Khirnov
00013341df
fftools/ffmpeg_sched: add filter API to signal EOF on input
2024-01-27 09:24:29 +01:00
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>
2024-01-22 13:46:57 -03:00
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>
2024-01-22 10:58:12 -03:00
Anton Khirnov
344d3a7d45
fftools/ffmpeg_opt: improve wording in option descriptions
2024-01-20 10:37:32 +01:00
Anton Khirnov
9cb52927b9
fftools/cmdutils: surround option arguments by <> in help output
...
Makes it more clear that they are placeholders for actual values.
2024-01-20 10:37:32 +01:00
Anton Khirnov
0b95e71aa0
fftools/ffmpeg_opt: briefly mention stream specifier syntax in help output
2024-01-20 10:37:32 +01:00
Anton Khirnov
68af3e37cc
fftools/cmdutils: indicate specifiers in option syntax in help output
2024-01-20 10:37:32 +01:00
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
2024-01-20 10:37:32 +01:00
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.
2024-01-20 10:37:32 +01:00
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.
2024-01-20 10:37:32 +01:00
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.
2024-01-20 10:37:32 +01:00
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
.
2024-01-20 10:34:48 +01:00
Anton Khirnov
a8bc79c3fd
fftools/ffmpeg: deprecate -filter_script
...
It is equivalent to -/filter.
2024-01-20 10:23:24 +01:00
Anton Khirnov
c316c4c77b
fftools/ffmpeg: deprecate -filter_complex_script
...
It is equivalent to -/filter_complex.
2024-01-20 10:23:24 +01:00
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.
2024-01-20 10:23:24 +01:00
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.
2024-01-20 10:23:24 +01:00
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.
2024-01-20 10:23:24 +01:00
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.
2024-01-20 10:23:24 +01:00
Anton Khirnov
568dfed06f
fftools/ffmpeg_opt: mark -stream_group as expert option
2024-01-19 17:54:10 +01:00
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.
2024-01-19 17:54:10 +01:00
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.
2024-01-19 17:54:10 +01:00