VLC 4.0.0-dev

Audio, video, text filters. More...

Collaboration diagram for Filters:

Files

file  vlc_filter.h
 Filter modules interface.
 

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. More...
 
#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. More...
 
#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 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. More...
 

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. More...
 
static void filter_Flush (filter_t *p_filter)
 Flush a filter. More...
 
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. More...
 
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. More...
 
static int filter_GetInputAttachments (filter_t *p_filter, input_attachment_t ***ppp_attachment, int *pi_attachment)
 This function gives all input attachments at once. More...
 
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. More...
 
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. More...
 
vlc_blender_tfilter_NewBlend (vlc_object_t *, const video_format_t *p_dst_chroma)
 It creates a blend filter. More...
 
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. More...
 
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. More...
 
void filter_DeleteBlend (vlc_blender_t *)
 It destroys a blend filter created by filter_NewBlend. More...
 
filter_chain_tfilter_chain_NewSPU (vlc_object_t *obj, const char *psz_capability)
 Create new filter chain. More...
 
filter_chain_tfilter_chain_NewVideo (vlc_object_t *obj, bool change, const filter_owner_t *owner)
 Creates a new video filter chain. More...
 
void filter_chain_Delete (filter_chain_t *)
 Delete filter chain will delete all filters in the chain and free all allocated data. More...
 
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. More...
 
void filter_chain_Clear (filter_chain_t *)
 Remove all existing filters. More...
 
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. More...
 
int filter_chain_AppendConverter (filter_chain_t *chain, const es_format_t *fmt_out)
 Append a conversion to the chain. More...
 
int filter_chain_AppendFromString (filter_chain_t *chain, const char *str)
 Append new filter to filter chain from string. More...
 
void filter_chain_DeleteFilter (filter_chain_t *chain, filter_t *filter)
 Delete filter from filter chain. More...
 
bool filter_chain_IsEmpty (const filter_chain_t *chain)
 Checks if the filter chain is empty. More...
 
const es_format_tfilter_chain_GetFmtOut (const filter_chain_t *chain)
 Get last output format of the last element in the filter chain. More...
 
vlc_video_contextfilter_chain_GetVideoCtxOut (const filter_chain_t *chain)
 Get last output video context of the last element in the filter chain. More...
 
picture_tfilter_chain_VideoFilter (filter_chain_t *chain, picture_t *pic)
 Apply the filter chain to a video picture. More...
 
void filter_chain_VideoFlush (filter_chain_t *)
 Flush a video filter chain. More...
 
void filter_chain_SubSource (filter_chain_t *chain, spu_t *, vlc_tick_t display_date)
 Generate subpictures from a chain of subpicture source "filters". More...
 
subpicture_tfilter_chain_SubFilter (filter_chain_t *chain, subpicture_t *subpic)
 Apply filter chain to subpictures. More...
 
int filter_chain_MouseFilter (filter_chain_t *, struct vlc_mouse_t *, const struct vlc_mouse_t *)
 Apply the filter chain to a mouse state. More...
 
int filter_chain_ForEach (filter_chain_t *chain, int(*cb)(filter_t *, void *), void *opaque)
 

Detailed Description

Audio, video, text filters.

Macro Definition Documentation

◆ filter_AddProxyCallbacks

#define filter_AddProxyCallbacks (   a,
  b,
 
)     filter_AddProxyCallbacks(VLC_OBJECT(a), b, c)

◆ filter_chain_NewSPU

#define filter_chain_NewSPU (   a,
 
)    filter_chain_NewSPU( VLC_OBJECT( a ), b )

◆ filter_chain_NewVideo

#define filter_chain_NewVideo (   a,
  b,
 
)     filter_chain_NewVideo( VLC_OBJECT( a ), b, c )

◆ filter_DelProxyCallbacks

#define filter_DelProxyCallbacks (   a,
  b,
 
)     filter_DelProxyCallbacks(VLC_OBJECT(a), b, c)

◆ set_callback_sub_filter

#define set_callback_sub_filter (   activate)
Value:
{ \
vlc_video_sub_filter_open open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "sub filter", 0 )

◆ set_callback_sub_source

#define set_callback_sub_source (   activate,
  priority 
)
Value:
{ \
vlc_video_sub_source_open open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "sub source", priority )

◆ set_callback_text_renderer

#define set_callback_text_renderer (   activate,
  priority 
)
Value:
{ \
vlc_video_text_renderer_open open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "text renderer", priority )

