Anton Khirnov
255ae03601
fftools/ffmpeg_sched: allow filtergraphs to send to filtergraphs
...
Will be useful for filtergraph chaining that will be added in following
commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
3d01996b24
fftools/ffmpeg_filter: change processing order in fg_finalise_bindings()
...
First bind all inputs in all filtergraphs, only then check that all
outputs are bound.
Needed by the following commit.
2024-04-09 10:34:18 +02:00
Anton Khirnov
243a51490a
fftools/ffmpeg_filter: only store complex filtergraphs in global array
...
Store simple filtergraphs in the stream they feed. Keeping the two
separate will be useful in following commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
d74cbcb963
fftools/ffmpeg_filter: drop OutputFilter.ost
...
All remaining code accessing it only needs to know whether this
filtergraph output has been bound or not.
2024-04-09 10:34:18 +02:00
Anton Khirnov
f2c919252d
fftools/ffmpeg_filter: accept encoder thread count through OutputFilterOptions
...
Stop digging through encoder options manually.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
bfeb751171
fftools/ffmpeg_mux: drop OutputFile.format
...
It is no longer used outside of the muxing code (where we can access the
muxer directly).
2024-04-09 10:34:18 +02:00
Anton Khirnov
5b0589c8c3
fftools/ffmpeg_mux: drop OutputFile.shortest
...
It is no longer needed outside of of_open() and its children.
2024-04-09 10:34:18 +02:00
Anton Khirnov
a4c940c86a
fftools/ffmpeg_filter: move most of -apad logic to the muxer
...
The decision whether -apad actually does anything is made based on muxer
properties, and so more properly belongs there. Filtering code only
receives the result.
2024-04-09 10:34:18 +02:00
Anton Khirnov
a2892dbe06
fftools/ffmpeg_filter: pass trim parameters through OutputFilterOptions
...
Do not read them from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
83304f7c1f
fftools/ffmpeg_filter: pass autoscale through OutputFilterOptions
...
Do not read it from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
b8e6802023
fftools/ffmpeg_filter: pass sws/swr opts through OutputFilterOptions
...
Do not read them from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
23c23077fc
fftools/ffmpeg_filter: drop an unnecessary use of OutputStream
...
OutputFilter.type contains the same information.
2024-04-09 10:34:18 +02:00
Anton Khirnov
fc6354c39c
fftools/ffmpeg_filter: add an AVClass to OutputFilter
...
Use it for logging where appropriate, avoid logging to OutputStream as
we do not own it.
This is a step towards decoupling filtering from encoding.
2024-04-09 10:34:18 +02:00
Anton Khirnov
3c3e04c8a3
fftools/ffmpeg_filter: simplify retrieving filter type
2024-04-09 10:34:18 +02:00
Anton Khirnov
114cbaa316
fftools/ffmpeg_filter: drop a redundant check
...
fg_finalise_bindings() already checks that all filtergraph outputs are
connected.
2024-04-09 10:34:18 +02:00
Anton Khirnov
da80e0b077
fftools/ffmpeg_filter: accept a caller-provided output name
...
Do not construct it from OutputStream manually.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
82c7c21b18
fftools/ffmpeg: drop OutputStream.is_cfr
...
It is used in a single place in the filtering code, so it is better to
inline it there.
2024-04-09 10:34:18 +02:00
Anton Khirnov
509afedaaf
fftools/ffmpeg_filter: pass vsync method through OutputFilterOptions
...
Do not read it from OutputStream directly.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
bc206ed1b3
fftools/ffmpeg_filter: stop accessing encoder AVCodecContext
...
Pass all the necessary value through OutputFilterOptions.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
17702c5f7b
fftools/ffmpeg_filter: move the MJPEG format selection hack to muxer setup
...
That, if anywhere, is a more appropriate place for it.
2024-04-09 10:34:18 +02:00
Anton Khirnov
9d5bf2d69e
fftools/ffmpeg_filter: pass enc_timebase through OutputFilterOptions
...
Reduces the need to access OutputStream, which will allow decoupling
filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
606c71bb11
fftools/ffmpeg: warn about ignored -enc_time_base for subtitles earlier
...
Can do it as soon as that option is parsed, no need to postpone it until
opening the encoder.
2024-04-09 10:34:18 +02:00
Anton Khirnov
e903c31fd1
fftools/ffmpeg_filter: pass keep_pix_fmt through OutputFilterOptions
...
Reduces the need to access OutputStream, which will allow decoupling
filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
b3864e7a08
fftools/ffmpeg_filter: pass ts offset through OutputFilterOptions
...
Reduces the need to access OutputFile, which will allow decoupling
filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
651c79da36
fftools/ffmpeg_filter: check that filter type matches output stream type
...
For simple filtergraphs. For complex filtergraphs they always match.
2024-04-09 10:34:18 +02:00
Anton Khirnov
8e35e33d42
fftools/ffmpeg_filter: stop accessing AVCodecContext.codec
...
Instead pass the encoder through a newly-added output options struct,
analogous to previously added input options.
Will allow decoupling filtering from encoding in future commits.
2024-04-09 10:34:18 +02:00
Anton Khirnov
8c33085313
fftools/ffmpeg_filter: do not pass OutputStream to set_channel_layout()
...
It only needs a list of allowed layouts and the requested layout.
2024-04-09 10:34:18 +02:00
Anton Khirnov
d7cde009ce
lavfi/avfilter: add an "auto" constant to the threads option
...
Analogous to the same constant in avfiltergraph and avcodec.
Cf. f599ae88c2
.
2024-04-09 10:34:18 +02:00
Anton Khirnov
b0e1bc6298
lavfi/vf_scale: fix AVOption flags for "size"/"s"
2024-04-09 10:34:18 +02:00
James Almer
b0ef9e35e8
x86/ac3dsp: clear the upper 32 bits for input arguments where needed
...
Fixes checkasm on win64.
Signed-off-by: James Almer <jamrial@gmail.com>
2024-04-08 13:45:58 -03:00
Andreas Rheinhardt
17414abb69
avcodec/mpegvideo_dec, h264_slice: Return proper error codes
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
7f0efe2324
avcodec/mpeg12dec: Remove redundant mpeg_enc_ctx_allocated
...
Use context_initialized from the underlying MpegEncContext
instead. Also don't check before ff_mpv_common_end()
in mpeg_decode_end().
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
94295bb574
avcodec/mpegvideo: Remove pointless check
...
Possible since 315c956cbd
.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
6f2f496822
avcodec/mpegvideo_dec: Move getting Picture slot into alloc_picture()
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
b7cf2d0efc
avcodec/mpegvideo_dec: Factor allocating dummy frame out
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
b00c697654
avcodec/mpegvideo_dec: Remove redundant code to reset keyframe flag
...
These AVFrames are blank and therefore the flag is already unset.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
da4cca5fc0
avcodec/mpegvideo_dec: Remove obsolete current_picture_ptr reuse code
...
Obsolete since at least 74d623914f
.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
00e48e6da8
avcodec/mpeg12dec: Remove unnecessary FFCodec.close
...
The ipu decoder never calls ff_mpv_common_init() or allocates
anything else that would need to be freed.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
f48313526b
avcodec/mpegvideo_dec: Don't emit non-keyframe warning for H.261
...
H.261 does not have keyframes (or indeed frame types) at all,
so this warning is not warranted.
Also remove an always-true check while at it.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
518f79f2a8
avcodec/mpeg12dec: Don't pretend MPEG-1/2 to support alpha
...
(FF_PTR_ADD has to be kept although MPEG-1/2 only supports
YUV pixel formats because our decoder also supports decoding
to AV_PIX_FMT_GRAY8 depending upon CONFIG_GRAY.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:02 +02:00
Andreas Rheinhardt
1a5452655a
avcodec/mpeg12dec: Remove redundant check
...
This code only gets executed for the first field.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:01 +02:00
Andreas Rheinhardt
a9709b3c83
avcodec/mpegvideo_dec, mpeg12dec: Move MPEG1/2 code to mpeg12dec.c
...
Up until now, ff_mpv_frame_start() offsets the data of the current
picture and doubles the linesizes of all pictures if the current
picture is field-based so that data and linesize allow to address
the current field only.
This is done based upon the current picture_structure value.
Only two mpegvideo-based decoders ever set this field: mpeg1/2
and VC-1; but the latter only does it after ff_mpv_frame_start()
(when using hardware-acceleration and in order to signal it to
the DXVA2 hwaccel) in which case no offset is applied in
ff_mpv_frame_start(). So only one decoder actually wants this
offset*; therefore move the code performing it to mpeg12dec.c.
*: VC-1 doubles linesize when using field_mode (not only the picture's
linesize, but also uvlinesize and linesize), yet it does not offset
anything. This is further proof that this should not be performed
generically.
Also move MPEG-1/2 specific setting of the top-field-first flag.
(The change here implies that the AVFrame in current_picture
may have different top-field-first flags than the AVFrame
from current_picture_ptr, but this doesn't matter as only
the latter's are used.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:01 +02:00
Andreas Rheinhardt
ca7b2c393a
avcodec/mpeg12: Remove always-false check
...
Forgotten in 7800cc6e82
.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:01 +02:00
Andreas Rheinhardt
66923165d5
avcodec/mpegutils: Move definitions to better places
...
FRAME_SKIPPED -> h263dec.h
CANDIDATE_MB_TYPE_* -> mpegvideoenc.h
INPLACE_OFFSET -> mpegvideoenc.h
enum OutputFormat -> mpegvideo.h
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:01 +02:00
Andreas Rheinhardt
908a73df31
avcodec/mpegvideo_enc: Don't update current_picture unnecessarily
...
current_picture is not changed after frame_start() at all
and it therefore does not need to be updated (i.e. copied to the
slice thread contexts) a second time.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2024-04-08 15:00:01 +02:00
James Almer
1f049d5627
avcodec/vvc/dec: fix typo
...
Signed-off-by: James Almer <jamrial@gmail.com>
2024-04-08 09:10:04 -03:00
James Almer
9eca5b8369
avcodec/vvc/ps: reset sps_id_used on flush
...
Signed-off-by: James Almer <jamrial@gmail.com>
2024-04-08 08:56:53 -03:00
Geoff Hill
ee1bc723de
avcodec/ac3: Implement sum_square_butterfly_float for aarch64 NEON
...
Signed-off-by: Geoff Hill <geoff@geoffhill.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2024-04-08 13:36:40 +03:00
Geoff Hill
42e88f18f3
avcodec/ac3: Implement sum_square_butterfly_int32 for aarch64 NEON
...
Signed-off-by: Geoff Hill <geoff@geoffhill.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2024-04-08 13:36:40 +03:00
Geoff Hill
69cb34f885
avcodec/ac3: Implement ac3_extract_exponents for aarch64 NEON
...
Signed-off-by: Geoff Hill <geoff@geoffhill.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2024-04-08 13:36:40 +03:00