VLC
4.0.0-dev
|
Data Structures | |
struct | vout_filter_t |
Macros | |
#define | VOUT_REDISPLAY_DELAY VLC_TICK_FROM_MS(80) |
#define | VOUT_DISPLAY_LATE_THRESHOLD VLC_TICK_FROM_MS(20) |
Late pictures having a delay higher than this value are thrashed. More... | |
#define | VOUT_MWAIT_TOLERANCE VLC_TICK_FROM_MS(4) |
Functions | |
static bool | VoutCheckFormat (const video_format_t *src) |
static void | VoutFixFormat (video_format_t *dst, const video_format_t *src) |
static bool | VideoFormatIsCropArEqual (video_format_t *dst, const video_format_t *src) |
static void | vout_display_SizeWindow (unsigned *restrict width, unsigned *restrict height, unsigned w, unsigned h, unsigned sar_num, unsigned sar_den, video_orientation_t orientation, const vout_display_cfg_t *restrict cfg) |
static void | vout_SizeWindow (vout_thread_t *vout, const video_format_t *original, unsigned *restrict width, unsigned *restrict height) |
static void | vout_UpdateWindowSizeLocked (vout_thread_t *vout) |
void | vout_GetResetStatistic (vout_thread_t *vout, unsigned *restrict displayed, unsigned *restrict lost) |
bool | vout_IsEmpty (vout_thread_t *vout) |
This function will return true if no more pictures are to be displayed. More... | |
void | vout_DisplayTitle (vout_thread_t *vout, const char *title) |
This function will ask the display of the input title. More... | |
void | vout_MouseState (vout_thread_t *vout, const vlc_mouse_t *mouse) |
Updates the pointing device state. More... | |
void | vout_PutSubpicture (vout_thread_t *vout, subpicture_t *subpic) |
ssize_t | vout_RegisterSubpictureChannel (vout_thread_t *vout) |
ssize_t | vout_RegisterSubpictureChannelInternal (vout_thread_t *vout, vlc_clock_t *clock, enum vlc_vout_order *out_order) |
void | vout_UnregisterSubpictureChannel (vout_thread_t *vout, size_t channel) |
void | vout_FlushSubpictureChannel (vout_thread_t *vout, size_t channel) |
void | vout_SetSpuHighlight (vout_thread_t *vout, const vlc_spu_highlight_t *spu_hl) |
picture_t * | vout_GetPicture (vout_thread_t *vout) |
Allocates a video output picture buffer. More... | |
void | vout_PutPicture (vout_thread_t *vout, picture_t *picture) |
It gives to the vout a picture to be displayed. More... | |
int | vout_GetSnapshot (vout_thread_t *vout, block_t **image_dst, picture_t **picture_dst, video_format_t *fmt, const char *type, vlc_tick_t timeout) |
This function will handle a snapshot request. More... | |
void | vout_ChangeFullscreen (vout_thread_t *vout, const char *id) |
void | vout_ChangeWindowed (vout_thread_t *vout) |
void | vout_ChangeWindowState (vout_thread_t *vout, unsigned st) |
void | vout_ChangeDisplaySize (vout_thread_t *vout, unsigned width, unsigned height) |
void | vout_ChangeDisplayFilled (vout_thread_t *vout, bool is_filled) |
void | vout_ChangeZoom (vout_thread_t *vout, unsigned num, unsigned den) |
void | vout_ChangeDisplayAspectRatio (vout_thread_t *vout, unsigned dar_num, unsigned dar_den) |
void | vout_ChangeCropRatio (vout_thread_t *vout, unsigned num, unsigned den) |
void | vout_ChangeCropWindow (vout_thread_t *vout, int x, int y, int width, int height) |
void | vout_ChangeCropBorder (vout_thread_t *vout, int left, int top, int right, int bottom) |
void | vout_ControlChangeFilters (vout_thread_t *vout, const char *filters) |
void | vout_ControlChangeSubSources (vout_thread_t *vout, const char *filters) |
void | vout_ControlChangeSubFilters (vout_thread_t *vout, const char *filters) |
void | vout_ChangeSpuChannelMargin (vout_thread_t *vout, enum vlc_vout_order order, int margin) |
void | vout_ChangeViewpoint (vout_thread_t *vout, const vlc_viewpoint_t *p_viewpoint) |
static void | VoutGetDisplayCfg (vout_thread_t *vout, const video_format_t *fmt, vout_display_cfg_t *cfg) |
static int | FilterRestartCallback (vlc_object_t *p_this, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data) |
static int | ThreadDelFilterCallbacks (filter_t *filter, void *opaque) |
static void | ThreadDelAllFilterCallbacks (vout_thread_t *vout) |
static picture_t * | VoutVideoFilterInteractiveNewPicture (filter_t *filter) |
static picture_t * | VoutVideoFilterStaticNewPicture (filter_t *filter) |
static void | ThreadFilterFlush (vout_thread_t *vout, bool is_locked) |
static void | ThreadChangeFilters (vout_thread_t *vout, const char *filters, const bool *new_deinterlace, bool is_locked) |
static int | ThreadDisplayPreparePicture (vout_thread_t *vout, bool reuse, bool frame_by_frame, bool *paused) |
static vlc_decoder_device * | VoutHoldDecoderDevice (vlc_object_t *o, void *sys) |
static picture_t * | ConvertRGB32AndBlend (vout_thread_t *vout, picture_t *pic, subpicture_t *subpic) |
static int | ThreadDisplayRenderPicture (vout_thread_t *vout, bool is_forced) |
static int | ThreadDisplayPicture (vout_thread_t *vout, vlc_tick_t *deadline) |
void | vout_ChangePause (vout_thread_t *vout, bool is_paused, vlc_tick_t date) |
This function will (un)pause the display of pictures. More... | |
static void | vout_FlushUnlocked (vout_thread_t *vout, bool below, vlc_tick_t date) |
void | vout_Flush (vout_thread_t *vout, vlc_tick_t date) |
This function will ensure that all ready/displayed pictures have at most the provided date. More... | |
void | vout_NextPicture (vout_thread_t *vout, vlc_tick_t *duration) |
This function will force to display the next picture while paused. More... | |
void | vout_ChangeDelay (vout_thread_t *vout, vlc_tick_t delay) |
This function will change the delay of the vout It is thread safe. More... | |
void | vout_ChangeRate (vout_thread_t *vout, float rate) |
This function will change the rate of the vout It is thread safe. More... | |
void | vout_ChangeSpuDelay (vout_thread_t *vout, size_t channel_id, vlc_tick_t delay) |
This function will change the delay of the spu channel It is thread safe. More... | |
void | vout_ChangeSpuRate (vout_thread_t *vout, size_t channel_id, float rate) |
This function will change the rate of the spu channel It is thread safe. More... | |
static void | ThreadProcessMouseState (vout_thread_t *vout, const vlc_mouse_t *win_mouse) |
static int | vout_Start (vout_thread_t *vout, vlc_video_context *vctx, const vout_configuration_t *cfg) |
static void | ThreadControl (vout_thread_t *vout, vout_control_cmd_t cmd) |
static noreturn void * | Thread (void *object) |
static void | vout_ReleaseDisplay (vout_thread_t *vout) |
void | vout_StopDisplay (vout_thread_t *vout) |
Stop the display plugin, but keep its window plugin for later reuse. More... | |
static void | vout_DisableWindow (vout_thread_t *vout) |
void | vout_Stop (vout_thread_t *vout) |
Disables a vout. More... | |
void | vout_Close (vout_thread_t *vout) |
Destroys a vout. More... | |
void | vout_Release (vout_thread_t *vout) |
static vout_thread_t * | vout_CreateCommon (vlc_object_t *object) |
vout_thread_t * | vout_CreateDummy (vlc_object_t *object) |
vout_thread_t * | vout_Create (vlc_object_t *object) |
Creates a video output. More... | |
vout_thread_t * | vout_Hold (vout_thread_t *vout) |
int | vout_ChangeSource (vout_thread_t *vout, const video_format_t *original) |
Set the new source format for a started vout. More... | |
static int | EnableWindowLocked (vout_thread_t *vout, const video_format_t *original) |
int | vout_Request (const vout_configuration_t *cfg, vlc_video_context *vctx, input_thread_t *input) |
Returns a suitable vout or release the given one. More... | |
vlc_decoder_device * | vout_GetDevice (vout_thread_t *vout) |
Setup the vout for the given configuration and get an associated decoder device. More... | |
Variables | |
static const struct filter_video_callbacks | vout_video_cbs |
#define VOUT_DISPLAY_LATE_THRESHOLD VLC_TICK_FROM_MS(20) |
Late pictures having a delay higher than this value are thrashed.
Referenced by ThreadDisplayPreparePicture().
#define VOUT_MWAIT_TOLERANCE VLC_TICK_FROM_MS(4) |
Referenced by ThreadDisplayPicture().
#define VOUT_REDISPLAY_DELAY VLC_TICK_FROM_MS(80) |
Referenced by ThreadDisplayPicture(), and ThreadDisplayRenderPicture().
|
static |
References filter_chain_AppendConverter(), filter_chain_Delete(), filter_chain_NewVideo, filter_chain_Reset(), filter_chain_VideoFilter(), filter_DeleteBlend(), filter_NewBlend(), filter_t::fmt_out, video_format_t::i_chroma, vout_thread_t::p, picture_BlendSubpicture(), picture_Hold(), picture_Release(), vout_thread_sys_t::spu_blend, filter_owner_t::video, es_format_t::video, video_format_FixRgb(), VLC_CODEC_RGB32, VLC_OBJECT, and vout_video_cbs.
Referenced by ThreadDisplayRenderPicture().
|
static |
References vout_thread_sys_t::display_cfg, vout_thread_sys_t::dummy, vout_window_cfg_t::height, vout_window_cfg_t::is_fullscreen, msg_Err, vout_thread_t::p, var_GetBool(), var_InheritBool(), var_InheritInteger(), vlc_mutex_assert, vout_SizeWindow(), vout_UpdateWindowSizeLocked(), vout_window_Enable(), VoutGetDisplayCfg(), vout_window_cfg_t::width, vout_display_cfg::window, vout_thread_sys_t::window_enabled, and vout_thread_sys_t::window_lock.
Referenced by vout_Request().
|
static |
References vout_ControlChangeFilters().
Referenced by ThreadChangeFilters(), and ThreadDelFilterCallbacks().
|
static |
References vout_thread_sys_t::control, vout_thread_sys_t::displayed, vout_thread_sys_t::is_interlaced, vout_thread_t::p, ThreadControl(), ThreadDisplayPicture(), vlc_restorecancel(), vlc_savecancel(), VLC_SUCCESS, VLC_TICK_FROM_MS, VLC_TICK_INVALID, vlc_tick_now(), vout_control_Pop(), and vout_SetInterlacingState().
Referenced by vout_Request().
|
static |
References vout_filter_t::cfg, vout_thread_sys_t::chain_interactive, vout_thread_sys_t::chain_static, config_ChainCreate(), config_ChainDestroy(), vout_thread_sys_t::configuration, es_format_Clean(), es_format_InitFromVideo(), es_format_IsSimilar(), vout_thread_sys_t::filter, filter_AddProxyCallbacks, filter_chain_AppendConverter(), filter_chain_AppendFilter(), filter_chain_GetFmtOut(), filter_chain_GetVideoCtxOut(), filter_chain_IsEmpty(), filter_chain_Reset(), FilterRestartCallback(), vout_thread_sys_t::has_deint, likely, vout_thread_sys_t::lock, msg_Dbg, msg_Err, vout_filter_t::name, name, vout_thread_t::p, vout_thread_sys_t::src_fmt, vout_thread_sys_t::src_vctx, strdup(), ThreadDelAllFilterCallbacks(), ThreadFilterFlush(), vlc_array_append_or_abort(), vlc_array_clear(), vlc_array_count(), vlc_array_init(), vlc_array_item_at_index, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by ThreadControl(), and ThreadDisplayPreparePicture().
|
static |
References vout_control_cmd_t::boolean, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_control_cmd_t::mouse, vout_thread_t::p, vout_control_cmd_t::string, ThreadChangeFilters(), ThreadProcessMouseState(), vout_control_cmd_t::type, vout_control_cmd_t::viewpoint, vlc_mutex_lock(), vlc_mutex_unlock(), VOUT_CONTROL_CHANGE_FILTERS, VOUT_CONTROL_CHANGE_INTERLACE, vout_control_cmd_Clean(), VOUT_CONTROL_MOUSE_STATE, VOUT_CONTROL_VIEWPOINT, and vout_SetDisplayViewpoint().
Referenced by Thread().
|
static |
References vout_thread_sys_t::chain_interactive, vout_thread_sys_t::filter, filter_chain_ForEach(), vout_thread_t::p, and ThreadDelFilterCallbacks().
Referenced by ThreadChangeFilters(), vout_ReleaseDisplay(), and vout_Start().
|
static |
References filter_DelProxyCallbacks, FilterRestartCallback(), and VLC_SUCCESS.
Referenced by ThreadDelAllFilterCallbacks().
|
static |
References picture_t::b_force, vout_thread_sys_t::clock, vout_thread_sys_t::current, vout_thread_sys_t::date, picture_t::date, vout_thread_sys_t::displayed, vout_thread_sys_t::is_on, vout_thread_sys_t::next, vout_thread_t::p, vout_thread_sys_t::pause, picture_Release(), vout_thread_sys_t::rate, vout_thread_sys_t::render, ThreadDisplayPreparePicture(), ThreadDisplayRenderPicture(), unlikely, vlc_clock_ConvertToSystem(), VLC_EGENERIC, VLC_TICK_INVALID, vlc_tick_now(), vout_chrono_GetHigh(), VOUT_MWAIT_TOLERANCE, and VOUT_REDISPLAY_DELAY.
Referenced by Thread(), and vout_NextPicture().
|
static |
References picture_t::b_force, picture_t::b_progressive, vout_thread_sys_t::chain_static, vout_thread_sys_t::clock, vout_thread_sys_t::current, picture_t::date, vout_thread_sys_t::decoded, vout_thread_sys_t::decoder_fifo, vout_thread_sys_t::displayed, vout_thread_sys_t::filter, filter_chain_VideoFilter(), picture_t::format, video_format_t::i_frame_rate, video_format_t::i_frame_rate_base, vout_thread_sys_t::is_interlaced, vout_thread_sys_t::is_late_dropped, vout_thread_sys_t::is_on, vout_thread_sys_t::lock, MS_FROM_VLC_TICK, msg_Dbg, msg_Warn, vout_thread_sys_t::next, vout_thread_t::p, vout_thread_sys_t::pause, picture_fifo_Pop(), picture_GetVideoContext(), picture_Hold(), picture_Release(), vout_thread_sys_t::rate, vout_thread_sys_t::src_fmt, vout_thread_sys_t::src_vctx, vout_thread_sys_t::statistic, ThreadChangeFilters(), vout_thread_sys_t::timestamp, video_format_Clean(), video_format_Copy(), VideoFormatIsCropArEqual(), vlc_clock_ConvertToSystem(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, VLC_TICK_FROM_MS, vlc_tick_now(), vlc_video_context_Hold(), vlc_video_context_Release(), VOUT_DISPLAY_LATE_THRESHOLD, and vout_statistic_AddLost().
Referenced by ThreadDisplayPicture().
|
static |
References vout_chrono_t::avg, vout_display_info_t::can_scale_spu, vout_display_t::cfg, vout_thread_sys_t::chain_interactive, vout_thread_sys_t::clock, ConvertRGB32AndBlend(), vout_thread_sys_t::current, vout_thread_sys_t::date, picture_t::date, vlc_rational_t::den, vout_display_cfg::display, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::displayed, vout_thread_sys_t::filter, filter_chain_VideoFilter(), filter_DeleteBlend(), filter_NewBlend(), vout_display_t::fmt, filter_t::fmt_out, picture_t::format, vout_display_place_t::height, video_format_t::i_chroma, video_format_t::i_frame_rate, video_format_t::i_frame_rate_base, video_format_t::i_height, video_format_t::i_sar_den, video_format_t::i_sar_num, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, vout_display_t::info, vout_thread_sys_t::is_on, vout_thread_sys_t::lock, msg_Err, msg_Info, msg_Warn, vlc_rational_t::num, ORIENT_NORMAL, video_format_t::orientation, vout_thread_t::p, vout_thread_sys_t::pause, picture_BlendSubpicture(), picture_Copy(), picture_Hold(), picture_pool_Get(), picture_Release(), vout_display_t::prepare, vout_thread_sys_t::private_pool, vout_thread_sys_t::rate, vout_thread_sys_t::render, vout_display_cfg::sar, vout_thread_sys_t::snapshot, vout_display_t::source, vout_thread_sys_t::spu, vout_thread_sys_t::spu_blend, vout_thread_sys_t::spu_blend_chroma, spu_Render(), vout_thread_sys_t::statistic, vout_display_info_t::subpicture_chromas, subpicture_Delete(), unlikely, vout_chrono_t::var, es_format_t::video, video_format_ApplyRotation(), video_format_CopyCropAr(), vlc_clock_ConvertToSystem(), vlc_clock_UpdateVideo(), vlc_clock_Wait(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, VLC_SUCCESS, vlc_tick_now(), vout_chrono_Start(), vout_chrono_Stop(), vout_ConvertForDisplay(), vout_display_Display(), vout_display_PlacePicture(), VOUT_REDISPLAY_DELAY, vout_snapshot_IsRequested(), vout_snapshot_Set(), vout_statistic_AddDisplayed(), vout_UpdateDisplaySourceProperties(), and vout_display_place_t::width.
Referenced by ThreadDisplayPicture().
|
static |
References vout_thread_sys_t::chain_interactive, vout_thread_sys_t::chain_static, vout_thread_sys_t::current, vout_thread_sys_t::displayed, vout_thread_sys_t::filter, filter_chain_VideoFlush(), vout_thread_sys_t::lock, vout_thread_sys_t::next, vout_thread_t::p, picture_Release(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by ThreadChangeFilters(), vout_ChangePause(), and vout_FlushUnlocked().
|
static |
References vlc_mouse_t::b_double_click, vout_thread_sys_t::chain_interactive, vout_thread_sys_t::chain_static, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::filter, filter_chain_MouseFilter(), vlc_mouse_t::i_pressed, vlc_mouse_t::i_x, vlc_mouse_t::i_y, vout_thread_sys_t::lock, vout_thread_sys_t::mouse, MOUSE_BUTTON_LEFT, vout_thread_sys_t::mouse_event, vout_thread_sys_t::mouse_opaque, vout_thread_t::p, var_GetCoords(), var_SetCoords(), var_SetInteger(), var_ToggleBool(), vlc_mouse_HasButton(), vlc_mouse_HasMoved(), vlc_mouse_HasPressed(), vlc_mutex_lock(), vlc_mutex_unlock(), and vout_display_TranslateMouseState().
Referenced by ThreadControl().
|
static |
void vout_ChangeCropBorder | ( | vout_thread_t * | vout, |
int | left, | ||
int | top, | ||
int | right, | ||
int | bottom | ||
) |
References vout_thread_sys_t::crop, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::source, vlc_mutex_lock(), vlc_mutex_unlock(), VOUT_CROP_BORDER, vout_SetDisplayCrop(), vout_UpdateWindowSizeLocked(), and vout_thread_sys_t::window_lock.
Referenced by CropCallback().
void vout_ChangeCropRatio | ( | vout_thread_t * | vout, |
unsigned | num, | ||
unsigned | den | ||
) |
References vout_thread_sys_t::crop, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::source, vlc_mutex_lock(), vlc_mutex_unlock(), VOUT_CROP_NONE, VOUT_CROP_RATIO, vout_SetDisplayCrop(), vout_UpdateWindowSizeLocked(), and vout_thread_sys_t::window_lock.
Referenced by CropCallback().
void vout_ChangeCropWindow | ( | vout_thread_t * | vout, |
int | x, | ||
int | y, | ||
int | width, | ||
int | height | ||
) |
References vout_thread_sys_t::crop, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::source, vlc_mutex_lock(), vlc_mutex_unlock(), VOUT_CROP_WINDOW, vout_SetDisplayCrop(), vout_UpdateWindowSizeLocked(), and vout_thread_sys_t::window_lock.
Referenced by CropCallback().
void vout_ChangeDelay | ( | vout_thread_t * | vout, |
vlc_tick_t | delay | ||
) |
This function will change the delay of the vout It is thread safe.
References vout_thread_sys_t::clock, vout_thread_sys_t::control, vout_thread_sys_t::delay, vout_thread_sys_t::display, vout_thread_sys_t::dummy, vout_thread_t::p, vlc_clock_SetDelay(), vout_control_Hold(), and vout_control_Release().
Referenced by DecoderThread_ChangeDelay().
void vout_ChangeDisplayAspectRatio | ( | vout_thread_t * | vout, |
unsigned | dar_num, | ||
unsigned | dar_den | ||
) |
References vout_thread_sys_t::dar, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::source, vlc_mutex_lock(), vlc_mutex_unlock(), vout_SetDisplayAspect(), vout_UpdateWindowSizeLocked(), and vout_thread_sys_t::window_lock.
Referenced by AspectCallback().
void vout_ChangeDisplayFilled | ( | vout_thread_t * | vout, |
bool | is_filled | ||
) |
References vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_display_cfg::is_display_filled, vout_thread_t::p, vlc_mutex_lock(), vlc_mutex_unlock(), vout_SetDisplayFilled(), and vout_thread_sys_t::window_lock.
Referenced by AutoScaleCallback().
void vout_ChangeDisplaySize | ( | vout_thread_t * | vout, |
unsigned | width, | ||
unsigned | height | ||
) |
void vout_ChangeFullscreen | ( | vout_thread_t * | vout, |
const char * | id | ||
) |
void vout_ChangePause | ( | vout_thread_t * | , |
bool | b_paused, | ||
vlc_tick_t | i_date | ||
) |
This function will (un)pause the display of pictures.
It is thread safe
References vout_thread_sys_t::control, vout_thread_sys_t::date, vout_thread_sys_t::display_cfg, vout_thread_sys_t::dummy, vout_thread_sys_t::is_on, vout_thread_sys_t::last, vout_thread_t::p, vout_thread_sys_t::pause, vout_thread_sys_t::step, ThreadFilterFlush(), vout_thread_sys_t::timestamp, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TICK_INVALID, vout_control_Hold(), vout_control_Release(), vout_window_SetInhibition(), vout_display_cfg::window, and vout_thread_sys_t::window_lock.
Referenced by DecoderThread_ChangePause().
void vout_ChangeRate | ( | vout_thread_t * | vout, |
float | rate | ||
) |
This function will change the rate of the vout It is thread safe.
References vout_thread_sys_t::control, vout_thread_sys_t::display, vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::rate, vout_control_Hold(), and vout_control_Release().
Referenced by DecoderThread_ChangeRate().
int vout_ChangeSource | ( | vout_thread_t * | p_vout, |
const video_format_t * | fmt | ||
) |
Set the new source format for a started vout.
0 | on success |
-1 | on error, the vout needs to be restarted to handle the format |
References vout_thread_sys_t::original, vout_thread_t::p, and video_format_IsSimilar().
Referenced by ModuleThread_UpdateVideoFormat(), and vout_Request().
void vout_ChangeSpuChannelMargin | ( | vout_thread_t * | vout, |
enum vlc_vout_order | order, | ||
int | margin | ||
) |
References vout_thread_sys_t::dummy, likely, vout_thread_t::p, vout_thread_sys_t::spu, and spu_ChangeChannelOrderMargin().
Referenced by SecondarySubMarginCallback(), and SubMarginCallback().
void vout_ChangeSpuDelay | ( | vout_thread_t * | vout, |
size_t | channel_id, | ||
vlc_tick_t | delay | ||
) |
This function will change the delay of the spu channel It is thread safe.
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, and spu_SetClockDelay().
Referenced by DecoderThread_ChangeDelay().
void vout_ChangeSpuRate | ( | vout_thread_t * | vout, |
size_t | channel_id, | ||
float | rate | ||
) |
This function will change the rate of the spu channel It is thread safe.
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, and spu_SetClockRate().
Referenced by DecoderThread_ChangeRate().
void vout_ChangeViewpoint | ( | vout_thread_t * | vout, |
const vlc_viewpoint_t * | p_viewpoint | ||
) |
References vout_thread_sys_t::control, vout_thread_sys_t::display_cfg, vout_thread_sys_t::dummy, vout_thread_t::p, vout_control_cmd_t::viewpoint, vout_display_cfg::viewpoint, vlc_mutex_lock(), vlc_mutex_unlock(), vout_control_cmd_Init(), vout_control_Push(), VOUT_CONTROL_VIEWPOINT, and vout_thread_sys_t::window_lock.
Referenced by ViewpointCallback().
void vout_ChangeWindowed | ( | vout_thread_t * | vout | ) |
void vout_ChangeWindowState | ( | vout_thread_t * | vout, |
unsigned | st | ||
) |
void vout_ChangeZoom | ( | vout_thread_t * | vout, |
unsigned | num, | ||
unsigned | den | ||
) |
References vout_display_cfg::den, vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_display_cfg::num, vout_thread_t::p, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_ureduce(), vout_SetDisplayZoom(), vout_UpdateWindowSizeLocked(), vout_thread_sys_t::window_lock, and vout_display_cfg::zoom.
Referenced by ZoomCallback().
void vout_ControlChangeFilters | ( | vout_thread_t * | vout, |
const char * | filters | ||
) |
References vout_thread_sys_t::control, vout_thread_sys_t::dummy, vout_thread_t::p, VOUT_CONTROL_CHANGE_FILTERS, and vout_control_PushString().
Referenced by FilterRestartCallback(), and VideoFilterCallback().
void vout_ControlChangeSubFilters | ( | vout_thread_t * | vout, |
const char * | filters | ||
) |
References vout_thread_sys_t::dummy, likely, vout_thread_t::p, vout_thread_sys_t::spu, and spu_ChangeFilters().
Referenced by RestartSubFilterCallback(), and SubFilterCallback().
void vout_ControlChangeSubSources | ( | vout_thread_t * | vout, |
const char * | filters | ||
) |
References vout_thread_sys_t::dummy, likely, vout_thread_t::p, vout_thread_sys_t::spu, and spu_ChangeSources().
Referenced by RestartSubSourceCallback(), and SubSourceCallback().
vout_thread_t* vout_Create | ( | vlc_object_t * | object | ) |
Creates a video output.
References config_GetType(), vout_thread_sys_t::control, vout_thread_sys_t::crop, vout_thread_sys_t::dar, vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_thread_sys_t::filter, video_format_t::i_chroma, vout_thread_sys_t::is_late_dropped, vout_thread_sys_t::lock, vout_thread_sys_t::original, vout_thread_t::p, vout_thread_sys_t::position, vout_thread_sys_t::render, vout_thread_sys_t::show, vout_thread_sys_t::snapshot, vout_thread_sys_t::source, vout_thread_sys_t::splitter_name, vout_thread_sys_t::spu, spu_Create, spu_Destroy(), vout_thread_sys_t::statistic, vout_thread_sys_t::timeout, vout_thread_sys_t::title, var_Create(), var_Destroy(), var_InheritBool(), var_InheritInteger(), var_InheritString(), var_SetString(), vlc_mutex_init(), vlc_object_delete, VLC_TICK_FROM_MS, VLC_VAR_STRING, vout_chrono_Init(), vout_control_Init(), vout_CreateCommon(), VOUT_CROP_NONE, vout_display_window_New(), vout_InitInterlacingSupport(), vout_IntfInit(), vout_snapshot_New(), vout_statistic_Init(), vout_window_SetState(), VOUT_WINDOW_STATE_ABOVE, VOUT_WINDOW_STATE_BELOW, vout_display_cfg::window, vout_thread_sys_t::window_enabled, vout_thread_sys_t::window_height, vout_thread_sys_t::window_lock, and vout_thread_sys_t::window_width.
Referenced by aout_filter_GetVout(), and input_resource_GetVoutDecoderDevice().
|
static |
References vout_thread_t::p, vout_thread_sys_t::rc, vlc_atomic_rc_init(), vlc_custom_create, and vout_CreateVars().
Referenced by vout_Create(), and vout_CreateDummy().
vout_thread_t* vout_CreateDummy | ( | vlc_object_t * | object | ) |
References vout_thread_sys_t::dummy, vout_thread_t::p, and vout_CreateCommon().
Referenced by input_resource_New().
|
static |
|
static |
References ORIENT_IS_SWAP.
Referenced by vout_SizeWindow().
void vout_DisplayTitle | ( | vout_thread_t * | vout, |
const char * | title | ||
) |
This function will ask the display of the input title.
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::position, vout_thread_sys_t::show, vout_thread_sys_t::timeout, vout_thread_sys_t::title, VLC_TICK_FROM_MS, vout_OSDText(), and VOUT_SPU_CHANNEL_OSD.
Referenced by DisplayVoutTitle().
|
static |
References vout_thread_sys_t::clock, vout_thread_sys_t::date, picture_t::date, vout_thread_sys_t::decoded, vout_thread_sys_t::decoder_fifo, vout_thread_sys_t::delay, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::displayed, vout_thread_sys_t::last, vout_thread_t::p, picture_fifo_Flush(), picture_Release(), vout_thread_sys_t::step, ThreadFilterFlush(), vout_thread_sys_t::timestamp, vlc_clock_Reset(), vlc_clock_SetDelay(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TICK_INVALID, and vout_FilterFlush().
Referenced by vout_Flush(), and vout_ReleaseDisplay().
vlc_decoder_device* vout_GetDevice | ( | vout_thread_t * | vout | ) |
Setup the vout for the given configuration and get an associated decoder device.
vout | the video configuration requested. |
References vout_thread_sys_t::dec_device, vout_thread_sys_t::display_cfg, vout_thread_t::obj, vout_thread_t::p, vlc_decoder_device_Create(), vlc_decoder_device_Hold(), vlc_mutex_lock(), vlc_mutex_unlock(), vout_display_cfg::window, and vout_thread_sys_t::window_lock.
Referenced by input_resource_GetVoutDecoderDevice().
void vout_GetResetStatistic | ( | vout_thread_t * | vout, |
unsigned *restrict | displayed, | ||
unsigned *restrict | lost | ||
) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::statistic, and vout_statistic_GetReset().
Referenced by ModuleThread_UpdateStatVideo().
bool vout_IsEmpty | ( | vout_thread_t * | vout | ) |
This function will return true if no more pictures are to be displayed.
References vout_thread_sys_t::decoder_fifo, vout_thread_sys_t::dummy, vout_thread_t::p, picture_fifo_Peek(), and picture_Release().
Referenced by vlc_input_decoder_IsEmpty().
void vout_MouseState | ( | vout_thread_t * | vout, |
const vlc_mouse_t * | mouse | ||
) |
Updates the pointing device state.
References vout_thread_sys_t::control, vout_thread_sys_t::dummy, vout_control_cmd_t::mouse, vout_thread_t::p, vout_control_cmd_Init(), VOUT_CONTROL_MOUSE_STATE, and vout_control_Push().
Referenced by vout_display_window_MouseEvent().
void vout_NextPicture | ( | vout_thread_t * | vout, |
vlc_tick_t * | duration | ||
) |
This function will force to display the next picture while paused.
References vout_thread_sys_t::control, vout_thread_sys_t::display, vout_thread_sys_t::displayed, vout_thread_sys_t::dummy, vout_thread_sys_t::last, vout_thread_t::p, vout_thread_sys_t::step, ThreadDisplayPicture(), vout_thread_sys_t::timestamp, VLC_TICK_INVALID, vout_control_Hold(), and vout_control_Release().
Referenced by vlc_input_decoder_FrameNext().
ssize_t vout_RegisterSubpictureChannelInternal | ( | vout_thread_t * | vout, |
vlc_clock_t * | clock, | ||
enum vlc_vout_order * | out_order | ||
) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, spu_RegisterChannelInternal(), and VOUT_SPU_CHANNEL_INVALID.
Referenced by ModuleThread_NewSpuBuffer().
|
static |
References vout_thread_sys_t::chain_interactive, vout_thread_sys_t::chain_static, vout_thread_sys_t::clock, vout_thread_sys_t::configuration, vout_thread_sys_t::decoder_fifo, vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::display_pool, vout_thread_sys_t::filter, filter_chain_Delete(), filter_DeleteBlend(), vout_thread_sys_t::mouse_event, vout_thread_sys_t::mouse_opaque, vout_thread_sys_t::original, vout_thread_t::p, picture_fifo_Delete(), vout_thread_sys_t::spu, vout_thread_sys_t::spu_blend, spu_Detach(), vout_thread_sys_t::src_fmt, vout_thread_sys_t::src_vctx, ThreadDelAllFilterCallbacks(), video_format_Clean(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_video_context_Release(), vout_CloseWrapper(), and vout_FlushUnlocked().
Referenced by vout_Request(), and vout_StopDisplay().
int vout_Request | ( | const vout_configuration_t * | cfg, |
vlc_video_context * | vctx, | ||
input_thread_t * | input | ||
) |
Returns a suitable vout or release the given one.
If cfg->fmt is non NULL and valid, a vout will be returned, reusing cfg->vout is possible, otherwise it returns NULL. If cfg->vout is not used, it will be closed and released.
You can release the returned value either by vout_Request() or vout_Close().
cfg | the video configuration requested. |
input | used to get attachments for spu filters |
vctx | pointer to the video context to use with the vout or NULL |
0 | on success |
-1 | on error |
References vout_configuration_t::clock, vout_thread_sys_t::clock, vout_thread_sys_t::delay, vout_thread_sys_t::display, EnableWindowLocked(), vout_configuration_t::fmt, msg_Err, vout_thread_sys_t::original, vout_thread_t::p, vout_thread_sys_t::rate, vout_thread_sys_t::spu, spu_Attach(), vout_thread_sys_t::thread, Thread(), video_format_Clean(), vlc_clone(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_THREAD_PRIORITY_OUTPUT, vout_configuration_t::vout, vout_ChangeSource(), vout_DisableWindow(), vout_IntfReinit(), vout_ReinitInterlacingSupport(), vout_ReleaseDisplay(), vout_Start(), vout_StopDisplay(), VoutCheckFormat(), VoutFixFormat(), and vout_thread_sys_t::window_lock.
Referenced by aout_filter_GetVout(), and input_resource_StartVout().
void vout_SetSpuHighlight | ( | vout_thread_t * | vout, |
const vlc_spu_highlight_t * | spu_hl | ||
) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, and spu_SetHighlight().
Referenced by vlc_input_decoder_SetSpuHighlight().
|
static |
References vout_thread_sys_t::crop, vout_thread_sys_t::dar, vout_thread_sys_t::display_cfg, video_format_t::i_sar_num, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::orientation, vout_thread_t::p, vout_thread_sys_t::source, vlc_ureduce(), VOUT_CROP_BORDER, VOUT_CROP_NONE, VOUT_CROP_RATIO, VOUT_CROP_WINDOW, and vout_display_SizeWindow().
Referenced by EnableWindowLocked(), and vout_UpdateWindowSizeLocked().
|
static |
References vout_thread_sys_t::chain_interactive, vout_thread_sys_t::chain_static, vout_thread_sys_t::configuration, vout_thread_sys_t::crop, vout_thread_sys_t::current, vout_thread_sys_t::dar, vout_thread_sys_t::date, vout_thread_sys_t::dec_device, vout_thread_sys_t::decoded, vout_thread_sys_t::decoder_fifo, vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_sys_t::display_pool, vout_thread_sys_t::displayed, vout_thread_sys_t::dummy, vout_thread_sys_t::filter, filter_chain_Delete(), filter_chain_NewVideo, vout_display_cfg::height, vout_thread_sys_t::is_interlaced, vout_thread_sys_t::is_on, vout_thread_sys_t::last, vout_thread_sys_t::mouse, vout_configuration_t::mouse_event, vout_thread_sys_t::mouse_event, vout_configuration_t::mouse_opaque, vout_thread_sys_t::mouse_opaque, vout_thread_sys_t::next, vout_thread_sys_t::original, vout_thread_t::p, vout_thread_sys_t::pause, picture_fifo_Delete(), picture_fifo_New(), vout_thread_sys_t::private_pool, vout_thread_sys_t::source, vout_thread_sys_t::splitter_name, vout_thread_sys_t::spu_blend, vout_thread_sys_t::spu_blend_chroma, vout_thread_sys_t::src_fmt, vout_thread_sys_t::src_vctx, vout_thread_sys_t::step, ThreadDelAllFilterCallbacks(), vout_thread_sys_t::timestamp, filter_owner_t::video, video_format_Clean(), video_format_Copy(), video_format_Print(), vlc_decoder_device_Release(), VLC_EGENERIC, vlc_mouse_Init(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, VLC_SUCCESS, VLC_TICK_INVALID, vlc_video_context_Hold(), vlc_video_context_HoldDevice(), vlc_video_context_Release(), VOUT_CROP_BORDER, VOUT_CROP_NONE, VOUT_CROP_RATIO, VOUT_CROP_WINDOW, vout_OpenWrapper(), vout_SetDisplayAspect(), vout_SetDisplayCrop(), VoutHoldDecoderDevice(), VoutVideoFilterInteractiveNewPicture(), VoutVideoFilterStaticNewPicture(), vout_display_cfg::width, vout_thread_sys_t::window_height, vout_thread_sys_t::window_lock, vout_display_cfg::window_props, and vout_thread_sys_t::window_width.
Referenced by vout_Request().
void vout_Stop | ( | vout_thread_t * | ) |
Disables a vout.
This disables a vout, but keeps it for later reuse.
References vout_thread_sys_t::display, vout_thread_sys_t::dummy, vout_thread_t::p, vout_DisableWindow(), and vout_StopDisplay().
Referenced by input_resource_PutVoutLocked(), input_resource_StopFreeVout(), and vout_Close().
void vout_StopDisplay | ( | vout_thread_t * | vout | ) |
Stop the display plugin, but keep its window plugin for later reuse.
References vout_thread_t::p, vout_thread_sys_t::thread, vlc_cancel(), vlc_join(), and vout_ReleaseDisplay().
Referenced by DeleteDecoder(), vout_Request(), and vout_Stop().
|
static |
References vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, msg_Dbg, vout_thread_sys_t::original, vout_thread_t::p, vlc_mutex_assert, vlc_mutex_lock(), vlc_mutex_unlock(), vout_SizeWindow(), vout_window_SetSize(), vout_display_cfg::window, and vout_thread_sys_t::window_lock.
Referenced by EnableWindowLocked(), vout_ChangeCropBorder(), vout_ChangeCropRatio(), vout_ChangeCropWindow(), vout_ChangeDisplayAspectRatio(), vout_ChangeWindowed(), and vout_ChangeZoom().
|
static |
References video_format_t::i_height, video_format_t::i_sar_den, video_format_t::i_sar_num, and video_format_t::i_width.
Referenced by vout_Request().
|
static |
References video_format_t::i_chroma, VIDEO_ES, video_format_Copy(), video_format_FixRgb(), vlc_fourcc_GetCodec(), and VoutFixFormatAR().
Referenced by vout_Request().
|
static |
References vout_display_cfg::align, vlc_rational_t::den, vout_display_cfg::den, vout_display_cfg::display, vout_display_cfg::height, vlc_video_align::horizontal, vout_display_cfg::is_display_filled, vlc_rational_t::num, vout_display_cfg::num, video_format_t::pose, vout_display_cfg::sar, var_GetBool(), var_GetFloat(), var_GetInteger(), var_InheritURational(), vlc_video_align::vertical, vout_display_cfg::viewpoint, vlc_ureduce(), VLC_VIDEO_ALIGN_BOTTOM, VLC_VIDEO_ALIGN_CENTER, VLC_VIDEO_ALIGN_LEFT, VLC_VIDEO_ALIGN_RIGHT, VLC_VIDEO_ALIGN_TOP, VOUT_ALIGN_BOTTOM, VOUT_ALIGN_LEFT, VOUT_ALIGN_RIGHT, VOUT_ALIGN_TOP, vout_display_cfg::width, and vout_display_cfg::zoom.
Referenced by EnableWindowLocked().
|
static |
References vout_thread_sys_t::dec_device, vout_thread_t::p, vlc_decoder_device_Hold(), and VLC_UNUSED.
Referenced by vout_Start().
References vout_thread_sys_t::chain_interactive, vout_thread_sys_t::filter, filter_chain_IsEmpty(), filter_t::fmt_out, vout_thread_sys_t::lock, filter_t::owner, vout_thread_t::p, picture_NewFromFormat(), filter_owner_t::sys, es_format_t::video, vlc_mutex_assert, and VoutVideoFilterInteractiveNewPicture().
Referenced by vout_Start().
|
static |
Referenced by ConvertRGB32AndBlend().