◆ set_callback_video_blending

#define set_callback_video_blending (   activate,
  priority 
)
Value:
{ \
vlc_video_blending_open open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "video blending", priority )

◆ set_callback_video_converter

#define set_callback_video_converter (   activate,
  priority 
)
Value:
{ \
vlc_video_converter_open open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "video converter", priority )

◆ set_callback_video_filter

#define set_callback_video_filter (   activate)
Value:
{ \
vlc_video_filter_open open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "video filter", 0 )

◆ set_deinterlace_callback

#define set_deinterlace_callback (   activate)
Value:
{ \
vlc_open_deinterlace open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "video filter", 0 ) \
add_shortcut( "deinterlace" )

◆ VIDEO_FILTER_WRAPPER

#define VIDEO_FILTER_WRAPPER (   name)
Value:
static void name (filter_t *, picture_t *, picture_t *); \
VIDEO_FILTER_WRAPPER_CLOSE_FILT( name, NULL )
const char name[16]
Definition: httpd.c:1281
Structure describing a filter.
Definition: vlc_filter.h:216
Video picture.
Definition: vlc_picture.h:130

◆ VIDEO_FILTER_WRAPPER_CLOSE

#define VIDEO_FILTER_WRAPPER_CLOSE (   name,
  close_cb 
)
Value:
static void name (filter_t *, picture_t *, picture_t *); \
static void close_cb (filter_t *); \
VIDEO_FILTER_WRAPPER_CLOSE_FILT( name, close_cb )

◆ VIDEO_FILTER_WRAPPER_CLOSE_EXT

#define VIDEO_FILTER_WRAPPER_CLOSE_EXT (   name,
  close_cb 
)
Value:
void name (filter_t *, picture_t *, picture_t *); \
static void close_cb (filter_t *); \
VIDEO_FILTER_WRAPPER_CLOSE_FILT( name, close_cb )

◆ VIDEO_FILTER_WRAPPER_CLOSE_FILT

#define VIDEO_FILTER_WRAPPER_CLOSE_FILT (   name,
  close_cb 
)
Value:
static picture_t *name ## _Filter ( filter_t *p_filter, \
picture_t *p_pic ) \
{ \
picture_t *p_outpic = filter_NewPicture( p_filter ); \
if( p_outpic ) \
{ \
name( p_filter, p_pic, p_outpic ); \
picture_CopyProperties( p_outpic, p_pic ); \
} \
picture_Release( p_pic ); \
return p_outpic; \
} \
static const struct vlc_filter_operations name ## _ops = { \
.filter_video = name ## _Filter, .close = close_cb, \
};
static picture_t * filter_NewPicture(filter_t *p_filter)
This function will return a new picture usable by p_filter as an output buffer.
Definition: vlc_filter.h:259
Definition: vlc_filter.h:84

Create a picture_t *(*)( filter_t *, picture_t * ) compatible wrapper using a void (*)( filter_t *, picture_t *, picture_t * ) function.

Currently used by the chroma video filters

◆ VIDEO_FILTER_WRAPPER_EXT

#define VIDEO_FILTER_WRAPPER_EXT (   name)
Value:
void name (filter_t *, picture_t *, picture_t *); \
VIDEO_FILTER_WRAPPER_CLOSE_FILT( name, NULL )

Wrappers to use when the filter function is not a static function.

Typedef Documentation

◆ filter_chain_t

Filter chain management API The filter chain management API is used to dynamically construct filters and add them in a chain.

◆ filter_owner_t

◆ vlc_blender_t

◆ vlc_open_deinterlace

typedef int(* vlc_open_deinterlace) (filter_t *)

◆ vlc_video_blending_open

typedef int(* vlc_video_blending_open) (filter_t *)

◆ vlc_video_converter_open

typedef int(* vlc_video_converter_open) (filter_t *)

◆ vlc_video_filter_open

typedef int(* vlc_video_filter_open) (filter_t *)

◆ vlc_video_sub_filter_open

typedef int(* vlc_video_sub_filter_open) (filter_t *)

◆ vlc_video_sub_source_open

typedef int(* vlc_video_sub_source_open) (filter_t *)

◆ vlc_video_text_renderer_open

typedef int(* vlc_video_text_renderer_open) (filter_t *)

Function Documentation

◆ filter_AddProxyCallbacks()

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.

