VLC 4.0.0-dev
Loading...
Searching...
No Matches
vlc_filter.h File Reference

Filter modules interface. More...

Include dependency graph for vlc_filter.h:

Go to the source code of this file.

Data Structures

struct  filter_video_callbacks
 
struct  filter_audio_callbacks
 
struct  filter_subpicture_callbacks
 
struct  filter_owner_t
 
struct  vlc_filter_operations
 
struct  filter_t
 Structure describing a filter. More...
 

Macros

#define set_deinterlace_callback(activate)
 
#define set_callback_video_filter(activate)
 
#define set_callback_video_converter(activate, priority)
 
#define set_callback_text_renderer(activate, priority)
 
#define set_callback_sub_filter(activate)
 
#define set_callback_sub_source(activate, priority)
 
#define set_callback_video_blending(activate, priority)
 
#define filter_AddProxyCallbacks(a, b, c)    filter_AddProxyCallbacks(VLC_OBJECT(a), b, c)
 
#define filter_DelProxyCallbacks(a, b, c)    filter_DelProxyCallbacks(VLC_OBJECT(a), b, c)
 
#define VIDEO_FILTER_WRAPPER_CLOSE_FILT(name, close_cb)
 Create a picture_t *(*)( filter_t *, picture_t * ) compatible wrapper using a void (*)( filter_t *, picture_t *, picture_t * ) function.
 
#define VIDEO_FILTER_WRAPPER_CLOSE(name, close_cb)
 
#define VIDEO_FILTER_WRAPPER(name)
 
#define VIDEO_FILTER_WRAPPER_EXT(name)
 Wrappers to use when the filter function is not a static function.
 
#define VIDEO_FILTER_WRAPPER_CLOSE_EXT(name, close_cb)
 
#define filter_chain_NewSPU(a, b)   filter_chain_NewSPU( VLC_OBJECT( a ), b )
 
#define filter_chain_NewVideo(a, b, c)    filter_chain_NewVideo( VLC_OBJECT( a ), b, c )
 

Typedefs

typedef struct vlc_video_context vlc_video_context
 
typedef struct filter_owner_t filter_owner_t
 
typedef int(* vlc_open_deinterlace) (filter_t *)
 
typedef int(* vlc_video_converter_open) (filter_t *)
 
typedef int(* vlc_video_filter_open) (filter_t *)
 
typedef int(* vlc_video_text_renderer_open) (filter_t *)
 
typedef int(* vlc_video_sub_filter_open) (filter_t *)
 
typedef int(* vlc_video_sub_source_open) (filter_t *)
 
typedef int(* vlc_video_blending_open) (filter_t *)
 
typedef filter_t vlc_blender_t
 
typedef struct filter_chain_t filter_chain_t
 Filter chain management API The filter chain management API is used to dynamically construct filters and add them in a chain.
 

Functions

static void filter_Close (filter_t *p_filter)
 
static picture_tfilter_NewPicture (filter_t *p_filter)
 This function will return a new picture usable by p_filter as an output buffer.
 
static void filter_Flush (filter_t *p_filter)
 Flush a filter.
 
static void filter_ChangeViewpoint (filter_t *p_filter, const vlc_viewpoint_t *vp)
 
static vlc_decoder_devicefilter_HoldDecoderDevice (filter_t *p_filter)
 
static vlc_decoder_devicefilter_HoldDecoderDeviceType (filter_t *p_filter, enum vlc_decoder_device_type type)
 
static block_tfilter_DrainAudio (filter_t *p_filter)
 This function will drain, then flush an audio filter.
 
static void filter_SendAudioLoudness (filter_t *filter, const struct vlc_audio_loudness *loudness)
 
static subpicture_tfilter_NewSubpicture (filter_t *p_filter)
 This function will return a new subpicture usable by p_filter as an output buffer.
 
static int filter_GetInputAttachments (filter_t *p_filter, input_attachment_t ***ppp_attachment, int *pi_attachment)
 This function gives all input attachments at once.
 
void filter_AddProxyCallbacks (vlc_object_t *obj, filter_t *filter, vlc_callback_t restart_cb)
 This function duplicates every variables from the filter, and adds a proxy callback to trigger filter events from obj.
 
void filter_DelProxyCallbacks (vlc_object_t *obj, filter_t *filter, vlc_callback_t restart_cb)
 This function removes the callbacks previously added to every duplicated variables, and removes them afterward.
 
vlc_blender_tfilter_NewBlend (vlc_object_t *, const video_format_t *p_dst_chroma)
 It creates a blend filter.
 
int filter_ConfigureBlend (vlc_blender_t *, int i_dst_width, int i_dst_height, const video_format_t *p_src)
 It configures blend filter parameters that are allowed to changed after the creation.
 
int filter_Blend (vlc_blender_t *, picture_t *p_dst, int i_dst_x, int i_dst_y, const picture_t *p_src, int i_alpha)
 It blends a picture into another one.
 
void filter_DeleteBlend (vlc_blender_t *)
 It destroys a blend filter created by filter_NewBlend.
 
filter_chain_tfilter_chain_NewSPU (vlc_object_t *obj, const char *psz_capability)
 Create new filter chain.
 
filter_chain_tfilter_chain_NewVideo (vlc_object_t *obj, bool change, const filter_owner_t *owner)
 Creates a new video filter chain.
 
void filter_chain_Delete (filter_chain_t *chain)
 Delete filter chain will delete all filters in the chain and free all allocated data.
 
void filter_chain_Reset (filter_chain_t *p_chain, const es_format_t *p_fmt_in, vlc_video_context *vctx_in, const es_format_t *p_fmt_out)
 Reset filter chain will delete all filters in the chain and reset p_fmt_in and p_fmt_out to the new values.
 
void filter_chain_Clear (filter_chain_t *)
 Remove all existing filters.
 
filter_tfilter_chain_AppendFilter (filter_chain_t *chain, const char *name, const config_chain_t *cfg, const es_format_t *fmt_out)
 Append a filter to the chain.
 
int filter_chain_AppendConverter (filter_chain_t *chain, const es_format_t *fmt_out)
 Append a conversion to the chain.
 
int filter_chain_AppendFromString (filter_chain_t *chain, const char *str)
 Append new filter to filter chain from string.
 
void filter_chain_DeleteFilter (filter_chain_t *chain, filter_t *filter)
 Delete filter from filter chain.
 
bool filter_chain_IsEmpty (const filter_chain_t *chain)
 Checks if the filter chain is empty.
 
const es_format_tfilter_chain_GetFmtOut (const filter_chain_t *chain)
 Get last output format of the last element in the filter chain.
 
vlc_video_contextfilter_chain_GetVideoCtxOut (const filter_chain_t *chain)
 Get last output video context of the last element in the filter chain.
 
picture_tfilter_chain_VideoFilter (filter_chain_t *chain, picture_t *pic)
 Apply the filter chain to a video picture.
 
void filter_chain_VideoFlush (filter_chain_t *)
 Flush a video filter chain.
 
int filter_chain_MouseFilter (filter_chain_t *, struct vlc_mouse_t *, const struct vlc_mouse_t *)
 Apply the filter chain to a mouse state.
 
int filter_chain_ForEach (filter_chain_t *chain, int(*cb)(filter_t *, void *), void *opaque)
 

Detailed Description

Filter modules interface.

Typedef Documentation

◆ vlc_video_context