VLC  4.0.0-dev
Data Structures | Macros | Typedefs | Functions | Variables
video_output.c File Reference
Include dependency graph for video_output.c:

Data Structures

struct  vout_thread_sys_t
struct  vout_filter_t


#define VOUT_THREAD_TO_SYS(vout)    container_of(vout, vout_thread_sys_t, obj.obj)
 Late pictures having a delay higher than this value are thrashed. More...


typedef struct vout_thread_sys_t vout_thread_sys_t


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_sys_t *vout, const video_format_t *original, unsigned *restrict width, unsigned *restrict height)
static void vout_UpdateWindowSizeLocked (vout_thread_sys_t *vout)
void vout_GetResetStatistic (vout_thread_t *vout, unsigned *restrict displayed, unsigned *restrict lost, unsigned *restrict late)
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_tvout_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(*cb)(void *), void *opaque)
void vout_ChangeDisplayFilled (vout_thread_t *vout, bool is_filled)
void vout_ChangeZoom (vout_thread_t *vout, unsigned num, unsigned den)
static void vout_SetAspectRatio (vout_thread_sys_t *sys, unsigned dar_num, unsigned dar_den)
void vout_ChangeDisplayAspectRatio (vout_thread_t *vout, unsigned dar_num, unsigned dar_den)
void vout_ChangeCrop (vout_thread_t *vout, const struct vout_crop *restrict crop)
void vout_ControlChangeFilters (vout_thread_t *vout, const char *filters)
void vout_ControlChangeInterlacing (vout_thread_t *vout, bool set)
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_sys_t *p_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 DelFilterCallbacks (filter_t *filter, void *opaque)
static void DelAllFilterCallbacks (vout_thread_sys_t *vout)
static picture_tVoutVideoFilterInteractiveNewPicture (filter_t *filter)
static picture_tVoutVideoFilterStaticNewPicture (filter_t *filter)
static void FilterFlush (vout_thread_sys_t *sys, bool is_locked)
static void ChangeFilters (vout_thread_sys_t *vout)
static bool IsPictureLate (vout_thread_sys_t *vout, picture_t *decoded, vlc_tick_t system_now, vlc_tick_t system_pts)
static picture_tPreparePicture (vout_thread_sys_t *vout, bool reuse_decoded, bool frame_by_frame)
static vlc_decoder_deviceVoutHoldDecoderDevice (vlc_object_t *o, void *opaque)
static picture_tConvertRGB32AndBlend (vout_thread_sys_t *vout, picture_t *pic, subpicture_t *subpic)
static picture_tFilterPictureInteractive (vout_thread_sys_t *sys)
static int PrerenderPicture (vout_thread_sys_t *sys, picture_t *filtered, bool *render_now, picture_t **out_pic, subpicture_t **out_subpic)
static int RenderPicture (vout_thread_sys_t *sys, bool render_now)
static void UpdateDeinterlaceFilter (vout_thread_sys_t *sys)
static int DisplayNextFrame (vout_thread_sys_t *sys)
static int DisplayPicture (vout_thread_sys_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_sys_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 ProcessMouseState (vout_thread_sys_t *p_vout, const vlc_mouse_t *win_mouse)
static int vout_Start (vout_thread_sys_t *vout, vlc_video_context *vctx, const vout_configuration_t *cfg)
static void * Thread (void *object)
static void vout_ReleaseDisplay (vout_thread_sys_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_sys_t *sys)
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_sys_tvout_CreateCommon (vlc_object_t *object)
vout_thread_tvout_CreateDummy (vlc_object_t *object)
vout_thread_tvout_Create (vlc_object_t *object)
 Creates a video output. More...
vout_thread_tvout_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_sys_t *vout, const video_format_t *original)
static void vout_InitSource (vout_thread_sys_t *vout)
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_devicevout_GetDevice (vout_thread_t *vout)
 Setup the vout for the given configuration and get an associated decoder device. More...


static const struct filter_video_callbacks vout_video_cbs

Macro Definition Documentation



Late pictures having a delay higher than this value are thrashed.






#define VOUT_THREAD_TO_SYS (   vout)     container_of(vout, vout_thread_sys_t, obj.obj)

