VLC  3.0.21
Data Structures | Macros | Functions
video_output.c File Reference
Include dependency graph for video_output.c:

Data Structures

struct  vout_filter_t
 

Macros

#define VOUT_REDISPLAY_DELAY   (INT64_C(80000))
 
#define VOUT_DISPLAY_LATE_THRESHOLD   (INT64_C(20000))
 Late pictures having a delay higher than this value are thrashed. More...
 
#define VOUT_MWAIT_TOLERANCE   (INT64_C(4000))
 

Functions

static void * Thread (void *)
 
static void VoutDestructor (vlc_object_t *)
 
static int VoutValidateFormat (video_format_t *dst, const video_format_t *src)
 
static void VideoFormatCopyCropAr (video_format_t *dst, const video_format_t *src)
 
static bool VideoFormatIsCropArEqual (video_format_t *dst, const video_format_t *src)
 
static vout_thread_tVoutCreate (vlc_object_t *object, const vout_configuration_t *cfg)
 
vout_thread_tvout_Request (vlc_object_t *object, const vout_configuration_t *cfg)
 Returns a suitable vout or release the given one. More...
 
void vout_Close (vout_thread_t *vout)
 This function will close a vout created by vout_Request. More...
 
void vout_Cancel (vout_thread_t *vout, bool canceled)
 
void vout_ChangePause (vout_thread_t *vout, bool is_paused, vlc_tick_t date)
 This function will (un)pause the display of pictures. More...
 
void vout_GetResetStatistic (vout_thread_t *vout, unsigned *restrict displayed, unsigned *restrict lost)
 
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...
 
bool vout_IsEmpty (vout_thread_t *vout)
 This function will return true if no more pictures are to be displayed. 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_DisplayTitle (vout_thread_t *vout, const char *title)
 This function will ask the display of the input title. More...
 
void vout_WindowMouseEvent (vout_thread_t *vout, const vout_window_mouse_event_t *mouse)
 
void vout_PutSubpicture (vout_thread_t *vout, subpicture_t *subpic)
 
int vout_RegisterSubpictureChannel (vout_thread_t *vout)
 
void vout_FlushSubpictureChannel (vout_thread_t *vout, int channel)
 
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_ChangeAspectRatio (vout_thread_t *p_vout, unsigned int i_num, unsigned int i_den)
 
void vout_ControlChangeFullscreen (vout_thread_t *vout, bool fullscreen)
 
void vout_ControlChangeWindowState (vout_thread_t *vout, unsigned st)
 
void vout_ControlChangeDisplayFilled (vout_thread_t *vout, bool is_filled)
 
void vout_ControlChangeZoom (vout_thread_t *vout, int num, int den)
 
void vout_ControlChangeSampleAspectRatio (vout_thread_t *vout, unsigned num, unsigned den)
 
void vout_ControlChangeCropRatio (vout_thread_t *vout, unsigned num, unsigned den)
 
void vout_ControlChangeCropWindow (vout_thread_t *vout, int x, int y, int width, int height)
 
