Anton Khirnov
78699923ac
fftools/ffplay: replace report_and_exit() with returning an error code
2023-07-20 20:47:46 +02:00
Anton Khirnov
140cb5a742
fftools/ffprobe: replace report_and_exit() with returning error codes
2023-07-20 20:47:46 +02:00
Anton Khirnov
83ace80bfd
fftools/ffmpeg: return an error from MATCH_PER_STREAM_OPT() instead of aborting
2023-07-20 20:47:46 +02:00
Anton Khirnov
2f155b18a1
fftools/ffmpeg: return an error from assert_avoptions() instead of aborting
...
Rename it to check_avoptions().
2023-07-20 20:47:46 +02:00
Anton Khirnov
eda1fac27a
fftools/cmdutils: return AVERROR_EXIT for OPT_EXIT options instead of aborting()
2023-07-20 20:47:46 +02:00
Anton Khirnov
8173623e39
fftools/ffmpeg: consolidate exiting from main() on error
2023-07-20 20:47:46 +02:00
Anton Khirnov
c56fabde27
fftools/ffmpeg_opt: consolidate printing errors in ffmpeg_parse_options()
2023-07-20 20:47:46 +02:00
Anton Khirnov
87f0333af1
fftools/cmdutils: add error handling to filter_codec_opts()
2023-07-20 20:47:46 +02:00
Anton Khirnov
6b8cf2505a
fftools/cmdutils: constify the first parameter of filter_codec_opts()
2023-07-20 20:47:46 +02:00
Anton Khirnov
39d5104332
fftools: handle errors in parse_options()
2023-07-20 20:47:46 +02:00
Anton Khirnov
49ac7fc485
fftools: remove parse_time_or_die()
...
Replace it with calling av_parse_time() directly, which provides
graceful error handling and more accurate error messages.
2023-07-20 20:47:46 +02:00
Anton Khirnov
9cb47c78d6
fftools: return errors from parse_number_or_die() instead of aborting
...
Rename the function to just parse_number().
2023-07-20 20:47:40 +02:00
Anton Khirnov
4adbe2d219
fftools/opt_common: replace exit_program() with returning error codes
2023-07-20 20:40:26 +02:00
Anton Khirnov
a50f90f1c2
fftools/ffmpeg_opt: replace exit_program() with returning error codes
2023-07-20 20:40:26 +02:00
Anton Khirnov
6c6f13baf3
fftools/ffmpeg: return errors from find_codec_or_die() instead of aborting
...
Rename the function to just find_codec().
2023-07-20 20:40:26 +02:00
Anton Khirnov
2e6afa799e
fftools/cmdutils: add error handling to GROW_ARRAY()
2023-07-20 20:40:26 +02:00
Anton Khirnov
b23abb7c48
fftools/cmdutils: add error handling to grow_array()
2023-07-20 20:40:26 +02:00
Anton Khirnov
6be4a29397
fftools/cmdutils: add error handling to allocate_array_elem()
2023-07-20 20:40:26 +02:00
Anton Khirnov
8eb5adeab8
fftools/cmdutils: drop unused ALLOC_ARRAY_ELEM()
2023-07-20 20:40:26 +02:00
Anton Khirnov
26e1e80152
fftools/ffmpeg_opt: reimplement -streamid using a dictionary
...
This does not require an arbitrary limit on the number of streams.
Also, return error codes from opt_streamid() instead of aborting.
2023-07-20 20:40:26 +02:00
Anton Khirnov
37abb3a419
fftools/cmdutils: return error codes from setup_find_stream_info_opts() instead of aborting
2023-07-20 20:40:26 +02:00
Anton Khirnov
13ebc9a0a9
fftools/ffmpeg_filter: replace remaining report_and_exit() with error codes
2023-07-20 20:40:26 +02:00
Anton Khirnov
cb8242db8d
fftools/ffmpeg_filter: return error codes from set_channel_layout() instead of aborting
2023-07-20 20:40:26 +02:00
Anton Khirnov
5ba7aa2ce8
fftools/ffmpeg_filter: return error codes from fg_create() instead of aborting
2023-07-20 20:40:26 +02:00
Anton Khirnov
8db96808bc
fftools/ffmpeg_filter: return error codes from choose_pix_fmts() instead of aborting
2023-07-20 20:40:26 +02:00
Anton Khirnov
8815adfe75
fftools/ffmpeg_filter: replace remaining exit_program() with error codes
2023-07-20 20:39:42 +02:00
Anton Khirnov
a52ee1aa47
fftools/ffmpeg_filter: return error codes from init_input_filter() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
ab16e324ea
fftools/ffmpeg_filter: return error codes from ofilter_bind_ost() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
6298dd683b
fftools/ffmpeg_dec: drop redundant handling of AVERROR_EXPERIMENTAL
...
Normal error handling does the job just as well.
2023-07-20 20:30:13 +02:00
Anton Khirnov
518b49a735
fftools/ffmpeg_dec: return error codes from dec_packet() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
e0f4259689
fftools/ffmpeg_mux: return errors from of_output_packet() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
2b4afe8169
fftools/ffmpeg_enc: return errors from encode_frame() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
43bcf631d0
fftools/ffmpeg_enc: return errors from enc_flush() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
dde3de0170
fftools/ffmpeg_enc: return errors from do_*_out() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
aa1173feee
fftools/ffmpeg_enc: return errors from enc_open() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
80a64800ea
fftools/ffmpeg_enc: return errors from enc_frame() instead of aborting
2023-07-20 20:30:13 +02:00
Anton Khirnov
c4b074676a
fftools/ffmpeg_mux_init: avoid invalid memory access in set_dispositions()
...
This function assumes AVMEDIA_* are always positive, while in fact it
can also handle AVMEDIA_TYPE_UNKNOWN, which is -1.
2023-07-20 20:30:13 +02:00
Anton Khirnov
3a89e6d352
fftools/ffmpeg_filter: restrict reap_filters() to a single filtergraph
...
This is more natural, as all except one of its callers require
processing only one filtergraph.
2023-07-20 20:30:13 +02:00
Anton Khirnov
9d44eb8af5
fftools/ffmpeg_filter: stop accessing encoder from pixfmt selection
...
ffmpeg CLI pixel format selection for filtering currently special-cases
MJPEG encoding, where it will restrict the supported list of pixel
formats depending on the value of the -strict option. In order to get
that value it will apply it from the options dict into the encoder
context, which is a highly invasive action even now, and would become a
race once encoding is moved to its own thread.
The ugliness of this code can be much reduced by moving the special
handling of MJPEG into ofilter_bind_ost(), which is called from encoder
init and is thus synchronized with it. There is also no need to write
anything to the encoder context, we can evaluate the option into our
stack variable.
There is also no need to access AVCodec at all during pixel format
selection, as the pixel formats array is already stored in
OutputFilterPriv.
2023-07-20 20:30:13 +02:00
Anton Khirnov
45035154be
tests/fate: fix mismatches between requested and actually used pixel formats
2023-07-20 20:30:13 +02:00
Anton Khirnov
037d364797
fftools/ffmpeg_filter: move "smart" pixfmt selection to ffmpeg_mux_init
...
This code works on encoder information and has no interaction with
filtering, so it does not belong in ffmpeg_filter.
2023-07-20 20:30:04 +02:00
Anton Khirnov
249bca763d
fftools/ffmpeg_mux_init: handle pixel format endianness
...
When -pix_fmt designates a BE/LE pixel format, it gets translated into
the native one by av_get_pix_fmt(). This may not always be the best
choice, as the encoder might only support one endianness. In such a
case, explicitly choose the endianness supported by the encoder.
While this is currently redundant with choose_pixel_fmt() in
ffmpeg_filter.c, the latter code will be deprecated in following commits.
2023-07-20 20:30:04 +02:00
Tobias Rapp
0b075b4092
doc/filters: Extend description of overlay filter format option values
2023-07-20 16:49:38 +02:00
Tobias Rapp
afaa345824
tests/fate: Add test for overlay filter using yuv444p10 output format
2023-07-20 16:49:20 +02:00
Tobias Rapp
6747cda5ca
avfilter/vf_overlay: Add support for yuv444p10 pixel format
2023-07-20 16:49:05 +02:00
Stephen Hutchinson
efa6cec759
configure: bump minimum AviSynth+ header version
...
AVISYNTH_INTERFACE_VERSION 10 fell in-between the releases of
3.7.2 and 3.7.3, and is required to be able to read the channel
layout information.
Signed-off-by: Stephen Hutchinson <qyot27@gmail.com>
2023-07-19 19:33:20 -04:00
Stephen Hutchinson
1e36e1f258
avisynth: pass audio channel layout
...
Signed-off-by: Stephen Hutchinson <qyot27@gmail.com>
2023-07-19 19:33:20 -04:00
Paul B Mahol
72390c7d80
avfilter/vf_pseudocolor: add heat preset
2023-07-19 23:42:03 +02:00
Paul B Mahol
5d8879208c
avfilter/vf_pseudocolor: add cool preset
2023-07-19 23:42:01 +02:00
Rémi Denis-Courmont
61e5ca4ded
lavc/bswapdsp: purge RISC-V V bswap32
...
This cannot beat the Zbb implementation, and it is unlikely that a real
meaningful CPU design would support V and not Zbb. The best loop rewrite
that I could come up with (4 shifts, 2 ands, 3 ors) is still ~40% slower
than Zbb.
A proper faster vector implementation should be feasible with the
cryptographic vector extensions, but that is a story for another time.
2023-07-19 19:29:35 +03:00