VLC  3.0.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
Subpicture Unit

This module describes the programming interface for the subpicture unit. More...

Data Structures

struct  spu_t
 Subpicture unit descriptor. More...

Macros

#define SPU_DEFAULT_CHANNEL   (1)
#define spu_Create(a)   spu_Create(VLC_OBJECT(a))

Typedefs

typedef struct spu_private_t spu_private_t

Functions

spu_tspu_Create (vlc_object_t *)
void spu_Destroy (spu_t *)
 Destroy the subpicture unit.
void spu_PutSubpicture (spu_t *, subpicture_t *)
 This function sends a subpicture to the spu_t core.
subpicture_tspu_Render (spu_t *, const vlc_fourcc_t *p_chroma_list, const video_format_t *p_fmt_dst, const video_format_t *p_fmt_src, mtime_t render_subtitle_date, mtime_t render_osd_date, bool ignore_osd)
 This function will return an unique subpicture containing the OSD and subtitles visibles at the requested date.
int spu_RegisterChannel (spu_t *)
 It registers a new SPU channel.
void spu_ClearChannel (spu_t *, int)
 It clears all subpictures associated to a SPU channel.
void spu_ChangeSources (spu_t *, const char *)
 It changes the sub sources list.
void spu_ChangeFilters (spu_t *, const char *)
 It changes the sub filters list.

Detailed Description

This module describes the programming interface for the subpicture unit.

It includes functions allowing to create/destroy an spu, and render subpictures.

Macro Definition Documentation

#define spu_Create (   a)    spu_Create(VLC_OBJECT(a))

Referenced by VoutCreate().

#define SPU_DEFAULT_CHANNEL   (1)

Typedef Documentation

typedef struct spu_private_t spu_private_t

Function Documentation

void spu_ChangeFilters ( spu_t ,
const char *   
)
void spu_ChangeSources ( spu_t ,
const char *   
)
void spu_ClearChannel ( spu_t ,
int   
)
spu_t* spu_Create ( vlc_object_t )
void spu_Destroy ( spu_t spu)
void spu_PutSubpicture ( spu_t spu,
subpicture_t subpic 
)

This function sends a subpicture to the spu_t core.

You cannot use the provided subpicture anymore. The spu_t core will destroy it at its convenience.

This function sends a subpicture to the spu_t core.

Remove the reservation flag of a subpicture, which will cause it to be ready for display.

Parameters
sputhe subpicture unit object
subpicthe subpicture to display

References spu_private_t::filter_chain, filter_chain_AppendFromString(), filter_chain_GetLength(), spu_private_t::filter_chain_lock, filter_chain_Reset(), filter_chain_SubFilter(), spu_private_t::filter_chain_update, spu_private_t::heap, subpicture_t::i_channel, spu_private_t::lock, msg_Err, spu_t::p, subpicture_region_t::p_next, subpicture_t::p_region, spu_private_t::source_chain_update, spu_ClearChannel(), SPU_DEFAULT_CHANNEL, SpuHeapPush(), subpicture_Delete(), vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by filter_chain_SubSource(), and ThreadDisplaySubpicture().

int spu_RegisterChannel ( spu_t )
subpicture_t* spu_Render ( spu_t ,
const vlc_fourcc_t p_chroma_list,
const video_format_t p_fmt_dst,
const video_format_t p_fmt_src,
mtime_t  render_subtitle_date,
mtime_t  render_osd_date,
bool  ignore_osd 
)

This function will return an unique subpicture containing the OSD and subtitles visibles at the requested date.

Parameters
p_chroma_listis a list of supported chroma for the output (can be NULL)
p_fmt_dstis the format of the picture on which the return subpicture will be rendered.
p_fmt_srcis the format of the original(source) video.

The returned value if non NULL must be released by subpicture_Delete().

References subpicture_t::b_subtitle, filter_chain_AppendFromString(), filter_chain_GetLength(), filter_chain_Reset(), filter_chain_SubSource(), video_format_t::i_chroma, spu_private_t::lock, spu_t::p, spu_private_t::source_chain, spu_private_t::source_chain_lock, spu_private_t::source_chain_update, SpuRenderSubpictures(), SpuSelectSubpictures(), subpicture_Update(), SubpictureCmp(), VLC_CODEC_ARGB, VLC_CODEC_RGBA, VLC_CODEC_YUVA, VLC_CODEC_YUVP, vlc_fourcc_IsYUV(), vlc_mutex_lock(), vlc_mutex_unlock(), and VOUT_MAX_SUBPICTURES.

Referenced by ThreadDisplayRenderPicture().