VLC 4.0.0-dev
No Matches
Collaboration diagram for Sub-picture channels:


 On-screen display


file  vlc_spu.h

Data Structures

struct  spu_t
 Subpicture unit descriptor. More...


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


typedef struct spu_private_t spu_private_t


spu_tspu_Create (vlc_object_t *, vout_thread_t *)
 Creates the subpicture unit.
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.
struct vlc_render_subpicturespu_Render (spu_t *spu, const vlc_fourcc_t *p_chroma_list, const video_format_t *p_fmt_dst, const video_format_t *p_fmt_src, vlc_tick_t system_now, vlc_tick_t pts, bool ignore_osd, bool external_scale)
 This function will return an unique subpicture containing the OSD and subtitles visible at the requested date.
ssize_t spu_RegisterChannel (spu_t *)
 It registers a new SPU channel.
void spu_UnregisterChannel (spu_t *, size_t)
void spu_ClearChannel (spu_t *, size_t)
 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

Macro Definition Documentation

◆ spu_Create

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

Typedef Documentation

◆ spu_private_t

typedef struct spu_private_t spu_private_t

Function Documentation

◆ spu_ChangeFilters()

void spu_ChangeFilters ( spu_t spu,
const char *  filters 

◆ spu_ChangeSources()

void spu_ChangeSources ( spu_t spu,
const char *  filters 

◆ spu_ClearChannel()

void spu_ClearChannel ( spu_t spu,
size_t  channel_id 

◆ spu_Create()

◆ spu_Destroy()

void spu_Destroy ( spu_t spu)

◆ spu_PutSubpicture()

◆ spu_RegisterChannel()

ssize_t spu_RegisterChannel ( spu_t spu)

It registers a new SPU channel.

References spu_RegisterChannelInternal().

Referenced by SubSourceInit(), and vout_RegisterSubpictureChannel().

◆ spu_Render()

struct vlc_render_subpicture * spu_Render ( spu_t spu,
const vlc_fourcc_t p_chroma_list,
const video_format_t p_fmt_dst,
const video_format_t p_fmt_src,
vlc_tick_t  system_now,
vlc_tick_t  pts,
bool  ignore_osd,
bool  external_scale 

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

sputhe subpicture unit instance
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.
system_nowthe reference current time
ptsthe timestamp of the rendered frame
ignore_osdwhether we display the OSD or not
external_scalewhether scaling picture is done by the client or this function

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

References ARRAY_SIZE, subpicture_t::b_subtitle, filter_chain_AppendFromString(), filter_chain_Clear(), filter_chain_ForEach(), video_format_t::i_chroma, subpicture_t::i_start, subpicture_t::i_stop, spu_private_t::lock, spu_t::p, spu_private_t::source_chain, spu_private_t::source_chain_update, SPU_CHROMALIST_COUNT, spu_entry_EnsureScaledSize(), spu_PrerenderSync(), spu_PrerenderWake(), spu_SelectSubpictures(), SpuRenderCmp(), SpuRenderSubpictures(), subpicture_Update(), SubSourceAddProxyCallbacks(), SubSourceClean(), SubSourceDelProxyCallbacks(), SubSourceGenerate(), SubSourceInit(), unlikely, VLC_CODEC_ABGR, VLC_CODEC_ARGB, VLC_CODEC_BGRA, VLC_CODEC_RGBA, VLC_CODEC_YUVA, VLC_CODEC_YUVP, vlc_fourcc_IsYUV(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and spu_private_t::vout.

Referenced by RenderSPUs().

◆ spu_UnregisterChannel()