Typedef Documentation

◆ vout_thread_sys_t

Function Documentation

◆ ChangeFilters()

static void ChangeFilters ( vout_thread_sys_t vout)

◆ ConvertRGB32AndBlend()

static picture_t* ConvertRGB32AndBlend ( vout_thread_sys_t vout,
picture_t pic,
subpicture_t subpic 

◆ DelAllFilterCallbacks()

static void DelAllFilterCallbacks ( vout_thread_sys_t vout)

◆ DelFilterCallbacks()

static int DelFilterCallbacks ( filter_t filter,
void *  opaque 

◆ DisplayNextFrame()

static int DisplayNextFrame ( vout_thread_sys_t sys)

◆ DisplayPicture()

static int DisplayPicture ( vout_thread_sys_t vout,
vlc_tick_t deadline 

◆ EnableWindowLocked()

static int EnableWindowLocked ( vout_thread_sys_t vout,
const video_format_t original 

◆ FilterFlush()

static void FilterFlush ( vout_thread_sys_t sys,
bool  is_locked 

◆ FilterPictureInteractive()

static picture_t* FilterPictureInteractive ( vout_thread_sys_t sys)

◆ FilterRestartCallback()

static int FilterRestartCallback ( vlc_object_t p_this,
char const *  psz_var,
vlc_value_t  oldval,
vlc_value_t  newval,
void *  p_data 

◆ IsPictureLate()

static bool IsPictureLate ( vout_thread_sys_t vout,
picture_t decoded,
vlc_tick_t  system_now,
vlc_tick_t  system_pts 

◆ PreparePicture()

static picture_t* PreparePicture ( vout_thread_sys_t vout,
bool  reuse_decoded,
bool  frame_by_frame 

◆ PrerenderPicture()

static int PrerenderPicture ( vout_thread_sys_t sys,
picture_t filtered,
bool *  render_now,
picture_t **  out_pic,
subpicture_t **  out_subpic 

References vout_display_info_t::can_scale_spu, vout_display_t::cfg, vout_thread_sys_t::clock, ConvertRGB32AndBlend(), vout_thread_sys_t::dar, picture_t::date, vout_thread_sys_t::date, vlc_rational_t::den, vout_display_cfg::display, vout_thread_sys_t::display, 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_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, msg_Err, vlc_rational_t::num, vout_thread_sys_t::obj, ORIENT_NORMAL, video_format_t::orientation, vout_thread_sys_t::pause, picture_BlendSubpicture(), picture_Copy(), picture_pool_Get(), picture_Release(), vout_thread_sys_t::private, vout_thread_private_t::private_pool, vout_thread_sys_t::rate, vout_display_cfg::sar, vout_thread_sys_t::snapshot, vout_display_t::source, vout_thread_sys_t::source, vout_thread_sys_t::spu, vout_thread_sys_t::spu_blend, vout_thread_sys_t::spu_blend_chroma, spu_Render(), vout_display_info_t::subpicture_chromas, subpicture_Delete(), unlikely, es_format_t::video, video_format_ApplyRotation(), video_format_CopyCropAr(), vlc_clock_ConvertToSystem(), VLC_EGENERIC, VLC_OBJECT, VLC_SUCCESS, VLC_TICK_0, VLC_TICK_MAX, vlc_tick_now(), vout_ConvertForDisplay(), vout_display_PlacePicture(), vout_snapshot_IsRequested(), vout_snapshot_Set(), vout_UpdateDisplaySourceProperties(), and vout_display_place_t::width.

Referenced by RenderPicture().

◆ ProcessMouseState()

static void ProcessMouseState ( vout_thread_sys_t p_vout,
const vlc_mouse_t win_mouse 

◆ RenderPicture()

static int RenderPicture ( vout_thread_sys_t sys,
bool  render_now 

◆ Thread()

static void* Thread ( void *  object)

◆ UpdateDeinterlaceFilter()

static void UpdateDeinterlaceFilter ( vout_thread_sys_t sys)

◆ VideoFormatIsCropArEqual()

static bool VideoFormatIsCropArEqual ( video_format_t dst,
const video_format_t src 

◆ vout_ChangeCrop()

void vout_ChangeCrop ( vout_thread_t vout,
const struct vout_crop *restrict  crop 

◆ vout_ChangeDelay()

void vout_ChangeDelay ( vout_thread_t vout,
vlc_tick_t  delay 

◆ vout_ChangeDisplayAspectRatio()

void vout_ChangeDisplayAspectRatio ( vout_thread_t vout,
unsigned  dar_num,
unsigned  dar_den 

◆ vout_ChangeDisplayFilled()

void vout_ChangeDisplayFilled ( vout_thread_t vout,
bool  is_filled 

◆ vout_ChangeDisplaySize()

void vout_ChangeDisplaySize ( vout_thread_t vout,
unsigned  width,
unsigned  height,
void(*)(void *)  cb,
void *  opaque 

◆ vout_ChangeFullscreen()

void vout_ChangeFullscreen ( vout_thread_t vout,
const char *  id 

◆ vout_ChangePause()

void vout_ChangePause ( vout_thread_t vout,
bool  b_paused,
vlc_tick_t  i_date 

◆ vout_ChangeRate()

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 DecoderThread_ChangeRate().

◆ vout_ChangeSource()

int vout_ChangeSource ( vout_thread_t p_vout,
const video_format_t fmt 

Set the new source format for a started vout.

Return values
0on success
-1on error, the vout needs to be restarted to handle the format

References vout_thread_sys_t::original, video_format_IsSimilar(), and VOUT_THREAD_TO_SYS.

Referenced by input_resource_RequestVout(), and vout_Request().

◆ vout_ChangeSpuChannelMargin()

void vout_ChangeSpuChannelMargin ( vout_thread_t vout,
enum vlc_vout_order  order,
int  margin 

◆ vout_ChangeSpuDelay()

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 DecoderThread_ChangeDelay().

◆ vout_ChangeSpuRate()

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 DecoderThread_ChangeRate().

◆ vout_ChangeViewpoint()

void vout_ChangeViewpoint ( vout_thread_t vout,
const vlc_viewpoint_t p_viewpoint 

◆ vout_ChangeWindowed()

void vout_ChangeWindowed ( vout_thread_t vout)

◆ vout_ChangeWindowState()

void vout_ChangeWindowState ( vout_thread_t vout,
unsigned  st 

◆ vout_ChangeZoom()

void vout_ChangeZoom ( vout_thread_t vout,
unsigned  num,
unsigned  den 

◆ vout_ControlChangeFilters()

void vout_ControlChangeFilters ( vout_thread_t vout,
const char *  filters 

◆ vout_ControlChangeInterlacing()

void vout_ControlChangeInterlacing ( vout_thread_t vout,
bool  set 

◆ vout_ControlChangeSubFilters()

void vout_ControlChangeSubFilters ( vout_thread_t vout,
const char *  filters 

◆ vout_ControlChangeSubSources()

void vout_ControlChangeSubSources ( vout_thread_t vout,
const char *  filters 

◆ vout_Create()

vout_thread_t* vout_Create ( vlc_object_t object)

Creates a video output.

References vout_thread_sys_t::chrono, 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, video_format_t::i_chroma, 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::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::static_filter, 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 RequestVoutRsc().

◆ vout_CreateCommon()

static vout_thread_sys_t* vout_CreateCommon ( vlc_object_t object)

◆ vout_CreateDummy()

vout_thread_t* vout_CreateDummy ( vlc_object_t object)

◆ vout_DisableWindow()

static void vout_DisableWindow ( vout_thread_sys_t sys)

◆ vout_display_SizeWindow()

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 

References ORIENT_IS_SWAP.

Referenced by vout_SizeWindow().

◆ vout_DisplayTitle()

void vout_DisplayTitle ( vout_thread_t vout,
const char *  title 

◆ vout_FlushUnlocked()

static void vout_FlushUnlocked ( vout_thread_sys_t vout,
bool  below,
vlc_tick_t  date 

◆ vout_GetDevice()

vlc_decoder_device* vout_GetDevice ( vout_thread_t vout)

Setup the vout for the given configuration and get an associated decoder device.

voutthe video configuration requested.
pointer to a decoder device reference to use with the vout or NULL

Referenced by ModuleThread_GetDecoderDevice().

◆ vout_GetResetStatistic()

void vout_GetResetStatistic ( vout_thread_t vout,
unsigned *restrict  displayed,
unsigned *restrict  lost,
unsigned *restrict  late 

◆ vout_InitSource()

static void vout_InitSource ( vout_thread_sys_t vout)

◆ vout_IsEmpty()

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, picture_fifo_IsEmpty(), and VOUT_THREAD_TO_SYS.

Referenced by vlc_input_decoder_IsEmpty().

◆ vout_MouseState()

void vout_MouseState ( vout_thread_t vout,
const vlc_mouse_t mouse 

◆ vout_NextPicture()

void vout_NextPicture ( vout_thread_t vout,
vlc_tick_t duration 

◆ vout_RegisterSubpictureChannelInternal()

ssize_t vout_RegisterSubpictureChannelInternal ( vout_thread_t vout,
vlc_clock_t clock,
enum vlc_vout_order out_order 

◆ vout_ReleaseDisplay()

static void vout_ReleaseDisplay ( vout_thread_sys_t vout)

◆ vout_Request()

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().

cfgthe video configuration requested.
inputused to get attachments for spu filters
vctxpointer to the video context to use with the vout or NULL
Return values
0on success
-1on error

References vout_thread_sys_t::clock, vout_configuration_t::clock, 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::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_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().

◆ vout_SetAspectRatio()

static void vout_SetAspectRatio ( vout_thread_sys_t sys,
unsigned  dar_num,
unsigned  dar_den 

◆ vout_SetSpuHighlight()

void vout_SetSpuHighlight ( vout_thread_t vout,
const vlc_spu_highlight_t spu_hl 

◆ vout_SizeWindow()

static void vout_SizeWindow ( vout_thread_sys_t vout,
const video_format_t original,
unsigned *restrict  width,
unsigned *restrict  height 

◆ vout_Start()

static int vout_Start ( vout_thread_sys_t vout,
vlc_video_context vctx,
const vout_configuration_t cfg 

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, DelAllFilterCallbacks(), vlc_rational_t::den, vout_thread_sys_t::display, vout_thread_sys_t::display_cfg, vout_thread_sys_t::display_lock, vout_thread_private_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_thread_sys_t::mouse_event, vout_configuration_t::mouse_event, vout_thread_sys_t::mouse_opaque, vout_configuration_t::mouse_opaque, vlc_rational_t::num, vout_thread_sys_t::obj, vout_thread_sys_t::original, vout_thread_sys_t::pause, picture_fifo_Delete(), picture_fifo_New(), vout_thread_sys_t::private, vout_thread_private_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, 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_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().

◆ vout_Stop()

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().

◆ vout_StopDisplay()

void vout_StopDisplay ( vout_thread_t vout)

◆ vout_UpdateWindowSizeLocked()

static void vout_UpdateWindowSizeLocked ( vout_thread_sys_t vout)

◆ VoutCheckFormat()

static bool VoutCheckFormat ( const video_format_t src)

◆ VoutFixFormat()

static void VoutFixFormat ( video_format_t dst,
const video_format_t src 

◆ VoutGetDisplayCfg()

static void VoutGetDisplayCfg ( vout_thread_sys_t p_vout,
const video_format_t fmt,
vout_display_cfg_t cfg 

◆ VoutHoldDecoderDevice()

static vlc_decoder_device* VoutHoldDecoderDevice ( vlc_object_t o,
void *  opaque 

Referenced by vout_Start().

◆ VoutVideoFilterInteractiveNewPicture()

static picture_t* VoutVideoFilterInteractiveNewPicture ( filter_t filter)

◆ VoutVideoFilterStaticNewPicture()

static picture_t* VoutVideoFilterStaticNewPicture ( filter_t filter)

Variable Documentation

◆ vout_video_cbs

const struct filter_video_callbacks vout_video_cbs
Initial value:
= {
static vlc_decoder_device * VoutHoldDecoderDevice(vlc_object_t *o, void *opaque)
Definition: video_output.c:1049

Referenced by ConvertRGB32AndBlend().