27 Commits

Author SHA1 Message Date
7ab7d9c3c0 avfilter/avfilter: Add FFFilter, hide internals of AVFilter
This patch is analogous to 20f972701806be20a77f808db332d9489343bb78:
It hides the internal part of AVFilter by adding a new internal
structure FFFilter (declared in filters.h) that has an AVFilter
as its first member; the internal part of AVFilter is moved to
this new structure.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-01-12 15:41:40 +01:00
eddffbedb3 lavfi: add query_func2()
It differs from query_func() in accepting arrays of input/output format
configurations to be filled as callback parameters. This allows to mark
the filter context as const, ensuring it is not modified by this
function, as it is not supposed to have any side effects beyond
returning the supported formats.
2024-09-02 11:55:20 +02:00
52471b56ba lavfi: make FFFilterContext private to generic code
Nothing in it needs to be visible to filters.
2024-08-19 21:48:11 +02:00
f19c988911 lavfi/filters: move functions only used by generic code to avfilter_internal.h 2024-08-19 21:48:11 +02:00
6d75d44d90 lavfi: drop internal.h
All that remains in it are things that belong in avfilter_internal.h.

Move them there and remove internal.h
2024-08-19 21:48:04 +02:00
1afe42852b lavfi/internal: move functions used by filters to filters.h
internal.h currently mixes interfaces intended to be used by filters
with those that should be limited to generic filter- or graph-level
code.
2024-08-19 21:45:25 +02:00
d566a37003 lavfi: move AVFilterLink.graph to FilterLink 2024-08-15 19:34:27 +02:00
fb3efef1db lavfi: move AVFilterLink.frame_wanted_out to FilterLinkInternal 2024-08-15 19:34:27 +02:00
42cbf66fff lavfi: move AVFilterLink.{frame,sample}_count_{in,out} to FilterLink 2024-08-15 19:34:27 +02:00
a23d565ea7 lavfi: move AVFilterLink.frame_rate to FilterLink
Co-developed-by: James Almer <jamrial@gmail.com>
2024-08-15 19:34:27 +02:00
d6318a244d lavfi: move AVFilterLink.current_pts(_us) to FilterLink 2024-08-15 19:34:27 +02:00
7f17e0e6dd lavfi: move AVFilterLink.hw_frames_ctx to FilterLink 2024-08-15 19:34:24 +02:00
99ee7a948f lavfi: move AVFilterLink.m{ax,in}_samples to FilterLink
Also, document who sets these fields and when.
2024-08-15 19:27:01 +02:00
54754eec1e lavfi: add a new struct for private link properties
Specifically those that should be visible to filters, but hidden from
API callers. Such properties are currently located at the end of the
public AVFilterLink struct, demarcated by a comment marking them as
private. However it is generally better to hide them explicitly, using
the same pattern already employed in avformat or avcodec.

The new struct is currently trivial, but will become more useful in
following commits.
2024-08-15 19:27:01 +02:00
531d09fb2d lavfi: add ff_inoutlink_check_flow() 2022-02-20 12:38:52 +01:00
7d65fe87e9 avfilter: add ff_inlink_queued_samples() 2018-10-04 12:10:20 +02:00
8f14170b9a avfilter/filters: add ff_inlink_peek_frame and ff_inlink_queued_frames to access frames in the inlink fifo
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-10-03 22:09:49 +02:00
76613618d9 lavfi: add helper functions and macros for activate. 2017-09-12 11:03:50 +02:00
ed1c884b9e lavfi: add outlink helper functions.
These wrappers cost nothing, they make the namespace more
consistent and they will be useful if/when locking becomes
necessary.
2017-07-30 12:24:00 +02:00
b77f041dff lavfi: make FFERROR_NOT_READY available to filters.
I am not entirely sure that this return code is useful,
but having and using it makes no harm.
2017-07-30 12:23:56 +02:00
9eb4c79afd lavfi: add ff_inlink_request_frame(). 2017-01-12 14:06:16 +01:00
d360ddf03b lavfi: add helpers to consume frames from link FIFOs. 2017-01-12 14:06:16 +01:00
e7e4c8dfbe lavfi: add ff_inlink_evaluate_timeline_at_frame(). 2017-01-12 14:06:16 +01:00
0e3d2496e2 lavfi: add ff_inlink_process_commands(). 2017-01-12 14:06:16 +01:00
28c62df672 lavfi: implement ff_inlink_make_frame_writable().
Unlike av_frame_is_writable(), it uses the link's alloc callback,
making direct rendering possible.

The code comes from ff_filter_frame_framed(), moved with mostly
trivial changes.
2017-01-12 14:06:16 +01:00
918891e146 lavfi: export ff_filter_set_ready() to the library. 2017-01-12 14:06:16 +01:00
4c24f3ac16 lavfi: add ff_inlink_acknowledge_status().
Also introduce libavfilter/filters.h for all functions needed
to implement filters.
2017-01-12 14:06:16 +01:00