VLC 4.0.0-dev
|
Go to the source code of this file.
Data Structures | |
struct | vout_configuration_t |
Vout configuration. More... | |
struct | vout_crop |
Macros | |
#define | VOUT_MAX_PICTURES (20) |
Typedefs | |
typedef struct input_thread_t | input_thread_t |
Enumerations | |
enum | vout_crop_mode { VOUT_CROP_NONE , VOUT_CROP_RATIO , VOUT_CROP_WINDOW , VOUT_CROP_BORDER } |
Functions | |
vout_thread_t * | vout_Create (vlc_object_t *obj) |
Creates a video output. More... | |
vout_thread_t * | vout_CreateDummy (vlc_object_t *obj) |
vlc_decoder_device * | vout_GetDevice (vout_thread_t *vout) |
Setup the vout for the given configuration and get an associated decoder device. More... | |
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... | |
void | vout_Stop (vout_thread_t *) |
Disables a vout. More... | |
void | vout_StopDisplay (vout_thread_t *) |
Stop the display plugin, but keep its window plugin for later reuse. More... | |
int | vout_ChangeSource (vout_thread_t *p_vout, const video_format_t *fmt, const vlc_video_context *) |
Set the new source format for a started vout. More... | |
static bool | vout_CropEqual (const struct vout_crop *a, const struct vout_crop *b) |
bool | vout_ParseCrop (struct vout_crop *, const char *crop_str) |
bool | GetAspectRatio (const char *ar_str, unsigned *num, unsigned *den) |
void | vout_ChangeFullscreen (vout_thread_t *, const char *id) |
void | vout_ChangeWindowed (vout_thread_t *) |
void | vout_ChangeWindowState (vout_thread_t *, unsigned state) |
void | vout_ChangeDisplaySize (vout_thread_t *, unsigned width, unsigned height, void(*ack_cb)(void *), void *opaque) |
void | vout_ChangeDisplayFitting (vout_thread_t *, enum vlc_video_fitting) |
void | vout_ChangeZoom (vout_thread_t *, unsigned num, unsigned den) |
void | vout_ChangeDisplayAspectRatio (vout_thread_t *, unsigned num, unsigned den) |
void | vout_ChangeCrop (vout_thread_t *, const struct vout_crop *) |
void | vout_ControlChangeFilters (vout_thread_t *, const char *) |
void | vout_ControlChangeInterlacing (vout_thread_t *, bool) |
void | vout_ControlChangeSubSources (vout_thread_t *, const char *) |
void | vout_ControlChangeSubFilters (vout_thread_t *, const char *) |
void | vout_ChangeSpuChannelMargin (vout_thread_t *, enum vlc_vout_order order, int) |
void | vout_ChangeViewpoint (vout_thread_t *, const vlc_viewpoint_t *) |
void | vout_ChangeIccProfile (vout_thread_t *, vlc_icc_profile_t *) |
void | vout_FilterMouse (vout_thread_t *vout, vlc_mouse_t *mouse) |
void | vout_CreateVars (vout_thread_t *) |
void | vout_IntfInit (vout_thread_t *) |
void | vout_IntfReinit (vout_thread_t *) |
void | vout_IntfDeinit (vlc_object_t *) |
enum vlc_video_fitting | var_InheritFit (vlc_object_t *) |
ssize_t | vout_RegisterSubpictureChannelInternal (vout_thread_t *, vlc_clock_t *clock, enum vlc_vout_order *out_order) |
ssize_t | spu_RegisterChannelInternal (spu_t *, vlc_clock_t *, enum vlc_vout_order *) |
void | spu_Attach (spu_t *, input_thread_t *input) |
Attach the SPU to an input. More... | |
void | spu_Detach (spu_t *) |
Detach the SPU from its attached input. More... | |
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) |
void | spu_ChangeChannelOrderMargin (spu_t *, enum vlc_vout_order, int) |
void | spu_SetHighlight (spu_t *, const vlc_spu_highlight_t *) |
void | vout_ChangePause (vout_thread_t *, bool b_paused, vlc_tick_t i_date) |
This function will (un)pause the display of pictures. More... | |
void | vout_ChangeRate (vout_thread_t *, float rate) |
This function will change the rate of the vout It is thread safe. More... | |
void | vout_ChangeDelay (vout_thread_t *, vlc_tick_t delay) |
This function will change the delay of the vout It is thread safe. More... | |
void | vout_ChangeSpuRate (vout_thread_t *, size_t channel_id, float rate) |
This function will change the rate of the spu channel It is thread safe. More... | |
void | vout_ChangeSpuDelay (vout_thread_t *, 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_GetResetStatistic (vout_thread_t *p_vout, unsigned *pi_displayed, unsigned *pi_lost, unsigned *pi_late) |
This function will return and reset internal statistics. More... | |
void | vout_NextPicture (vout_thread_t *p_vout) |
This function will force to display the next picture while paused. More... | |
void | vout_DisplayTitle (vout_thread_t *p_vout, const char *psz_title) |
This function will ask the display of the input title. More... | |
bool | vout_IsEmpty (vout_thread_t *p_vout) |
This function will return true if no more pictures are to be displayed. More... | |
void | vout_SetSpuHighlight (vout_thread_t *p_vout, const vlc_spu_highlight_t *) |
#define VOUT_MAX_PICTURES (20) |
typedef struct input_thread_t input_thread_t |
enum vout_crop_mode |
bool GetAspectRatio | ( | const char * | ar_str, |
unsigned * | num, | ||
unsigned * | den | ||
) |
Referenced by AspectCallback(), and vout_InitSource().
void spu_Attach | ( | spu_t * | spu, |
input_thread_t * | input | ||
) |
Attach the SPU to an input.
References FilterRelease(), spu_private_t::input, spu_private_t::lock, spu_t::p, SpuRenderCreateAndLoadText(), spu_private_t::text, spu_private_t::textlock, UpdateSPU(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_Request().
void spu_ChangeChannelOrderMargin | ( | spu_t * | spu, |
enum | vlc_vout_order, | ||
int | margin | ||
) |
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().
ssize_t spu_RegisterChannelInternal | ( | spu_t * | spu, |
vlc_clock_t * | clock, | ||
enum vlc_vout_order * | order | ||
) |
References spu_private_t::channels, spu_channel::clock, spu_private_t::lock, spu_channel::order, 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().
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_SetDelay(), 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().
enum vlc_video_fitting var_InheritFit | ( | vlc_object_t * | obj | ) |
References var_InheritInteger(), VLC_VIDEO_FIT_HEIGHT, VLC_VIDEO_FIT_LARGER, VLC_VIDEO_FIT_SMALLER, and VLC_VIDEO_FIT_WIDTH.
Referenced by AutoScaleCallback(), and VoutGetDisplayCfg().
void vout_ChangeCrop | ( | vout_thread_t * | , |
const struct vout_crop * | |||
) |
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, vlc_clock_SetDelay(), vout_control_Hold(), vout_control_Release(), and VOUT_THREAD_TO_SYS.
Referenced by Decoder_ChangeOutputDelay().
void vout_ChangeDisplayAspectRatio | ( | vout_thread_t * | vout, |
unsigned | num, | ||
unsigned | den | ||
) |
References vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_queuedmutex_lock(), vlc_queuedmutex_unlock(), vout_SetAspectRatio(), vout_SetDisplayAspect(), VOUT_THREAD_TO_SYS, vout_UpdateWindowSizeLocked(), and vout_thread_sys_t::window_lock.
Referenced by AspectCallback().
void vout_ChangeDisplayFitting | ( | vout_thread_t * | vout, |
enum | vlc_video_fitting | ||
) |
References vout_display_cfg::display, vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vout_display_placement::fitting, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_queuedmutex_lock(), vlc_queuedmutex_unlock(), vout_SetDisplayFitting(), VOUT_THREAD_TO_SYS, and vout_thread_sys_t::window_lock.
Referenced by AutoScaleCallback().
void vout_ChangeDisplaySize | ( | vout_thread_t * | vout, |
unsigned | width, | ||
unsigned | height, | ||
void(*)(void *) | ack_cb, | ||
void * | opaque | ||
) |
References vout_thread_sys_t::display, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vlc_queuedmutex_lock(), vlc_queuedmutex_unlock(), vout_display_SetSize(), VOUT_THREAD_TO_SYS, VoutRenderWakeUpUrgent(), vout_thread_sys_t::window_height, and vout_thread_sys_t::window_width.
Referenced by vout_display_window_ResizeNotify().
void vout_ChangeFullscreen | ( | vout_thread_t * | vout, |
const char * | id | ||
) |
void vout_ChangeIccProfile | ( | vout_thread_t * | vout, |
vlc_icc_profile_t * | profile | ||
) |
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::icc_profile, vlc_queuedmutex_lock(), vlc_queuedmutex_unlock(), vout_SetDisplayIccProfile(), and VOUT_THREAD_TO_SYS.
Referenced by vout_display_window_IccEvent().
void vout_ChangePause | ( | vout_thread_t * | vout, |
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, FilterFlush(), GetTracer(), vout_thread_sys_t::is_on, vout_thread_sys_t::pause, vout_thread_sys_t::str_id, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_tracer_TraceEvent(), vlc_window_SetInhibition(), vout_control_Hold(), vout_control_Release(), VOUT_THREAD_TO_SYS, vout_display_cfg::window, and vout_thread_sys_t::window_lock.
Referenced by Decoder_ChangeOutputPause().
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::dummy, vout_thread_sys_t::rate, vout_control_Hold(), vout_control_Release(), and VOUT_THREAD_TO_SYS.
Referenced by Decoder_ChangeOutputRate().
int vout_ChangeSource | ( | vout_thread_t * | p_vout, |
const video_format_t * | fmt, | ||
const vlc_video_context * | vctx | ||
) |
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::display, vout_thread_sys_t::filter, vout_thread_sys_t::original, vout_thread_sys_t::src_vctx, video_format_IsSimilar(), and VOUT_THREAD_TO_SYS.
Referenced by 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_sys_t::spu, spu_ChangeChannelOrderMargin(), and VOUT_THREAD_TO_SYS.
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_sys_t::spu, spu_SetClockDelay(), and VOUT_THREAD_TO_SYS.
Referenced by Decoder_ChangeOutputDelay().
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_sys_t::spu, spu_SetClockRate(), and VOUT_THREAD_TO_SYS.
Referenced by Decoder_ChangeOutputRate().
void vout_ChangeViewpoint | ( | vout_thread_t * | vout, |
const vlc_viewpoint_t * | p_viewpoint | ||
) |
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::viewpoint, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_queuedmutex_lock(), vlc_queuedmutex_unlock(), vout_SetDisplayViewpoint(), VOUT_THREAD_TO_SYS, VoutRenderWakeUpUrgent(), 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 | state | ||
) |
void vout_ChangeZoom | ( | vout_thread_t * | vout, |
unsigned | num, | ||
unsigned | den | ||
) |
References vlc_rational_t::den, vout_display_cfg::display, vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_sys_t::dummy, vlc_rational_t::num, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_queuedmutex_lock(), vlc_queuedmutex_unlock(), vlc_ureduce(), vout_SetDisplayZoom(), VOUT_THREAD_TO_SYS, vout_UpdateWindowSizeLocked(), vout_thread_sys_t::window_lock, and vout_display_placement::zoom.
Referenced by ZoomCallback().
void vout_ControlChangeFilters | ( | vout_thread_t * | vout, |
const char * | filters | ||
) |
void vout_ControlChangeInterlacing | ( | vout_thread_t * | vout, |
bool | set | ||
) |
void vout_ControlChangeSubFilters | ( | vout_thread_t * | vout, |
const char * | filters | ||
) |
References vout_thread_sys_t::dummy, likely, vout_thread_sys_t::spu, spu_ChangeFilters(), and VOUT_THREAD_TO_SYS.
Referenced by RestartSubFilterCallback(), and SubFilterCallback().
void vout_ControlChangeSubSources | ( | vout_thread_t * | vout, |
const char * | filters | ||
) |
References vout_thread_sys_t::dummy, likely, vout_thread_sys_t::spu, spu_ChangeSources(), and VOUT_THREAD_TO_SYS.
Referenced by RestartSubSourceCallback(), and SubSourceCallback().
vout_thread_t * vout_Create | ( | vlc_object_t * | obj | ) |
Creates a video output.
References vout_thread_sys_t::clock_lock, vout_thread_sys_t::clock_nowait, config_GetType(), vout_thread_sys_t::control, vout_thread_sys_t::control_is_terminated, vout_thread_sys_t::crop, vout_thread_sys_t::dar, vlc_rational_t::den, 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, vout_thread_sys_t::frame_next_count, vout_display_cfg::icc_profile, vout_thread_sys_t::is_late_dropped, vout_thread_sys_t::lock, vout_crop::mode, vlc_rational_t::num, vout_thread_sys_t::obj, vout_thread_sys_t::original, vout_thread_sys_t::position, vout_thread_sys_t::private, 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, unlikely, var_Create(), var_Destroy(), var_InheritBool(), var_InheritInteger(), var_InheritString(), var_SetString(), video_format_Init(), vlc_mutex_init(), vlc_object_delete, vlc_queuedmutex_init(), VLC_VAR_STRING, vlc_window_SetState(), VLC_WINDOW_STATE_ABOVE, VLC_WINDOW_STATE_BELOW, vout_control_Init(), vout_CreateCommon(), VOUT_CROP_NONE, vout_display_window_New(), vout_InitInterlacingSupport(), vout_IntfInit(), vout_snapshot_New(), vout_statistic_Init(), vout_thread_sys_t::wait_interrupted, 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 RequestVoutRsc().
vout_thread_t * vout_CreateDummy | ( | vlc_object_t * | obj | ) |
References vout_thread_sys_t::dummy, vout_thread_sys_t::obj, and vout_CreateCommon().
Referenced by input_resource_New().
void vout_CreateVars | ( | vout_thread_t * | p_vout | ) |
References _, AddCustomRatios(), ARRAY_SIZE, vlc_value_t::f_float, p_aspect_ratio_values, p_crop_values, p_zoom_values, psz_label, vlc_value_t::psz_string, psz_value, SecondarySubMarginCallback(), var_AddCallback(), var_Change(), var_Create(), var_CreateGetNonEmptyString(), var_SetInteger(), vlc_gettext(), VLC_VAR_ADDCHOICE, VLC_VAR_ADDRESS, VLC_VAR_BOOL, VLC_VAR_COORDS, VLC_VAR_DOINHERIT, VLC_VAR_FLOAT, VLC_VAR_INTEGER, VLC_VAR_ISCOMMAND, VLC_VAR_SETTEXT, VLC_VAR_STRING, and VLC_VAR_VOID.
Referenced by vout_CreateCommon().
References vout_crop::border, vlc_rational_t::den, vout_crop::mode, vlc_rational_t::num, vout_crop::ratio, vlc_assert_unreachable, VOUT_CROP_BORDER, VOUT_CROP_NONE, VOUT_CROP_RATIO, VOUT_CROP_WINDOW, and vout_crop::window.
Referenced by vout_SetDisplayCrop().
void vout_DisplayTitle | ( | vout_thread_t * | p_vout, |
const char * | psz_title | ||
) |
This function will ask the display of the input title.
References vout_thread_sys_t::dummy, 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(), VOUT_SPU_CHANNEL_OSD, and VOUT_THREAD_TO_SYS.
Referenced by VoutSetAndDeduplicateTitle().
void vout_FilterMouse | ( | vout_thread_t * | vout, |
vlc_mouse_t * | mouse | ||
) |
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, vlc_decoder_device_Create(), vlc_decoder_device_Hold(), vlc_mutex_lock(), vlc_mutex_unlock(), VOUT_THREAD_TO_SYS, vout_display_cfg::window, and vout_thread_sys_t::window_lock.
Referenced by ModuleThread_GetDecoderDevice().
void vout_GetResetStatistic | ( | vout_thread_t * | p_vout, |
unsigned * | pi_displayed, | ||
unsigned * | pi_lost, | ||
unsigned * | pi_late | ||
) |
This function will return and reset internal statistics.
void vout_IntfDeinit | ( | vlc_object_t * | obj | ) |
References AboveCallback(), AspectCallback(), AutoScaleCallback(), CropBorderCallback(), CropCallback(), FullscreenCallback(), SecondarySubMarginCallback(), SnapshotCallback(), SubFilterCallback(), SubMarginCallback(), SubSourceCallback(), var_DelCallback(), VideoFilterCallback(), ViewpointCallback(), WallPaperCallback(), and ZoomCallback().
Referenced by vout_Close().
void vout_IntfInit | ( | vout_thread_t * | p_vout | ) |
References AboveCallback(), AspectCallback(), AutoScaleCallback(), CropBorderCallback(), CropCallback(), FullscreenCallback(), SnapshotCallback(), SubFilterCallback(), SubMarginCallback(), SubSourceCallback(), var_AddCallback(), VideoFilterCallback(), ViewpointCallback(), WallPaperCallback(), and ZoomCallback().
Referenced by vout_Create().
void vout_IntfReinit | ( | vout_thread_t * | p_vout | ) |
References var_TriggerCallback().
Referenced by vout_Request().
bool vout_IsEmpty | ( | vout_thread_t * | p_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, picture_fifo_IsEmpty(), and VOUT_THREAD_TO_SYS.
Referenced by vlc_input_decoder_IsEmpty().
void vout_NextPicture | ( | vout_thread_t * | p_vout | ) |
This function will force to display the next picture while paused.
References vout_thread_sys_t::control, vout_thread_sys_t::dummy, vout_thread_sys_t::frame_next_count, vout_control_Hold(), vout_control_ReleaseAndWake(), and VOUT_THREAD_TO_SYS.
Referenced by vlc_input_decoder_FrameNext().
bool vout_ParseCrop | ( | struct vout_crop * | , |
const char * | crop_str | ||
) |
Referenced by vout_InitSource().
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_sys_t::spu, spu_RegisterChannelInternal(), VOUT_SPU_CHANNEL_INVALID, and VOUT_THREAD_TO_SYS.
Referenced by ModuleThread_NewSpuBuffer().
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_thread_sys_t::clock, vout_configuration_t::clock, vout_thread_sys_t::clock_lock, vout_thread_sys_t::control_is_terminated, vout_thread_sys_t::delay, vout_thread_sys_t::display, EnableWindowLocked(), vout_configuration_t::fmt, msg_Err, vout_thread_sys_t::original, vout_thread_sys_t::private, vout_thread_sys_t::rate, vout_thread_sys_t::spu, spu_Attach(), vout_thread_sys_t::str_id, vout_configuration_t::str_id, vout_thread_sys_t::thread, Thread(), video_format_Clean(), vlc_clone(), vlc_mutex_lock(), vlc_mutex_unlock(), vout_configuration_t::vout, vout_ChangeSource(), vout_DisableWindow(), vout_InitSource(), vout_IntfReinit(), vout_ReinitInterlacingSupport(), vout_ReleaseDisplay(), vout_Start(), vout_StopDisplay(), VOUT_THREAD_TO_SYS, VoutCheckFormat(), VoutFixFormat(), and vout_thread_sys_t::window_lock.
Referenced by aout_filter_GetVout(), and input_resource_RequestVout().
void vout_SetSpuHighlight | ( | vout_thread_t * | p_vout, |
const vlc_spu_highlight_t * | spu_hl | ||
) |
References vout_thread_sys_t::dummy, vout_thread_sys_t::spu, spu_SetHighlight(), and VOUT_THREAD_TO_SYS.
Referenced by vlc_input_decoder_SetSpuHighlight().
void vout_Stop | ( | vout_thread_t * | vout | ) |
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_DisableWindow(), vout_StopDisplay(), and VOUT_THREAD_TO_SYS.
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_sys_t::control, vout_thread_sys_t::control_is_terminated, vout_thread_sys_t::thread, vlc_join(), vout_control_Wake(), vout_ReleaseDisplay(), and VOUT_THREAD_TO_SYS.
Referenced by input_resource_PutVoutLocked(), vout_Request(), and vout_Stop().