VLC 4.0.0-dev
Loading...
Searching...
No Matches

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

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 )
int(* vlc_video_sub_filter_open)(filter_t *)
Definition vlc_filter.h:151

◆ 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 )
int(* vlc_video_sub_source_open)(filter_t *)
Definition vlc_filter.h:152

◆ 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 )
int(* vlc_video_text_renderer_open)(filter_t *)
Definition vlc_filter.h:150

◆ 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 )
int(* vlc_video_blending_open)(filter_t *)
Definition vlc_filter.h:153

◆ 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 )
int(* vlc_video_converter_open)(filter_t *)
Definition vlc_filter.h:148

◆ 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 )
int(* vlc_video_filter_open)(filter_t *)
Definition vlc_filter.h:149

◆ 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" )
int(* vlc_open_deinterlace)(filter_t *)
Definition vlc_filter.h:147

◆ 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:1298
Structure describing a filter.
Definition vlc_filter.h:219
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:262
Definition vlc_filter.h:84
picture_t *(* filter_video)(filter_t *, picture_t *)
Filter a picture (video filter)
Definition vlc_filter.h:89

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
objthe object to add the callback proxy to
filterthe filter object for which the callback will be proxified
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
VLC_SUCCESSon success

References filter_chain_t::conv_cap, filter_chain_AppendInner(), VLC_EGENERIC, and VLC_SUCCESS.

Referenced by ChangeFilters(), ConvertRGBAAndBlend(), and VoutSetupConverter().

◆ 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
cfgthe configuration chain for the filter
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::filter_list, msg_Err, name, filter_chain_t::obj, VLC_EGENERIC, and vlc_list_last_entry_or_null.

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(), filter_chain_t::filter_list, and vlc_list_foreach.

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

◆ filter_chain_Delete()

void filter_chain_Delete ( filter_chain_t 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
chainpointer to filter chain

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 ConvertRGBAAndBlend(), spu_Cleanup(), vout_ReleaseDisplay(), vout_Start(), and VoutConverterRelease().

◆ 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
Note
the filter must be created with filter_chain_AppendConverter() or filter_chain_AppendFilter().

References container_of, es_format_Clean(), filter_Close(), FilterDeletePictures(), filter_t::fmt_in, filter_t::fmt_out, module_unneed, msg_Dbg, chained_filter_t::node, filter_chain_t::obj, filter_t::p_module, chained_filter_t::pending, vlc_list_remove(), 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_chain_t::filter_list, filter_t::fmt_out, filter_chain_t::fmt_out, and vlc_list_last_entry_or_null.

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::filter_list, filter_chain_t::fmt_in, filter_chain_t::fmt_out, filter_chain_t::vctx_in, filter_t::vctx_out, es_format_t::video, video_format_IsSameChroma(), and vlc_list_last_entry_or_null.

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::filter_list, and vlc_list_is_empty().

Referenced by ChangeFilters(), spu_PutSubpicture(), 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 *  psz_capability 
)

Create new filter chain.

Parameters
objpointer to a vlc object
psz_capabilityvlc capability of filters in filter chain
Returns
pointer to a 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
vctx_innew 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(), ConvertRGBAAndBlend(), and VoutSetupConverter().

◆ 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 container_of, vlc_list_it::current, filter_chain_t::filter_list, FilterSingleChainedFilter(), chained_filter_t::pending, vlc_list_foreach, vlc_list_it_continue(), vlc_list_it_next(), vlc_list_reverse_foreach, and vlc_picture_chain_PopFront().

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

◆ filter_chain_VideoFlush()

◆ 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 ConvertRGBAAndBlend(), 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
objthe object to remove the callback proxy from
filterthe filter object for which the callback was proxified
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_chroma, es_format_t::i_codec, filter_t::p_module, unlikely, es_format_t::video, VIDEO_ES, and vlc_custom_create.

Referenced by ConvertRGBAAndBlend(), 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