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
Rémi Denis-Courmont
5de1db5370
lavc/bswapdsp: rewrite RISC-V V bswap16
...
This favours bit-wise logic over slow strided stores.
2023-07-19 19:29:35 +03:00
Rémi Denis-Courmont
b6585eb04c
lavu: add/use flag for RISC-V Zba extension
...
The code was blindly assuming that Zbb or V implied Zba. While the
earlier is practically always true, the later broke some QEMU setups,
as V was introduced earlier than Zba.
2023-07-19 19:29:35 +03:00
Rémi Denis-Courmont
98e4dd39c5
checkasm: test Zbb before V
...
Without this, Zbb functions get shadowed by V functions on devices
supporting both extensions, and never tested.
2023-07-19 19:29:35 +03:00
Rémi Denis-Courmont
2eb55157aa
lavc/aacpsdsp: unroll RISC-V V add_squares
...
This slightly improves performance with the Device Under Test.
2023-07-19 19:29:35 +03:00
Zhao Zhili
be7ac511a6
avformat/mov: avss box should be AV_CODEC_ID_CAVS
...
I cannot find the spec, but according to the original commit
d4fdba0df7
, it's CAVS. e571305a71
changed it to AVS by
accident. Ten years on, nothing happened. We still have the
sample [1], however, since there is no cavs_mp4tofoobar bsf, the
cavs decoder doesn't work. I don't know if there is any use case.
[1] https://samples.ffmpeg.org/AVS/AVSFileFormat/AVSFileFormat.mp4
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2023-07-19 22:43:33 +08:00
Zhao Zhili
3af0dc6d05
avutil/bfin: remove dead code
...
The code is unused for a decade since bf6c84d7eb
.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2023-07-19 22:42:08 +08:00
Steven Liu
2cd09fec9f
avformat/flvdec: support demux vp9 in enhanced flv
...
Tested-by: Tristan Matthews <tmatth@videolan.org>
Tested-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Tristan Matthews <tmatth@videolan.org>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-07-18 09:46:37 +08:00
Steven Liu
0693a2a86e
avformat/flvenc: support mux vp9 in enhanced flv
...
Tested-by: Tristan Matthews <tmatth@videolan.org>
Tested-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Tristan Matthews <tmatth@videolan.org>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-07-18 09:46:29 +08:00
Steven Liu
23b02557e9
avformat/flvdec: support demux av1 in enhanced flv
...
Tested-by: Tristan Matthews <tmatth@videolan.org>
Tested-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Tristan Matthews <tmatth@videolan.org>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-07-18 09:46:22 +08:00
Steven Liu
7a5e9a68b0
avformat/flvenc: support mux av1 in enhanced flv
...
Tested-by: Tristan Matthews <tmatth@videolan.org>
Tested-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Tristan Matthews <tmatth@videolan.org>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-07-18 09:46:16 +08:00
Steven Liu
ac5cc66f9e
avformat/flvdec: support demux hevc in enhanced flv
...
Tested-by: Tristan Matthews <tmatth@videolan.org>
Tested-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Tristan Matthews <tmatth@videolan.org>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-07-18 09:46:06 +08:00
Steven Liu
aa83654d94
avformat/flvenc: support mux hevc in enhanced flv
...
Tested-by: Tristan Matthews <tmatth@videolan.org>
Tested-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Tristan Matthews <tmatth@videolan.org>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2023-07-18 09:45:57 +08:00