void vout_ControlChangeCropBorder (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_ControlChangeSubMargin (vout_thread_t *vout, int margin)
 
void vout_ControlChangeViewpoint (vout_thread_t *vout, const vlc_viewpoint_t *p_viewpoint)
 
static void VoutGetDisplayCfg (vout_thread_t *vout, vout_display_cfg_t *cfg, const char *title)
 
vout_window_tvout_NewDisplayWindow (vout_thread_t *vout, unsigned type)
 
void vout_DeleteDisplayWindow (vout_thread_t *vout, vout_window_t *window)
 
void vout_SetDisplayWindowSize (vout_thread_t *vout, unsigned width, unsigned height)
 
int vout_HideWindowMouse (vout_thread_t *vout, bool hide)
 
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_tVoutVideoFilterInteractiveNewPicture (filter_t *filter)
 
static picture_tVoutVideoFilterStaticNewPicture (filter_t *filter)
 
static void ThreadFilterFlush (vout_thread_t *vout, bool is_locked)
 
static void ThreadChangeFilters (vout_thread_t *vout, const video_format_t *source, const char *filters, int deinterlace, bool is_locked)
 
static int ThreadDisplayPreparePicture (vout_thread_t *vout, bool reuse, bool frame_by_frame)
 
static picture_tConvertRGB32AndBlendBufferNew (filter_t *filter)
 
static picture_tConvertRGB32AndBlend (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)
 
static void ThreadDisplaySubpicture (vout_thread_t *vout, subpicture_t *subpicture)
 
static void ThreadFlushSubpicture (vout_thread_t *vout, int channel)
 
static void ThreadDisplayOsdTitle (vout_thread_t *vout, const char *string)
 
static void ThreadChangeSubSources (vout_thread_t *vout, const char *filters)
 
static void ThreadChangeSubFilters (vout_thread_t *vout, const char *filters)
 
static void ThreadChangeSubMargin (vout_thread_t *vout, int margin)
 
static void ThreadChangePause (vout_thread_t *vout, bool is_paused, vlc_tick_t date)
 
static void ThreadFlush (vout_thread_t *vout, bool below, vlc_tick_t date)
 
static void ThreadStep (vout_thread_t *vout, vlc_tick_t *duration)
 
static void ThreadChangeFullscreen (vout_thread_t *vout, bool fullscreen)
 
static void ThreadChangeWindowState (vout_thread_t *vout, unsigned state)
 
static void ThreadChangeWindowMouse (vout_thread_t *vout, const vout_window_mouse_event_t *mouse)
 
static void ThreadChangeDisplayFilled (vout_thread_t *vout, bool is_filled)
 
static void ThreadChangeZoom (vout_thread_t *vout, int num, int den)
 
static void ThreadChangeAspectRatio (vout_thread_t *vout, unsigned num, unsigned den)
 
static void ThreadExecuteCropWindow (vout_thread_t *vout, unsigned x, unsigned y, unsigned width, unsigned height)
 
static void ThreadExecuteCropBorder (vout_thread_t *vout, unsigned left, unsigned top, unsigned right, unsigned bottom)
 
static void ThreadExecuteCropRatio (vout_thread_t *vout, unsigned num, unsigned den)
 
static void ThreadExecuteViewpoint (vout_thread_t *vout, const vlc_viewpoint_t *p_viewpoint)
 
static int ThreadStart (vout_thread_t *vout, vout_display_state_t *state)
 
static void ThreadStop (vout_thread_t *vout, vout_display_state_t *state)
 
static void ThreadInit (vout_thread_t *vout)
 
static void ThreadClean (vout_thread_t *vout)
 
static int ThreadReinit (vout_thread_t *vout, const vout_configuration_t *cfg)
 
static void ThreadCancel (vout_thread_t *vout, bool canceled)
 
static int ThreadControl (vout_thread_t *vout, vout_control_cmd_t cmd)
 

Macro Definition Documentation

◆ VOUT_DISPLAY_LATE_THRESHOLD

#define VOUT_DISPLAY_LATE_THRESHOLD   (INT64_C(20000))

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

◆ VOUT_MWAIT_TOLERANCE

#define VOUT_MWAIT_TOLERANCE   (INT64_C(4000))

◆ VOUT_REDISPLAY_DELAY

#define VOUT_REDISPLAY_DELAY   (INT64_C(80000))

Function Documentation

◆ ConvertRGB32AndBlend()

static picture_t* ConvertRGB32AndBlend ( vout_thread_t vout,
picture_t pic,
subpicture_t subpic 
)
static

◆ ConvertRGB32AndBlendBufferNew()

static picture_t* ConvertRGB32AndBlendBufferNew ( filter_t filter)
static

◆ FilterRestartCallback()

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

◆ Thread()

static void * Thread ( void *  object)
static

◆ ThreadCancel()

static void ThreadCancel ( vout_thread_t vout,
bool  canceled 
)
static

◆ ThreadChangeAspectRatio()

static void ThreadChangeAspectRatio ( vout_thread_t vout,
unsigned  num,
unsigned  den 
)
static

◆ ThreadChangeDisplayFilled()

static void ThreadChangeDisplayFilled ( vout_thread_t vout,
bool  is_filled 
)
static

◆ ThreadChangeFilters()

static void ThreadChangeFilters ( vout_thread_t vout,
const video_format_t source,
const char *  filters,
int  deinterlace,
bool  is_locked 
)
static

◆ ThreadChangeFullscreen()

static void ThreadChangeFullscreen ( vout_thread_t vout,
bool  fullscreen 
)
static

◆ ThreadChangePause()

static void ThreadChangePause ( vout_thread_t vout,
bool  is_paused,
vlc_tick_t  date 
)
static

◆ ThreadChangeSubFilters()

static void ThreadChangeSubFilters ( vout_thread_t vout,
const char *  filters 
)
static

◆ ThreadChangeSubMargin()

static void ThreadChangeSubMargin ( vout_thread_t vout,
int  margin 
)
static

◆ ThreadChangeSubSources()

static void ThreadChangeSubSources ( vout_thread_t vout,
const char *  filters 
)
static

◆ ThreadChangeWindowMouse()

static void ThreadChangeWindowMouse ( vout_thread_t vout,
const vout_window_mouse_event_t mouse 
)
static

◆ ThreadChangeWindowState()

static void ThreadChangeWindowState ( vout_thread_t vout,
unsigned  state 
)
static

◆ ThreadChangeZoom()

static void ThreadChangeZoom ( vout_thread_t vout,
int  num,
int  den 
)
static

◆ ThreadClean()

static void ThreadClean ( vout_thread_t vout)
static

◆ ThreadControl()

static int ThreadControl ( vout_thread_t vout,
vout_control_cmd_t  cmd 
)
static

Referenced by Thread().

◆ ThreadDelAllFilterCallbacks()

static void ThreadDelAllFilterCallbacks ( vout_thread_t vout)
static

◆ ThreadDelFilterCallbacks()

static int ThreadDelFilterCallbacks ( filter_t filter,
void *  opaque 
)
static

< No error

◆ ThreadDisplayOsdTitle()

static void ThreadDisplayOsdTitle ( vout_thread_t vout,
const char *  string 
)
static

◆ ThreadDisplayPicture()

static int ThreadDisplayPicture ( vout_thread_t vout,
vlc_tick_t deadline 
)
static

< Unspecified error

< Unspecified error

< Unspecified error

< Unspecified error

Referenced by Thread().

◆ ThreadDisplayPreparePicture()

static int ThreadDisplayPreparePicture ( vout_thread_t vout,
bool  reuse,
bool  frame_by_frame 
)
static

◆ ThreadDisplayRenderPicture()

static int ThreadDisplayRenderPicture ( vout_thread_t vout,
bool  is_forced 
)
static

< Unspecified error

< Unspecified error

< Unspecified error

< No error

◆ ThreadDisplaySubpicture()

static void ThreadDisplaySubpicture ( vout_thread_t vout,
subpicture_t subpicture 
)
static

◆ ThreadExecuteCropBorder()

static void ThreadExecuteCropBorder ( vout_thread_t vout,
unsigned  left,
unsigned  top,
unsigned  right,
unsigned  bottom 
)
static

◆ ThreadExecuteCropRatio()

static void ThreadExecuteCropRatio ( vout_thread_t vout,
unsigned  num,
unsigned  den 
)
static

◆ ThreadExecuteCropWindow()

static void ThreadExecuteCropWindow ( vout_thread_t vout,
unsigned  x,
unsigned  y,
unsigned  width,
unsigned  height 
)
static

◆ ThreadExecuteViewpoint()

static void ThreadExecuteViewpoint ( vout_thread_t vout,
const vlc_viewpoint_t p_viewpoint 
)
static

◆ ThreadFilterFlush()

static void ThreadFilterFlush ( vout_thread_t vout,
bool  is_locked 
)
static

◆ ThreadFlush()

static void ThreadFlush ( vout_thread_t vout,
bool  below,
vlc_tick_t  date 
)
static

◆ ThreadFlushSubpicture()

static void ThreadFlushSubpicture ( vout_thread_t vout,
int  channel 
)
static

◆ ThreadInit()

static void ThreadInit ( vout_thread_t vout)
static

◆ ThreadReinit()

static int ThreadReinit ( vout_thread_t vout,
const vout_configuration_t cfg 
)
static

< Unspecified error

< No error

< Unspecified error

< No error

◆ ThreadStart()

static int ThreadStart ( vout_thread_t vout,
vout_display_state_t state 
)
static

< No error

< Unspecified error

◆ ThreadStep()

static void ThreadStep ( vout_thread_t vout,
vlc_tick_t duration 
)
static

◆ ThreadStop()

static void ThreadStop ( vout_thread_t vout,
vout_display_state_t state 
)
static

◆ VideoFormatCopyCropAr()

static void VideoFormatCopyCropAr ( video_format_t dst,
const video_format_t src 
)
static

Referenced by vout_GetPicture().

◆ VideoFormatIsCropArEqual()

static bool VideoFormatIsCropArEqual ( video_format_t dst,
const video_format_t src 
)
static

◆ vout_Cancel()

void vout_Cancel ( vout_thread_t vout,
bool  canceled 
)

◆ vout_ChangePause()

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

Referenced by DecoderThread().

◆ vout_ControlChangeCropBorder()

void vout_ControlChangeCropBorder ( vout_thread_t vout,
int  left,
int  top,
int  right,
int  bottom 
)

◆ vout_ControlChangeCropRatio()

void vout_ControlChangeCropRatio ( vout_thread_t vout,
unsigned  num,
unsigned  den 
)

◆ vout_ControlChangeCropWindow()

void vout_ControlChangeCropWindow ( vout_thread_t vout,
int  x,
int  y,
int  width,
int  height 
)

◆ vout_ControlChangeDisplayFilled()

void vout_ControlChangeDisplayFilled ( vout_thread_t vout,
bool  is_filled 
)

◆ vout_ControlChangeFilters()

void vout_ControlChangeFilters ( vout_thread_t vout,
const char *  filters 
)

◆ vout_ControlChangeFullscreen()

void vout_ControlChangeFullscreen ( vout_thread_t vout,
bool  fullscreen 
)

◆ vout_ControlChangeSampleAspectRatio()

void vout_ControlChangeSampleAspectRatio ( vout_thread_t vout,
unsigned  num,
unsigned  den 
)

◆ vout_ControlChangeSubFilters()

void vout_ControlChangeSubFilters ( vout_thread_t vout,
const char *  filters 
)

◆ vout_ControlChangeSubMargin()

void vout_ControlChangeSubMargin ( vout_thread_t vout,
int  margin 
)

◆ vout_ControlChangeSubSources()

void vout_ControlChangeSubSources ( vout_thread_t vout,
const char *  filters 
)

◆ vout_ControlChangeViewpoint()

void vout_ControlChangeViewpoint ( vout_thread_t vout,
const vlc_viewpoint_t p_viewpoint 
)

◆ vout_ControlChangeWindowState()

void vout_ControlChangeWindowState ( vout_thread_t vout,
unsigned  st 
)

◆ vout_ControlChangeZoom()

void vout_ControlChangeZoom ( vout_thread_t vout,
int  num,
int  den 
)

◆ vout_DeleteDisplayWindow()

void vout_DeleteDisplayWindow ( vout_thread_t vout,
vout_window_t window 
)

◆ vout_DisplayTitle()

void vout_DisplayTitle ( vout_thread_t vout,
const char *  title 
)

This function will ask the display of the input title.

◆ vout_Flush()

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.

◆ vout_GetResetStatistic()

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

◆ vout_HideWindowMouse()

int vout_HideWindowMouse ( vout_thread_t vout,
bool  hide 
)

< Unspecified error

◆ vout_IsEmpty()

bool vout_IsEmpty ( vout_thread_t vout)

This function will return true if no more pictures are to be displayed.

◆ vout_NewDisplayWindow()

vout_window_t* vout_NewDisplayWindow ( vout_thread_t vout,
unsigned  type 
)

◆ vout_NextPicture()

void vout_NextPicture ( vout_thread_t vout,
vlc_tick_t duration 
)

This function will force to display the next picture while paused.

◆ vout_SetDisplayWindowSize()

void vout_SetDisplayWindowSize ( vout_thread_t vout,
unsigned  width,
unsigned  height 
)

◆ vout_WindowMouseEvent()

void vout_WindowMouseEvent ( vout_thread_t vout,
const vout_window_mouse_event_t mouse 
)

◆ VoutCreate()

static vout_thread_t* VoutCreate ( vlc_object_t object,
const vout_configuration_t cfg 
)
static

◆ VoutDestructor()

static void VoutDestructor ( vlc_object_t object)
static

◆ VoutGetDisplayCfg()

static void VoutGetDisplayCfg ( vout_thread_t vout,
vout_display_cfg_t cfg,
const char *  title 
)
static

◆ VoutValidateFormat()

static int VoutValidateFormat ( video_format_t dst,
const video_format_t src 
)
static

◆ VoutVideoFilterInteractiveNewPicture()

static picture_t* VoutVideoFilterInteractiveNewPicture ( filter_t filter)
static

◆ VoutVideoFilterStaticNewPicture()

static picture_t* VoutVideoFilterStaticNewPicture ( filter_t filter)
static