VLC 4.0.0-dev
|
Data Structures | |
struct | spu_render_entry_t |
struct | spu_render_vector |
struct | spu_channel |
struct | spu_channel_vector |
struct | spu_prerender_vector |
struct | subtitle_position_cache |
struct | subtitles_positions_vector |
struct | spu_private_t |
struct | spu_scale_t |
struct | spu_area_t |
A few area functions helpers. More... | |
struct | sub_source |
Macros | |
#define | SPU_CHROMALIST_COUNT 10 |
#define | SCALE_UNIT (10000) |
A few scale functions helpers. | |
Functions | |
static void | spu_PrerenderCancel (spu_private_t *, const subpicture_t *) |
static void | spu_channel_Init (struct spu_channel *channel, size_t id, enum vlc_vout_order order, vlc_clock_t *clock) |
static int | spu_channel_Push (struct spu_channel *channel, subpicture_t *subpic, vlc_tick_t orgstart, vlc_tick_t orgstop) |
static void | spu_Channel_CleanEntry (spu_private_t *sys, spu_render_entry_t *entry) |
static void | spu_channel_Clean (spu_private_t *sys, struct spu_channel *channel) |
static bool | spu_HasAlreadyExpired (vlc_tick_t start, vlc_tick_t stop, vlc_tick_t system_now) |
static void | spu_channel_EarlyRemoveLate (spu_private_t *sys, struct spu_channel *channel, vlc_tick_t system_now) |
static struct spu_channel * | spu_GetChannel (spu_t *spu, size_t channel_id, size_t *index) |
static ssize_t | spu_GetFreeChannelId (spu_t *spu, enum vlc_vout_order *order) |
static int | spu_get_attachments (filter_t *filter, input_attachment_t ***attachment_ptr, int *attachment_count) |
static filter_t * | SpuRenderCreateAndLoadText (spu_t *spu) |
static filter_t * | SpuRenderCreateAndLoadScale (vlc_object_t *object, vlc_fourcc_t src_chroma, vlc_fourcc_t dst_chroma, bool require_resize) |
static void | region_FixFmt (subpicture_region_t *region) |
static subpicture_region_t * | SpuRenderText (spu_t *spu, const subpicture_region_t *region, unsigned output_width, unsigned output_height, const vlc_fourcc_t *chroma_list) |
static spu_scale_t | spu_scale_create (unsigned w, unsigned h) |
static spu_scale_t | spu_scale_unit (void) |
static spu_scale_t | spu_scale_createq (uint64_t wn, uint64_t wd, uint64_t hn, uint64_t hd) |
static int | spu_scale_w (int v, const spu_scale_t s) |
static int | spu_scale_h (int v, const spu_scale_t s) |
static int | spu_invscale_w (int v, const spu_scale_t s) |
static int | spu_invscale_h (int v, const spu_scale_t s) |
static spu_area_t | spu_area_create (int x, int y, int w, int h, spu_scale_t s) |
static spu_area_t | spu_area_scaled (spu_area_t a) |
static spu_area_t | spu_area_unscaled (spu_area_t a, spu_scale_t s) |
static bool | spu_area_overlap (spu_area_t a, spu_area_t b) |
static void | SpuAreaFixOverlap (spu_area_t *dst, const spu_area_t *sub_array, size_t sub_count, int align) |
Avoid area overlapping. | |
static void | SpuAreaFitInside (spu_area_t *area, const unsigned boundary_width, const unsigned boundary_height) |
static void | subtitles_positions_StartUpdate (subtitles_positions_vector *subs) |
static void | subtitles_positions_FinishUpdate (subtitles_positions_vector *subs) |
static struct subtitle_position_cache * | subtitles_positions_FindRegion (const subtitles_positions_vector *subs, const subpicture_t *subpic, const subpicture_region_t *region) |
static void | subtitles_positions_AddRegion (subtitles_positions_vector *subs, const subpicture_t *subpic, const subpicture_region_t *region, const spu_area_t *area) |
static void | SpuRegionPlace (int *x, int *y, const subpicture_t *subpic, const subpicture_region_t *region, int i_align) |
Place a region. | |
static int | IntegerCmp (int64_t i0, int64_t i1) |
This function compares two 64 bits integers. | |
static int | SSizeCmp (ssize_t i0, ssize_t i1) |
static int | SpuRenderCmp (const void *s0, const void *s1) |
This function compares 2 subpictures using the following properties (ordered by priority) | |
static size_t | spu_channel_UpdateDates (struct spu_channel *channel, vlc_tick_t system_now) |
static bool | spu_render_entry_IsSelected (spu_render_entry_t *render_entry, size_t channel_id, vlc_tick_t render_date, bool ignore_osd) |
static spu_render_entry_t * | spu_SelectSubpictures (spu_t *spu, vlc_tick_t system_now, vlc_tick_t render_subtitle_date, bool ignore_osd, size_t *subpicture_count) |
static struct subpicture_region_rendered * | SpuRenderRegion (spu_t *spu, spu_area_t *dst_area, subpicture_t *subpic, enum vlc_vout_order channel_order, subpicture_region_t *region, const spu_scale_t scale_size, bool apply_scale, const vlc_fourcc_t *chroma_list, const unsigned output_width, const unsigned output_height, const spu_area_t *subtitle_area, size_t subtitle_area_count, vlc_tick_t render_date) |
It will transform the provided region into another region suitable for rendering. | |
static void | spu_UpdateOriginalSize (spu_t *spu, subpicture_t *subpic, const video_format_t *fmtsrc) |
static bool | IsSubpicInVideo (const subpicture_t *subpic, bool spu_in_full_window) |
static vlc_render_subpicture * | SpuRenderSubpictures (spu_t *spu, size_t i_subpicture, const spu_render_entry_t *p_entries, const vlc_fourcc_t *chroma_list, const video_format_t *fmt_dst, const video_format_t *fmt_src, bool spu_in_full_window, const vout_display_place_t *video_position, vlc_tick_t system_now, vlc_tick_t render_subtitle_date, bool external_scale) |
This function renders all sub picture units in the list. | |
static void | UpdateSPU (spu_t *spu, const vlc_spu_highlight_t *hl) |
static subpicture_t * | sub_new_buffer (filter_t *filter) |
static int | SubSourceInit (filter_t *filter, void *data) |
static int | SubSourceClean (filter_t *filter, void *data) |
static int | RestartSubFilterCallback (vlc_object_t *obj, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data) |
static int | SubFilterAddProxyCallbacks (filter_t *filter, void *opaque) |
static int | SubFilterDelProxyCallbacks (filter_t *filter, void *opaque) |
static int | RestartSubSourceCallback (vlc_object_t *obj, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data) |
static int | SubSourceAddProxyCallbacks (filter_t *filter, void *opaque) |
static int | SubSourceDelProxyCallbacks (filter_t *filter, void *opaque) |
static void | spu_PrerenderWake (spu_private_t *sys, const video_format_t *fmt_dst, const video_format_t *fmt_src, bool spu_in_full_window, const vout_display_place_t *video_position, const vlc_fourcc_t *chroma_list) |
static void | spu_PrerenderEnqueue (spu_private_t *sys, subpicture_t *p_subpic) |
static void | spu_PrerenderPause (spu_private_t *sys) |
static void | spu_PrerenderSync (spu_private_t *sys, const subpicture_t *p_subpic) |
static void | spu_PrerenderText (spu_t *spu, subpicture_t *p_subpic, const vlc_fourcc_t *chroma_list) |
static void * | spu_PrerenderThread (void *priv) |
static void | spu_Cleanup (spu_t *spu) |
void | spu_Destroy (spu_t *spu) |
Destroy the subpicture unit. | |
spu_t * | spu_Create (vlc_object_t *object, vout_thread_t *vout) |
Creates the subpicture unit. | |
void | spu_Attach (spu_t *spu, input_thread_t *input) |
Attach the SPU to an input. | |
void | spu_Detach (spu_t *spu) |
Detach the SPU from its attached input. | |
void | spu_SetClockDelay (spu_t *spu, size_t channel_id, vlc_tick_t delay) |
void | spu_SetClockRate (spu_t *spu, size_t channel_id, float rate) |
static int | SubFilter (filter_t *p_filter, void *opaque) |
void | spu_PutSubpicture (spu_t *spu, subpicture_t *subpic) |
Display a subpicture. | |
static int | SubSourceGenerate (filter_t *p_filter, void *opaque) |
Generate subpictures from a chain of subpicture source "filters". | |
vlc_render_subpicture * | spu_Render (spu_t *spu, const vlc_fourcc_t *chroma_list, const video_format_t *fmt_dst, const video_format_t *fmt_src, bool spu_in_full_window, const vout_display_place_t *video_position, vlc_tick_t system_now, vlc_tick_t render_subtitle_date, bool ignore_osd) |
ssize_t | spu_RegisterChannelInternal (spu_t *spu, vlc_clock_t *clock, enum vlc_vout_order *order) |
ssize_t | spu_RegisterChannel (spu_t *spu) |
It registers a new SPU channel. | |
void | spu_ClearChannel (spu_t *spu, size_t channel_id) |
It clears all subpictures associated to a SPU channel. | |
void | spu_UnregisterChannel (spu_t *spu, size_t channel_id) |
void | spu_ChangeSources (spu_t *spu, const char *filters) |
It changes the sub sources list. | |
void | spu_ChangeFilters (spu_t *spu, const char *filters) |
It changes the sub filters list. | |
void | spu_ChangeChannelOrderMargin (spu_t *spu, enum vlc_vout_order order, int margin) |
void | spu_SetHighlight (spu_t *spu, const vlc_spu_highlight_t *hl) |
Variables | |
static const struct filter_subpicture_callbacks | sub_cbs |
#define SCALE_UNIT (10000) |
A few scale functions helpers.
#define SPU_CHROMALIST_COUNT 10 |
|
static |
|
static |
References subpicture_region_t::b_absolute, subpicture_t::b_subtitle, subpicture_t::regions, and vlc_spu_regions_foreach_const.
Referenced by spu_PrerenderThread(), spu_Render(), and SpuRenderSubpictures().
|
static |
References COLOR_PRIMARIES_SRGB, COLOR_PRIMARIES_UNDEF, video_format_t::color_range, COLOR_RANGE_FULL, COLOR_RANGE_UNDEF, COLOR_SPACE_SRGB, COLOR_SPACE_UNDEF, subpicture_region_t::fmt, picture_t::format, subpicture_region_t::p_picture, video_format_t::primaries, video_format_t::space, video_format_t::transfer, TRANSFER_FUNC_SRGB, and TRANSFER_FUNC_UNDEF.
Referenced by SpuRenderSubpictures().
|
static |
References VLC_SUCCESS, VLC_UNUSED, and vout_ControlChangeSubFilters().
Referenced by SubFilterAddProxyCallbacks(), and SubFilterDelProxyCallbacks().
|
static |
References VLC_SUCCESS, VLC_UNUSED, and vout_ControlChangeSubSources().
Referenced by SubSourceAddProxyCallbacks(), and SubSourceDelProxyCallbacks().
|
static |
References spu_area_t::x.
Referenced by SpuRenderRegion().
|
static |
References spu_area_t::height, spu_area_scaled(), spu_area_t::width, spu_area_t::x, and spu_area_t::y.
Referenced by SpuAreaFixOverlap().
|
static |
References spu_scale_t::h, spu_area_t::height, spu_area_t::scale, SCALE_UNIT, spu_scale_h(), spu_scale_unit(), spu_scale_w(), spu_scale_t::w, spu_area_t::width, spu_area_t::x, and spu_area_t::y.
Referenced by spu_area_overlap(), spu_area_unscaled(), SpuAreaFitInside(), and SpuAreaFixOverlap().
|
static |
References spu_scale_t::h, spu_area_t::height, spu_area_t::scale, spu_area_scaled(), spu_invscale_h(), spu_invscale_w(), spu_scale_t::w, spu_area_t::width, spu_area_t::x, and spu_area_t::y.
Referenced by SpuAreaFitInside(), SpuAreaFixOverlap(), and SpuRenderSubpictures().
void spu_Attach | ( | spu_t * | spu, |
input_thread_t * | input | ||
) |
Attach the SPU to an input.
References spu_private_t::input, spu_private_t::lock, spu_t::p, SpuRenderCreateAndLoadText(), spu_private_t::text, spu_private_t::textlock, UpdateSPU(), vlc_filter_Delete(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_Request().
void spu_ChangeChannelOrderMargin | ( | spu_t * | spu, |
enum vlc_vout_order | order, | ||
int | margin | ||
) |
|
static |
References spu_channel::entries, spu_Channel_CleanEntry(), vlc_vector_clear, and vlc_vector_foreach_ref.
Referenced by spu_Cleanup(), spu_ClearChannel(), and spu_UnregisterChannel().
|
static |
References spu_PrerenderCancel(), and subpicture_Delete().
Referenced by spu_channel_Clean(), spu_channel_EarlyRemoveLate(), and spu_SelectSubpictures().
|
static |
|
static |
References spu_channel::clock, spu_channel::delay, spu_channel::entries, spu_channel::id, spu_channel::order, spu_channel::rate, and vlc_vector_init.
Referenced by spu_Create(), and spu_RegisterChannelInternal().
|
static |
References spu_channel::entries, subpicture_t::i_start, subpicture_t::i_stop, VLC_EGENERIC, VLC_SUCCESS, and vlc_vector_push.
Referenced by spu_PutSubpicture().
|
static |
References spu_channel::clock, spu_channel::entries, spu_channel::rate, spu_render_vector::size, vlc_clock_ConvertToSystem(), vlc_clock_Lock(), vlc_clock_Unlock(), and vlc_vector_foreach_ref.
Referenced by spu_SelectSubpictures().
|
static |
References spu_private_t::channels, spu_channel_vector::data, spu_private_t::filter_chain, spu_private_t::filter_chain_current, filter_chain_Delete(), filter_chain_ForEach(), spu_private_t::filter_chain_update, spu_private_t::fmtdst, spu_private_t::fmtsrc, spu_t::p, spu_private_t::prerender, spu_private_t::scale, spu_private_t::scale_yuvp, spu_channel_vector::size, spu_private_t::source_chain, spu_private_t::source_chain_current, spu_private_t::source_chain_update, spu_channel_Clean(), SubFilterDelProxyCallbacks(), spu_private_t::subs_pos, SubSourceClean(), SubSourceDelProxyCallbacks(), spu_private_t::text, spu_private_t::vector, video_format_Clean(), vlc_filter_Delete(), vlc_vector_clear, vlc_vector_destroy, and spu_private_t::vout.
Referenced by spu_Create(), and spu_Destroy().
void spu_Detach | ( | spu_t * | spu | ) |
Detach the SPU from its attached input.
References spu_private_t::input, spu_private_t::lock, spu_t::p, spu_PrerenderPause(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_ReleaseDisplay().
|
static |
References count, spu_private_t::input, input_GetAttachments(), filter_t::owner, spu_t::p, filter_owner_t::sys, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by SpuRenderCreateAndLoadText().
|
static |
References spu_private_t::channels, spu_channel_vector::data, spu_channel::id, spu_t::p, spu_channel_vector::size, and vlc_assert_unreachable.
Referenced by spu_ClearChannel(), spu_PutSubpicture(), spu_SetClockDelay(), spu_SetClockRate(), and spu_UnregisterChannel().
|
static |
|
static |
Referenced by spu_channel_EarlyRemoveLate(), and spu_PutSubpicture().
|
static |
References spu_scale_t::h, and SCALE_UNIT.
Referenced by spu_area_unscaled(), and SpuRenderRegion().
|
static |
References SCALE_UNIT, and spu_scale_t::w.
Referenced by spu_area_unscaled().
|
static |
|
static |
References spu_private_t::cond, spu_private_t::lock, spu_private_t::prerender, spu_private_t::vector, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_vector_push.
Referenced by spu_PutSubpicture().
|
static |
References spu_private_t::chroma_list, spu_private_t::lock, spu_private_t::output_cond, spu_private_t::p_processed, spu_private_t::prerender, vlc_cond_wait(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by spu_Detach().
|
static |
|
static |
References subpicture_t::i_original_picture_height, subpicture_t::i_original_picture_width, subpicture_region_t::node, subpicture_t::regions, SpuRenderText(), subpicture_region_Delete(), subpicture_region_IsText, vlc_list_replace(), vlc_spu_regions_foreach, and vlc_spu_regions_remove.
Referenced by spu_PrerenderThread().
|
static |
References subpicture_t::b_subtitle, spu_private_t::chroma_list, spu_private_t::cond, spu_prerender_vector::data, spu_private_t::fmtdst, spu_private_t::fmtsrc, vout_display_place_t::height, video_format_t::i_height, video_format_t::i_sar_den, video_format_t::i_sar_num, subpicture_t::i_start, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, IsSubpicInVideo(), spu_private_t::live, spu_private_t::lock, spu_private_t::output_cond, spu_t::p, spu_private_t::p_processed, spu_private_t::prerender, spu_prerender_vector::size, SPU_CHROMALIST_COUNT, spu_private_t::spu_in_full_window, spu_PrerenderText(), spu_UpdateOriginalSize(), subpicture_Update(), spu_private_t::vector, spu_private_t::video_position, vlc_cond_signal(), vlc_cond_wait(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_thread_set_name(), vlc_tick_now(), vlc_vector_remove, and vout_display_place_t::width.
Referenced by spu_Create().
|
static |
References spu_private_t::chroma_list, spu_private_t::cond, spu_private_t::fmtdst, spu_private_t::fmtsrc, spu_private_t::lock, spu_private_t::prerender, SPU_CHROMALIST_COUNT, spu_private_t::spu_in_full_window, video_format_Clean(), video_format_Copy(), video_format_IsSimilar(), spu_private_t::video_position, vlc_cond_signal(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by spu_Render().
ssize_t spu_RegisterChannelInternal | ( | spu_t * | spu, |
vlc_clock_t * | clock, | ||
enum vlc_vout_order * | order | ||
) |
References spu_private_t::channels, spu_private_t::lock, spu_t::p, spu_channel_Init(), spu_GetFreeChannelId(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_vector_push, VLC_VOUT_ORDER_PRIMARY, and VOUT_SPU_CHANNEL_INVALID.
Referenced by spu_RegisterChannel(), and vout_RegisterSubpictureChannelInternal().
vlc_render_subpicture * spu_Render | ( | spu_t * | spu, |
const vlc_fourcc_t * | chroma_list, | ||
const video_format_t * | fmt_dst, | ||
const video_format_t * | fmt_src, | ||
bool | spu_in_full_window, | ||
const vout_display_place_t * | video_position, | ||
vlc_tick_t | system_now, | ||
vlc_tick_t | render_subtitle_date, | ||
bool | ignore_osd | ||
) |
References ARRAY_SIZE, subpicture_t::b_subtitle, filter_chain_AppendFromString(), filter_chain_Clear(), filter_chain_ForEach(), vout_display_place_t::height, video_format_t::i_chroma, video_format_t::i_height, video_format_t::i_sar_den, video_format_t::i_sar_num, subpicture_t::i_start, subpicture_t::i_stop, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, IsSubpicInVideo(), spu_private_t::lock, spu_t::p, spu_private_t::source_chain, spu_private_t::source_chain_update, SPU_CHROMALIST_COUNT, spu_PrerenderSync(), spu_PrerenderWake(), spu_SelectSubpictures(), SpuRenderCmp(), SpuRenderSubpictures(), subpicture_Update(), SubSourceAddProxyCallbacks(), SubSourceClean(), SubSourceDelProxyCallbacks(), SubSourceGenerate(), SubSourceInit(), 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(), spu_private_t::vout, vout_display_place_t::width, vout_display_place_t::x, and vout_display_place_t::y.
Referenced by RenderSPUs().
|
static |
References subpicture_t::i_channel, spu_render_entry_t::start, spu_render_entry_t::subpic, VLC_TICK_INVALID, and VOUT_SPU_CHANNEL_OSD_COUNT.
Referenced by spu_SelectSubpictures().
|
static |
References spu_scale_t::h, SCALE_UNIT, and spu_scale_t::w.
Referenced by spu_scale_createq(), and spu_scale_unit().
|
static |
References SCALE_UNIT, and spu_scale_create().
Referenced by SpuRenderSubpictures().
|
static |
References spu_scale_t::h, and SCALE_UNIT.
Referenced by spu_area_scaled(), and SpuRenderRegion().
|
static |
References SCALE_UNIT, and spu_scale_create().
Referenced by spu_area_scaled(), and SpuRenderRegion().
|
static |
References SCALE_UNIT, and spu_scale_t::w.
Referenced by spu_area_scaled(), and SpuRenderRegion().
|
static |
References spu_render_entry_t::channel_order, spu_private_t::channels, current, spu_render_vector::data, spu_channel_vector::data, spu_channel::entries, spu_channel::id, spu_render_entry_t::is_late, spu_private_t::last_sort_date, spu_channel::order, spu_render_entry_t::orgstart, spu_render_entry_t::orgstop, spu_t::p, spu_render_vector::size, spu_channel_vector::size, spu_Channel_CleanEntry(), spu_channel_UpdateDates(), spu_render_entry_IsSelected(), spu_render_entry_t::start, spu_render_entry_t::stop, spu_render_entry_t::subpic, vlc_alloc(), VLC_TICK_INVALID, VLC_TICK_MAX, vlc_vector_foreach_ref, vlc_vector_remove, and VOUT_SPU_CHANNEL_OSD_COUNT.
Referenced by spu_Render().
void spu_SetClockDelay | ( | spu_t * | spu, |
size_t | channel_id, | ||
vlc_tick_t | delay | ||
) |
References spu_channel::clock, spu_channel::delay, spu_private_t::lock, spu_t::p, spu_GetChannel(), vlc_clock_Lock(), vlc_clock_SetDelay(), vlc_clock_Unlock(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_ChangeSpuDelay().
void spu_SetClockRate | ( | spu_t * | spu, |
size_t | channel_id, | ||
float | rate | ||
) |
References spu_channel::clock, spu_private_t::lock, spu_t::p, spu_channel::rate, spu_GetChannel(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_ChangeSpuRate().
void spu_SetHighlight | ( | spu_t * | spu, |
const vlc_spu_highlight_t * | hl | ||
) |
References spu_private_t::lock, spu_t::p, UpdateSPU(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_SetSpuHighlight().
|
static |
|
static |
References spu_area_t::height, spu_area_t::scale, spu_area_scaled(), spu_area_unscaled(), spu_area_t::width, spu_area_t::x, and spu_area_t::y.
Referenced by SpuRenderRegion().
|
static |
Avoid area overlapping.
References spu_area_t::height, spu_area_t::scale, spu_area_overlap(), spu_area_scaled(), spu_area_unscaled(), SUBPICTURE_ALIGN_BOTTOM, SUBPICTURE_ALIGN_TOP, and spu_area_t::y.
Referenced by SpuRenderRegion().
|
static |
Place a region.
References subpicture_region_t::b_absolute, subpicture_region_t::fmt, subpicture_t::i_original_picture_height, subpicture_t::i_original_picture_width, video_format_t::i_visible_height, video_format_t::i_visible_width, subpicture_region_t::i_x, subpicture_region_t::i_y, SUBPICTURE_ALIGN_BOTTOM, SUBPICTURE_ALIGN_LEFT, SUBPICTURE_ALIGN_RIGHT, and SUBPICTURE_ALIGN_TOP.
Referenced by SpuRenderRegion().
|
static |
This function compares 2 subpictures using the following properties (ordered by priority)
It can be used by qsort.
XXX spu_RenderSubpictures depends heavily on this order.
References subpicture_t::i_channel, subpicture_t::i_order, subpicture_t::i_start, IntegerCmp(), SSizeCmp(), and spu_render_entry_t::subpic.
Referenced by spu_Render().
|
static |
References es_format_Init(), filter_t::fmt_in, filter_t::fmt_out, video_format_t::i_chroma, video_format_t::i_height, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, filter_t::ops, filter_t::p_module, es_format_t::video, VIDEO_ES, vlc_custom_create, vlc_filter_LoadModule(), and vlc_object_delete.
Referenced by spu_Create().
References es_format_Init(), filter_t::fmt_in, filter_t::fmt_out, video_format_t::i_height, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, list, filter_t::ops, filter_t::owner, filter_t::p_module, filter_owner_t::pf_get_attachments, spu_get_attachments(), unlikely, var_InheritString(), es_format_t::video, VIDEO_ES, vlc_custom_create, vlc_filter_LoadModule(), VLC_OBJECT, and vlc_object_delete.
Referenced by spu_Attach(), and spu_Create().
|
static |
It will transform the provided region into another region suitable for rendering.
References subpicture_region_t::b_absolute, subpicture_t::b_fade, subpicture_t::b_subtitle, channel_order, spu_private_t::crop, vlc_filter_operations::filter_video, subpicture_region_t::fmt, subpicture_region_private_t::fmt, filter_t::fmt_in, filter_t::fmt_out, spu_private_t::force_crop, picture_t::format, spu_scale_t::h, vout_display_place_t::height, spu_private_t::height, subpicture_region_t::i_align, subpicture_region_t::i_alpha, subpicture_region_rendered::i_alpha, subpicture_t::i_alpha, video_format_t::i_chroma, es_format_t::i_codec, video_palette_t::i_entries, video_format_t::i_height, subpicture_region_t::i_max_height, subpicture_region_t::i_max_width, subpicture_t::i_start, subpicture_t::i_stop, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, video_format_t::i_x_offset, video_format_t::i_y_offset, spu_private_t::margin, msg_Err, msg_Warn, filter_t::ops, spu_t::p, video_format_t::p_palette, subpicture_region_t::p_picture, subpicture_region_rendered::p_picture, subpicture_region_private_t::p_picture, subpicture_region_t::p_private, video_palette_t::palette, spu_private_t::palette, picture_Clone(), picture_HasChainedPics(), picture_Hold(), picture_Release(), subpicture_region_rendered::place, spu_private_t::scale, spu_area_t::scale, SCALE_UNIT, spu_private_t::scale_yuvp, spu_private_t::secondary_alignment, spu_private_t::secondary_margin, spu_area_create(), spu_invscale_h(), spu_scale_h(), spu_scale_unit(), spu_scale_w(), SpuAreaFitInside(), SpuAreaFixOverlap(), SpuRegionPlace(), subpicture_region_IsText, subpicture_region_private_Delete(), subpicture_region_private_New(), unlikely, es_format_t::video, VLC_CODEC_YUVP, VLC_TICK_INVALID, VLC_VOUT_ORDER_SECONDARY, spu_scale_t::w, vout_display_place_t::width, spu_private_t::width, vout_display_place_t::x, spu_private_t::x, spu_area_t::x, vout_display_place_t::y, spu_private_t::y, and spu_area_t::y.
Referenced by SpuRenderSubpictures().
|
static |
This function renders all sub picture units in the list.
References ARRAY_SIZE, subpicture_region_t::b_absolute, subpicture_t::b_subtitle, count, vlc_rational_t::den, subpicture_region_t::fmt, spu_scale_t::h, vout_display_place_t::height, vlc_render_subpicture::i_order, subpicture_t::i_order, subpicture_t::i_original_picture_height, subpicture_t::i_original_picture_width, video_format_t::i_sar_den, video_format_t::i_sar_num, video_format_t::i_visible_height, video_format_t::i_visible_width, subpicture_region_t::i_x, subpicture_region_t::i_y, IsSubpicInVideo(), subpicture_region_t::node, vlc_rational_t::num, spu_t::p, subpicture_region_rendered::place, region_FixFmt(), vlc_render_subpicture::regions, subpicture_t::regions, spu_area_unscaled(), spu_scale_createq(), spu_UpdateOriginalSize(), SpuRenderRegion(), SpuRenderText(), spu_render_entry_t::subpic, subpicture_region_Delete(), subpicture_region_IsText, spu_private_t::subs_pos, subtitles_positions_AddRegion(), subtitles_positions_FindRegion(), subtitles_positions_FinishUpdate(), subtitles_positions_StartUpdate(), unlikely, vlc_list_replace(), vlc_render_subpicture_New(), vlc_spu_regions_foreach, vlc_spu_regions_foreach_const, vlc_spu_regions_is_empty, vlc_ureduce(), vlc_vector_push, spu_scale_t::w, vout_display_place_t::width, vout_display_place_t::x, subtitle_position_cache::x, vout_display_place_t::y, and subtitle_position_cache::y.
Referenced by spu_Render().
|
static |
References filter_t::fmt_out, video_format_t::i_height, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, subpicture_region_t::i_x, subpicture_region_t::i_y, filter_t::ops, spu_t::p, subpicture_region_t::p_text, vlc_filter_operations::render, subpicture_region_IsText, spu_private_t::text, spu_private_t::textlock, unlikely, es_format_t::video, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by spu_PrerenderText(), and SpuRenderSubpictures().
|
static |
Referenced by SpuRenderCmp().
|
static |
References subpicture_t::i_channel, filter_t::owner, subpicture_New(), and filter_owner_t::sys.
|
static |
References vlc_filter_operations::filter_sub, filter_t::ops, VLC_EINVAL, and VLC_SUCCESS.
Referenced by spu_PutSubpicture().
|
static |
References filter_AddProxyCallbacks, RestartSubFilterCallback(), VLC_OBJECT, and VLC_SUCCESS.
Referenced by spu_PutSubpicture().
|
static |
References filter_DelProxyCallbacks, RestartSubFilterCallback(), VLC_OBJECT, and VLC_SUCCESS.
Referenced by spu_Cleanup(), and spu_PutSubpicture().
|
static |
References filter_AddProxyCallbacks, RestartSubSourceCallback(), and VLC_SUCCESS.
Referenced by spu_Render().
|
static |
References filter_t::owner, spu_ClearChannel(), filter_owner_t::sys, and VLC_SUCCESS.
Referenced by spu_Cleanup(), and spu_Render().
|
static |
References filter_DelProxyCallbacks, RestartSubSourceCallback(), VLC_OBJECT, and VLC_SUCCESS.
Referenced by spu_Cleanup(), and spu_Render().
|
static |
Generate subpictures from a chain of subpicture source "filters".
References sub_source::display_date, filter_t::ops, vlc_filter_operations::source_sub, sub_source::spu, spu_PutSubpicture(), and VLC_SUCCESS.
Referenced by spu_Render().
|
static |
References filter_t::owner, spu_RegisterChannel(), filter_owner_t::sub, sub_cbs, filter_owner_t::sys, unlikely, VLC_ENOMEM, and VLC_SUCCESS.
Referenced by spu_Render().
|
static |
References subpicture_region_t::b_absolute, subpicture_t::b_subtitle, subtitles_positions_vector::data, spu_area_t::height, subtitle_position_cache::is_active, subtitle_position_cache::region, subtitles_positions_vector::size, subtitles_positions_FindRegion(), unlikely, vlc_vector_insert_hole, spu_area_t::width, subtitle_position_cache::x, spu_area_t::x, subtitle_position_cache::y, and spu_area_t::y.
Referenced by SpuRenderSubpictures().
|
static |
References subpicture_region_t::b_absolute, subpicture_t::b_subtitle, subtitle_position_cache::region, and vlc_vector_foreach_ref.
Referenced by SpuRenderSubpictures(), and subtitles_positions_AddRegion().
|
static |
References subtitles_positions_vector::data, subtitle_position_cache::is_active, subtitles_positions_vector::size, and vlc_vector_remove.
Referenced by SpuRenderSubpictures().
|
static |
References subtitle_position_cache::is_active, and vlc_vector_foreach_ref.
Referenced by SpuRenderSubpictures().
|
static |
References spu_private_t::crop, spu_private_t::force_crop, spu_private_t::height, video_palette_t::i_entries, spu_private_t::lock, msg_Dbg, spu_t::p, vlc_spu_highlight_t::palette, spu_private_t::palette, vlc_mutex_assert, spu_private_t::width, spu_private_t::x, vlc_spu_highlight_t::x_end, vlc_spu_highlight_t::x_start, spu_private_t::y, vlc_spu_highlight_t::y_end, and vlc_spu_highlight_t::y_start.
Referenced by spu_Attach(), and spu_SetHighlight().
|
static |
Referenced by SubSourceInit().