|
VLC
2.1.0-git
|

Data Structures | |
| struct | filter_chain_allocator_t |
| struct | chained_filter_t |
| struct | filter_chain_t |
Typedefs | |
| typedef struct chained_filter_t | chained_filter_t |
Functions | |
| static chained_filter_t * | chained (filter_t *filter) |
| static int | AllocatorInit (const filter_chain_allocator_t *, chained_filter_t *) |
| static void | AllocatorClean (const filter_chain_allocator_t *, chained_filter_t *) |
| static bool | IsInternalVideoAllocator (chained_filter_t *) |
| static int | InternalVideoInit (filter_t *, void *) |
| static void | InternalVideoClean (filter_t *) |
| static filter_t * | filter_chain_AppendFilterInternal (filter_chain_t *, const char *, config_chain_t *, const es_format_t *, const es_format_t *) |
| Local prototypes. | |
| static int | filter_chain_AppendFromStringInternal (filter_chain_t *, const char *) |
| static int | filter_chain_DeleteFilterInternal (filter_chain_t *, filter_t *) |
| static int | UpdateBufferFunctions (filter_chain_t *p_chain) |
| This function should be called after every filter chain change. | |
| static void | FilterDeletePictures (filter_t *, picture_t *) |
| filter_chain_t * | filter_chain_New (((vlc_object_t *)(vlc_object_t *p_this)), const char *psz_capability, bool b_allow_fmt_out_change, int(*pf_buffer_allocation_init)(filter_t *, void *), void(*pf_buffer_allocation_clean)(filter_t *), void *p_buffer_allocation_data) |
| Filter chain initialisation. | |
| void | filter_chain_Delete (filter_chain_t *p_chain) |
| Filter chain destruction. | |
| void | filter_chain_Reset (filter_chain_t *p_chain, const es_format_t *p_fmt_in, const es_format_t *p_fmt_out) |
| Filter chain reinitialisation. | |
| filter_t * | filter_chain_AppendFilter (filter_chain_t *p_chain, const char *psz_name, config_chain_t *p_cfg, const es_format_t *p_fmt_in, const es_format_t *p_fmt_out) |
| Append filter to the end of the chain. | |
| int | filter_chain_AppendFromString (filter_chain_t *p_chain, const char *psz_string) |
| Append new filter to filter chain from string. | |
| int | filter_chain_DeleteFilter (filter_chain_t *p_chain, filter_t *p_filter) |
| Delete filter from filter chain. | |
| int | filter_chain_GetLength (filter_chain_t *p_chain) |
| Get the number of filters in the filter chain. | |
| const es_format_t * | filter_chain_GetFmtOut (filter_chain_t *p_chain) |
| Get last p_fmt_out in the chain. | |
| static picture_t * | FilterChainVideoFilter (chained_filter_t *f, picture_t *p_pic) |
| picture_t * | filter_chain_VideoFilter (filter_chain_t *p_chain, picture_t *p_pic) |
| Apply the filter chain to a video picture. | |
| void | filter_chain_VideoFlush (filter_chain_t *p_chain) |
| Flush a video filter chain. | |
| block_t * | filter_chain_AudioFilter (filter_chain_t *p_chain, block_t *p_block) |
| Apply the filter chain to a audio block. | |
| void | filter_chain_SubSource (filter_chain_t *p_chain, mtime_t display_date) |
| Apply filter chain to subpictures. | |
| subpicture_t * | filter_chain_SubFilter (filter_chain_t *p_chain, subpicture_t *p_subpic) |
| Apply filter chain to subpictures. | |
| int | filter_chain_MouseFilter (filter_chain_t *p_chain, vlc_mouse_t *p_dst, const vlc_mouse_t *p_src) |
| Apply the filter chain to a mouse state. | |
| int | filter_chain_MouseEvent (filter_chain_t *p_chain, const vlc_mouse_t *p_mouse, const video_format_t *p_fmt) |
| Inform the filter chain of mouse state. | |
| static int | UpdateVideoBufferFunctions (filter_chain_t *p_chain) |
| Internal chain buffer handling. | |
| static picture_t * | VideoBufferNew (filter_t *p_filter) |
| static void | VideoBufferDelete (filter_t *p_filter, picture_t *p_picture) |
Variables | |
| static const filter_chain_allocator_t | internal_video_allocator |
| typedef struct chained_filter_t chained_filter_t |
|
static |
References chained_filter_t::filter, and filter_chain_allocator_t::pf_clean.
Referenced by filter_chain_DeleteFilterInternal(), and UpdateVideoBufferFunctions().
|
static |
< No error
References chained_filter_t::filter, filter_chain_allocator_t::p_data, filter_chain_allocator_t::pf_init, and VLC_SUCCESS.
Referenced by filter_chain_AppendFilterInternal(), and UpdateVideoBufferFunctions().
|
inlinestatic |
References chained_filter_t::filter.
Referenced by filter_chain_DeleteFilterInternal().
| filter_t* filter_chain_AppendFilter | ( | filter_chain_t * | , |
| const char * | , | ||
| config_chain_t * | , | ||
| const es_format_t * | , | ||
| const es_format_t * | |||
| ) |
Append filter to the end of the chain.
| p_chain | pointer to filter chain |
| psz_name | name of filter |
| p_cfg | |
| p_fmt_in | input es_format_t |
| p_fmt_out | output es_format_t |
References filter_chain_AppendFilterInternal(), msg_Err, and UpdateBufferFunctions().
Referenced by ThreadChangeFilters(), and VoutDisplayCreateRender().
|
static |
Local prototypes.
References filter_chain_t::allocator, AllocatorInit(), filter_t::b_allow_fmt_out_change, filter_chain_t::b_allow_fmt_out_change, es_format_Clean(), es_format_Copy(), chained_filter_t::filter, filter_chain_t::first, filter_t::fmt_in, filter_chain_t::fmt_in, filter_t::fmt_out, filter_chain_t::fmt_out, filter_chain_t::last, filter_chain_t::length, module_get_name(), module_need, module_unneed, chained_filter_t::mouse, msg_Dbg, msg_Err, chained_filter_t::next, filter_t::p_cfg, filter_t::p_module, filter_chain_t::p_this, chained_filter_t::pending, chained_filter_t::prev, filter_chain_t::psz_capability, vlc_custom_create, vlc_mouse_Init(), and vlc_object_release.
Referenced by filter_chain_AppendFilter(), and filter_chain_AppendFromStringInternal().
| int filter_chain_AppendFromString | ( | filter_chain_t * | , |
| const char * | |||
| ) |
Append new filter to filter chain from string.
| p_chain | pointer to filter chain |
| psz_string | string of filters |
References filter_chain_AppendFromStringInternal(), and UpdateBufferFunctions().
Referenced by spu_PutSubpicture(), and spu_Render().
|
static |
References config_ChainCreate(), filter_chain_AppendFilterInternal(), filter_chain_DeleteFilterInternal(), msg_Err, filter_chain_t::p_this, and psz_name.
Referenced by filter_chain_AppendFromString().
| block_t* filter_chain_AudioFilter | ( | filter_chain_t * | , |
| block_t * | |||
| ) |
Apply the filter chain to a audio block.
| p_chain | pointer to filter chain |
| p_block | audio frame to apply filters on |
References filter_chain_t::first, and chained_filter_t::next.
| void filter_chain_Delete | ( | filter_chain_t * | p_chain | ) |
Filter chain destruction.
Delete filter chain will delete all filters in the chain and free all allocated data.
References es_format_Clean(), filter_chain_Reset(), filter_chain_t::fmt_in, and filter_chain_t::fmt_out.
Referenced by spu_Destroy(), ThreadStop(), and VoutDisplayDestroyRender().
| int filter_chain_DeleteFilter | ( | filter_chain_t * | , |
| filter_t * | |||
| ) |
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.
| p_chain | pointer to filter chain |
| p_filter | pointer to filter object |
References filter_chain_DeleteFilterInternal(), and UpdateBufferFunctions().
|
static |
< No error
References filter_chain_t::allocator, AllocatorClean(), chained(), chained_filter_t::filter, FilterDeletePictures(), filter_chain_t::first, IsInternalVideoAllocator(), filter_chain_t::last, filter_chain_t::length, module_unneed, chained_filter_t::mouse, msg_Dbg, chained_filter_t::next, filter_t::p_module, filter_chain_t::p_this, chained_filter_t::pending, chained_filter_t::prev, vlc_object_release, and VLC_SUCCESS.
Referenced by filter_chain_AppendFromStringInternal(), filter_chain_DeleteFilter(), and filter_chain_Reset().
| const es_format_t* filter_chain_GetFmtOut | ( | filter_chain_t * | ) |
Get last p_fmt_out in the chain.
| p_chain | pointer to filter chain |
References filter_chain_t::b_allow_fmt_out_change, chained_filter_t::filter, filter_t::fmt_out, filter_chain_t::fmt_out, and filter_chain_t::last.
Referenced by ThreadChangeFilters().
| int filter_chain_GetLength | ( | filter_chain_t * | ) |
Get the number of filters in the filter chain.
| p_chain | pointer to filter chain |
References filter_chain_t::length.
Referenced by spu_PutSubpicture(), vout_FilterDisplay(), and VoutVideoFilterStaticNewPicture().
| int filter_chain_MouseEvent | ( | filter_chain_t * | , |
| const vlc_mouse_t * | , | ||
| const video_format_t * | |||
| ) |
Inform the filter chain of mouse state.
It makes sense only for a sub source chain.
< Unspecified error
< No error
References filter_chain_t::first, chained_filter_t::next, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by spu_ProcessMouse().
| int filter_chain_MouseFilter | ( | filter_chain_t * | , |
| vlc_mouse_t * | , | ||
| const 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.
< Unspecified error
< No error
References filter_chain_t::last, chained_filter_t::prev, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by vout_SendDisplayEventMouse().
| filter_chain_t* filter_chain_New | ( | ((vlc_object_t *)(vlc_object_t *p_this)) | , |
| const char * | psz_capability, | ||
| bool | b_allow_fmt_out_change, | ||
| int(*)(filter_t *, void *) | pf_buffer_allocation_init, | ||
| void(*)(filter_t *) | pf_buffer_allocation_clean, | ||
| void * | p_buffer_allocation_data | ||
| ) |
Filter chain initialisation.
References filter_chain_t::allocator, filter_chain_t::b_allow_fmt_out_change, es_format_Init(), filter_chain_t::first, filter_chain_t::fmt_in, filter_chain_t::fmt_out, filter_chain_t::last, filter_chain_t::length, filter_chain_allocator_t::p_data, filter_chain_t::p_this, filter_chain_allocator_t::pf_clean, filter_chain_allocator_t::pf_init, filter_chain_t::psz_capability, and UNKNOWN_ES.
| void filter_chain_Reset | ( | filter_chain_t * | p_chain, |
| const es_format_t * | p_fmt_in, | ||
| const es_format_t * | p_fmt_out | ||
| ) |
Filter chain reinitialisation.
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(), chained_filter_t::filter, filter_chain_DeleteFilterInternal(), filter_chain_t::first, filter_chain_t::fmt_in, and filter_chain_t::fmt_out.
Referenced by filter_chain_Delete(), spu_PutSubpicture(), spu_Render(), ThreadChangeFilters(), and VoutDisplayCreateRender().
| subpicture_t* filter_chain_SubFilter | ( | filter_chain_t * | , |
| subpicture_t * | |||
| ) |
Apply filter chain to subpictures.
| p_chain | pointer to filter chain |
| p_subpicture | subpicture to apply filters on |
References filter_chain_t::first, and chained_filter_t::next.
Referenced by spu_PutSubpicture().
| void filter_chain_SubSource | ( | filter_chain_t * | , |
| mtime_t | |||
| ) |
Apply filter chain to subpictures.
| p_chain | pointer to filter chain |
| display_date | of subpictures |
References filter_chain_t::first, chained_filter_t::next, filter_chain_t::p_this, and spu_PutSubpicture().
Referenced by spu_Render().
| picture_t* filter_chain_VideoFilter | ( | filter_chain_t * | , |
| picture_t * | |||
| ) |
Apply the filter chain to a video picture.
| p_chain | pointer to filter chain |
| p_picture | picture to apply filters on |
References FilterChainVideoFilter(), filter_chain_t::first, filter_chain_t::last, picture_t::p_next, and chained_filter_t::prev.
Referenced by ThreadDisplayPreparePicture(), ThreadDisplayRenderPicture(), and vout_FilterDisplay().
| void filter_chain_VideoFlush | ( | filter_chain_t * | p_chain | ) |
Flush a video filter chain.
References filter_FlushPictures(), FilterDeletePictures(), filter_chain_t::first, and chained_filter_t::next.
Referenced by ThreadFilterFlush().
|
static |
References chained_filter_t::filter, FilterDeletePictures(), msg_Warn, chained_filter_t::next, picture_t::p_next, and chained_filter_t::pending.
Referenced by filter_chain_VideoFilter().
References filter_DeletePicture(), and picture_t::p_next.
Referenced by filter_chain_DeleteFilterInternal(), filter_chain_VideoFlush(), and FilterChainVideoFilter().
|
static |
|
static |
< No error
References VideoBufferDelete(), VideoBufferNew(), VLC_SUCCESS, and VLC_UNUSED.
|
static |
References chained_filter_t::filter, and VideoBufferNew().
Referenced by filter_chain_DeleteFilterInternal(), and UpdateVideoBufferFunctions().
|
static |
This function should be called after every filter chain change.
< No error
References filter_chain_t::psz_capability, UpdateVideoBufferFunctions(), and VLC_SUCCESS.
Referenced by filter_chain_AppendFilter(), filter_chain_AppendFromString(), and filter_chain_DeleteFilter().
|
static |
Internal chain buffer handling.
Last filter uses the filter chain's parent buffer allocation functions. All the other filters use internal functions. This makes it possible to have format changes between each filter without having to worry about the parent's picture heap format.
< Unspecified error
< No error
References filter_chain_t::allocator, AllocatorClean(), AllocatorInit(), filter_chain_t::first, IsInternalVideoAllocator(), filter_chain_t::last, chained_filter_t::next, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by UpdateBufferFunctions().
References picture_Release(), and VLC_UNUSED.
Referenced by InternalVideoInit().
References filter_t::fmt_out, msg_Err, picture_NewFromFormat(), and es_format_t::video.
Referenced by InternalVideoInit(), and IsInternalVideoAllocator().
|
static |
1.8.1.2