Parameters
restart_cba vlc_callback_t to call if the event means restarting the filter (i.e. an event on a non-command variable)

References config_GetType(), name, TriggerFilterCallback(), var_AddCallback(), var_Create(), var_GetAllNames(), var_Type(), VLC_OBJECT, VLC_VAR_DOINHERIT, and VLC_VAR_ISCOMMAND.

◆ filter_Blend()

int filter_Blend ( vlc_blender_t p_blend,
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.

The input picture is not modified and not released.

References vlc_filter_operations::blend_video, filter_t::ops, filter_t::p_module, VLC_EGENERIC, and VLC_SUCCESS.

Referenced by picture_BlendSubpicture().

◆ filter_chain_AppendConverter()

int filter_chain_AppendConverter ( filter_chain_t chain,
const es_format_t fmt_out 
)

Append a conversion to the chain.

Parameters
chainfilter chain to append a filter to
fmt_outfilter output format
Return values
0on success
-1on failure

References filter_chain_t::conv_cap, and filter_chain_AppendInner().

Referenced by ChangeFilters(), ConvertRGB32AndBlend(), and VoutDisplayCreateRender().

◆ filter_chain_AppendFilter()

filter_t * filter_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.

Parameters
chainfilter chain to append a filter to
namefilter name
fmt_outfilter output format
Returns
a pointer to the filter or NULL on error

References filter_chain_t::filter_cap, filter_chain_AppendInner(), and name.

Referenced by ChangeFilters(), and filter_chain_AppendFromString().

◆ filter_chain_AppendFromString()

int filter_chain_AppendFromString ( filter_chain_t chain,
const char *  str 
)

Append new filter to filter chain from string.

Parameters
chainfilter chain to append a filter to
strfilters chain nul-terminated string

References config_ChainCreate(), config_ChainDestroy(), chained_filter_t::filter, filter_chain_AppendFilter(), filter_chain_DeleteFilter(), filter_chain_t::last, msg_Err, name, filter_chain_t::obj, and VLC_EGENERIC.

Referenced by spu_PutSubpicture(), and spu_Render().

◆ filter_chain_Clear()

void filter_chain_Clear ( filter_chain_t p_chain)

Remove all existing filters.

Parameters
p_chainpointer to filter chain

References chained_filter_t::filter, filter_chain_DeleteFilter(), and filter_chain_t::first.

Referenced by filter_chain_Delete(), filter_chain_Reset(), spu_PutSubpicture(), spu_Render(), and vout_SetDisplayFormat().

◆ filter_chain_Delete()

void filter_chain_Delete ( filter_chain_t p_chain)

Delete filter chain will delete all filters in the chain and free all allocated data.

The pointer to the filter chain is then no longer valid.

Parameters
p_chainpointer to filter chain

Delete filter chain will delete all filters in the chain and free all allocated data.

References es_format_Clean(), filter_chain_Clear(), filter_chain_t::fmt_in, filter_chain_t::fmt_out, filter_chain_t::vctx_in, and vlc_video_context_Release().

Referenced by ConvertRGB32AndBlend(), spu_Cleanup(), vout_display_Delete(), vout_display_Reset(), vout_ReleaseDisplay(), vout_Start(), and VoutDisplayCreateRender().

◆ filter_chain_DeleteFilter()

void filter_chain_DeleteFilter ( filter_chain_t chain,
filter_t filter 
)

Delete filter from filter chain.

This function also releases the filter object and unloads the filter modules. The pointer to p_filter is no longer valid after this function successfully returns.

Parameters
chainfilter chain to remove the filter from
filterfilter to remove from the chain and delete

References es_format_Clean(), filter_Close(), FilterDeletePictures(), filter_chain_t::first, filter_t::fmt_in, filter_t::fmt_out, filter_chain_t::last, module_unneed, msg_Dbg, chained_filter_t::next, filter_chain_t::obj, filter_t::p_module, chained_filter_t::pending, chained_filter_t::prev, and vlc_object_delete.

Referenced by filter_chain_AppendFromString(), and filter_chain_Clear().

◆ filter_chain_ForEach()

int filter_chain_ForEach ( filter_chain_t chain,
int(*)(filter_t *, void *)  cb,
void *  opaque 
)

◆ filter_chain_GetFmtOut()

const es_format_t * filter_chain_GetFmtOut ( const filter_chain_t chain)

Get last output format of the last element in the filter chain.

Parameters
chainfilter chain

References chained_filter_t::filter, filter_t::fmt_out, filter_chain_t::fmt_out, and filter_chain_t::last.

Referenced by ChangeFilters().

◆ filter_chain_GetVideoCtxOut()

vlc_video_context * filter_chain_GetVideoCtxOut ( const filter_chain_t chain)

Get last output video context of the last element in the filter chain.

Note
doesn't create change the reference count
Parameters
chainfilter chain

References chained_filter_t::filter, filter_chain_t::fmt_in, filter_chain_t::fmt_out, video_format_t::i_chroma, filter_chain_t::last, filter_chain_t::vctx_in, filter_t::vctx_out, and es_format_t::video.

Referenced by ChangeFilters().

◆ filter_chain_IsEmpty()

bool filter_chain_IsEmpty ( const filter_chain_t chain)

Checks if the filter chain is empty.

Parameters
chainpointer to filter chain
Returns
true if and only if there are no filters in this filter chain

References filter_chain_t::first.

Referenced by ChangeFilters(), spu_PutSubpicture(), vout_IsDisplayFiltered(), and VoutVideoFilterStaticNewPicture().

◆ filter_chain_MouseFilter()

int filter_chain_MouseFilter ( filter_chain_t ,
struct vlc_mouse_t ,
const struct vlc_mouse_t  
)

Apply the filter chain to a mouse state.

It will be applied from the output to the input. It makes sense only for a video filter chain.

The vlc_mouse_t* pointers may be the same.

◆ filter_chain_NewSPU()

filter_chain_t * filter_chain_NewSPU ( vlc_object_t obj,
const char *  cap 
)

Create new filter chain.

Parameters
objpointer to a vlc object
psz_capabilityvlc capability of filters in filter chain
Returns
pointer to a filter chain

Create new filter chain.

References filter_chain_NewInner(), and SPU_ES.

◆ filter_chain_NewVideo()

filter_chain_t * filter_chain_NewVideo ( vlc_object_t obj,
bool  change,
const filter_owner_t owner 
)

Creates a new video filter chain.

Parameters
objpointer to parent VLC object
changewhether to allow changing the output format
ownerowner video buffer callbacks
Returns
new filter chain, or NULL on error

◆ filter_chain_Reset()

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.

Parameters
p_chainpointer to filter chain
p_fmt_innew fmt_in params \paramt vctx_in new input video context
p_fmt_outnew fmt_out params

Reset filter chain will delete all filters in the chain and reset p_fmt_in and p_fmt_out to the new values.

References es_format_Clean(), es_format_Copy(), filter_chain_Clear(), filter_chain_t::fmt_in, filter_chain_t::fmt_out, filter_chain_t::vctx_in, vlc_video_context_Hold(), and vlc_video_context_Release().

Referenced by ChangeFilters(), ConvertRGB32AndBlend(), and VoutDisplayCreateRender().

◆ filter_chain_SubFilter()

subpicture_t * filter_chain_SubFilter ( filter_chain_t chain,
subpicture_t subpic 
)

Apply filter chain to subpictures.

Parameters
chainfilter chain
subpicsubpicture to apply filters on
Returns
modified subpicture after applying all subpicture filters

References vlc_filter_operations::filter_sub, filter_chain_t::first, chained_filter_t::next, and filter_t::ops.

Referenced by spu_PutSubpicture().

◆ filter_chain_SubSource()

void filter_chain_SubSource ( filter_chain_t chain,
spu_t spu,
vlc_tick_t  display_date 
)

Generate subpictures from a chain of subpicture source "filters".

Parameters
chainfilter chain
display_dateof subpictures

References filter_chain_t::first, chained_filter_t::next, filter_t::ops, vlc_filter_operations::source_sub, and spu_PutSubpicture().

Referenced by spu_Render().

◆ filter_chain_VideoFilter()

picture_t * filter_chain_VideoFilter ( filter_chain_t chain,
picture_t pic 
)

Apply the filter chain to a video picture.

Parameters
chainpointer to filter chain
picpicture to apply filters to
Returns
modified picture after applying all video filters

References FilterChainVideoFilter(), filter_chain_t::first, filter_chain_t::last, chained_filter_t::prev, vlc_picture_chain_IsEmpty(), and vlc_picture_chain_PopFront().

Referenced by ConvertRGB32AndBlend(), FilterPictureInteractive(), PreparePicture(), and vout_ConvertForDisplay().

◆ filter_chain_VideoFlush()

void filter_chain_VideoFlush ( filter_chain_t p_chain)

◆ filter_ChangeViewpoint()

static void filter_ChangeViewpoint ( filter_t p_filter,
const vlc_viewpoint_t vp 
)
inlinestatic

◆ filter_Close()

◆ filter_ConfigureBlend()

int filter_ConfigureBlend ( vlc_blender_t p_blend,
int  i_dst_width,
int  i_dst_height,
const video_format_t p_src 
)

◆ filter_DeleteBlend()

void filter_DeleteBlend ( vlc_blender_t p_blend)

It destroys a blend filter created by filter_NewBlend.

References filter_Close(), module_unneed, filter_t::p_module, and vlc_object_delete.

Referenced by ConvertRGB32AndBlend(), PrerenderPicture(), and vout_ReleaseDisplay().

◆ filter_DelProxyCallbacks()

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.

Parameters
restart_cbthe same vlc_callback_t passed to filter_AddProxyCallbacks

References name, TriggerFilterCallback(), var_DelCallback(), var_Destroy(), var_GetAllNames(), var_Type(), VLC_OBJECT, and VLC_VAR_ISCOMMAND.

◆ filter_DrainAudio()

static block_t * filter_DrainAudio ( filter_t p_filter)
inlinestatic

This function will drain, then flush an audio filter.

References vlc_filter_operations::drain_audio, and filter_t::ops.

Referenced by aout_FiltersPipelineDrain().

◆ filter_Flush()

static void filter_Flush ( filter_t p_filter)
inlinestatic

Flush a filter.

This function will flush the state of a filter (audio or video).

References vlc_filter_operations::flush, and filter_t::ops.

Referenced by aout_FiltersPipelineFlush(), filter_chain_VideoFlush(), and vlc_audio_meter_Flush().

◆ filter_GetInputAttachments()

static int filter_GetInputAttachments ( filter_t p_filter,
input_attachment_t ***  ppp_attachment,
int *  pi_attachment 
)
inlinestatic

This function gives all input attachments at once.

You MUST release the returned values

References filter_t::owner, filter_owner_t::pf_get_attachments, and VLC_EGENERIC.

◆ filter_HoldDecoderDevice()

static vlc_decoder_device * filter_HoldDecoderDevice ( filter_t p_filter)
inlinestatic

◆ filter_HoldDecoderDeviceType()

◆ filter_NewBlend()

vlc_blender_t * filter_NewBlend ( vlc_object_t p_this,
const video_format_t p_dst_chroma 
)

It creates a blend filter.

Only the chroma properties of the dest format is used (chroma type, rgb masks and shifts)

References es_format_Init(), filter_t::fmt_in, filter_t::fmt_out, video_format_t::i_bmask, video_format_t::i_chroma, es_format_t::i_codec, video_format_t::i_gmask, video_format_t::i_rmask, filter_t::p_module, es_format_t::video, VIDEO_ES, and vlc_custom_create.

Referenced by ConvertRGB32AndBlend(), and PrerenderPicture().

◆ filter_NewPicture()

static picture_t * filter_NewPicture ( filter_t p_filter)
inlinestatic

This function will return a new picture usable by p_filter as an output buffer.

You have to release it using picture_Release or by returning it to the caller as a ops->filter_video return value. Provided for convenience.

Parameters
p_filterfilter_t object
Returns
new picture on success or NULL on failure

References filter_video_callbacks::buffer_new, filter_t::fmt_out, msg_Warn, filter_t::owner, picture_NewFromFormat(), es_format_t::video, and filter_owner_t::video.

Referenced by filter_chain_VideoBufferNew().

◆ filter_NewSubpicture()

static subpicture_t * filter_NewSubpicture ( filter_t p_filter)
inlinestatic

This function will return a new subpicture usable by p_filter as an output buffer.

You have to release it using subpicture_Delete or by returning it to the caller as a ops->sub_source return value. Provided for convenience.

Parameters
p_filterfilter_t object
Returns
new subpicture

References filter_subpicture_callbacks::buffer_new, msg_Warn, filter_t::owner, and filter_owner_t::sub.

◆ filter_SendAudioLoudness()

static void filter_SendAudioLoudness ( filter_t filter,
const struct vlc_audio_loudness loudness 
)
inlinestatic