Damiano Galassi
45697e6a51
avcodec: add ambient viewing environment packet side data.
2024-02-04 13:36:21 -03:00
王昊然
344ec7a3f7
fftools/ffmpeg: use correct unit prefix symbol for binary scaled byte values
...
Fix bug #10501
Signed-off-by: WHR <msl0000023508@gmail.com>
2024-02-03 12:50:42 +01:00
Niklas Haas
f7b1017d73
fftools/ffmpeg_filter: simplify buffersrc arg printing
...
There's no need to go through full string expansion here.
2024-02-02 13:24:27 +01:00
Niklas Haas
dcc7263b0e
fftools/ffplay: add missing YUV metadata to buffersrc
...
This commit lets ffplay properly propagate YUV metadata into the filter
graph, avoiding such issues as e.g. accidentally passing YCgCo into a
filter that can't support it. Also fixes an error related to this
missing metadata from buffersrc (since commit 2d555dc82d
)
See-Also: https://trac.ffmpeg.org/ticket/10839
2024-02-02 13:22:42 +01:00
Anton Khirnov
093be1fb06
fftools/ffmpeg: cosmetics, vertically align Input{File,Stream}
2024-01-30 09:52:00 +01:00
Anton Khirnov
f4b76a1d6a
fftools/ffmpeg: make InputStream.decoder_opts private to demuxer
...
It is no longer used outside of ffmpeg_demux.
2024-01-30 09:52:00 +01:00
Anton Khirnov
01c71b78eb
fftools/ffmpeg: make InputStream.decoding_needed private to demuxer
...
It is no longer used outside of ffmpeg_demux.
2024-01-30 09:52:00 +01:00
Anton Khirnov
0d00e2e2f7
fftools/ffmpeg_dec: eliminate all remaining InputStream uses
...
Previously, the demuxer would register decoder with the scheduler, using
InputStream as opaque, and pass the scheduling index to the decoder.
Now the registration is done by the decoder itself, using DecoderPriv as
opaque, and the scheduling index is returned to demuxer from dec_open().
decoder_thread() then no longer needs to be accessed from outside of
ffmpeg_dec and can be made static.
2024-01-30 09:52:00 +01:00
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