VLC  4.0.0-dev
Files | Data Structures | Macros | Typedefs | Enumerations | Functions

Video output display: output buffers and rendering. More...

Collaboration diagram for Video output display:

Files

file  vlc_vout_display.h
 Video output display modules interface.
 

Data Structures

struct  vlc_video_align
 
struct  vout_display_cfg
 Initial/Current configuration for a vout_display_t. More...
 
struct  vout_display_info_t
 Information from a vout_display_t to configure the core behaviour. More...
 
struct  vout_display_owner_t
 Vout owner structures. More...
 
struct  vout_display_t
 
struct  vout_display_place_t
 Structure used to store the result of a vout_display_PlacePicture. More...
 

Macros

#define VLC_VIDEO_ALIGN_CENTER   0
 Possible alignments for vout_display. More...
 
#define VLC_VIDEO_ALIGN_LEFT   1
 
#define VLC_VIDEO_ALIGN_RIGHT   2
 
#define VLC_VIDEO_ALIGN_TOP   1
 
#define VLC_VIDEO_ALIGN_BOTTOM   2
 
#define set_callback_display(activate, priority)
 

Typedefs

typedef struct vout_display_t vout_display_t
 
typedef struct vout_display_sys_t vout_display_sys_t
 
typedef struct vout_display_owner_t vout_display_owner_t
 
typedef struct vlc_video_align vlc_video_align_t
 
typedef struct vout_display_cfg vout_display_cfg_t
 Initial/Current configuration for a vout_display_t. More...
 
typedef int(* vout_display_open_cb) (vout_display_t *vd, const vout_display_cfg_t *cfg, video_format_t *fmtp, vlc_video_context *context)
 "vout display" open callback More...
 

Enumerations

enum  {
  VOUT_DISPLAY_RESET_PICTURES, VOUT_DISPLAY_CHANGE_DISPLAY_SIZE, VOUT_DISPLAY_CHANGE_DISPLAY_FILLED, VOUT_DISPLAY_CHANGE_ZOOM,
  VOUT_DISPLAY_CHANGE_SOURCE_ASPECT, VOUT_DISPLAY_CHANGE_SOURCE_CROP, VOUT_DISPLAY_CHANGE_VIEWPOINT
}
 Control query for vout_display_t. More...
 
enum  { VOUT_DISPLAY_EVENT_VIEWPOINT_MOVED }
 Event from vout_display_t. More...
 

Functions

vout_display_tvout_display_New (vlc_object_t *, const video_format_t *, vlc_video_context *, const vout_display_cfg_t *, const char *module, const vout_display_owner_t *)
 Creates video output display. More...
 
void vout_display_Delete (vout_display_t *)
 Destroys a video output display. More...
 
picture_tvout_display_Prepare (vout_display_t *vd, picture_t *picture, subpicture_t *subpic, vlc_tick_t date)
 Prepares a picture for display. More...
 
static void vout_display_Display (vout_display_t *vd, picture_t *picture)
 Displays a picture. More...
 
void vout_display_SetSize (vout_display_t *vd, unsigned width, unsigned height)
 
static int vout_display_Control (vout_display_t *vd, int query,...)
 
void vout_display_SendEventPicturesInvalid (vout_display_t *vd)
 
static void vout_display_SendEventMousePressed (vout_display_t *vd, int button)
 
static void vout_display_SendEventMouseReleased (vout_display_t *vd, int button)
 
static void vout_display_SendEventMouseDoubleClick (vout_display_t *vd)
 
static void vout_display_SendEventViewpointMoved (vout_display_t *vd, const vlc_viewpoint_t *vp)
 
static void vout_display_SendMouseMovedDisplayCoordinates (vout_display_t *vd, int m_x, int m_y)
 Helper function that applies the necessary transforms to the mouse position and then calls vout_display_SendEventMouseMoved. More...
 
static bool vout_display_cfg_IsWindowed (const vout_display_cfg_t *cfg)
 
void vout_display_GetDefaultDisplaySize (unsigned *width, unsigned *height, const video_format_t *source, const vout_display_cfg_t *)
 Computes the default display size given the source and the display configuration. More...
 
static bool vout_display_PlaceEquals (const vout_display_place_t *p1, const vout_display_place_t *p2)
 
void vout_display_PlacePicture (vout_display_place_t *place, const video_format_t *source, const vout_display_cfg_t *cfg)
 Computes how to place a picture inside the display to respect the given parameters. More...
 
void vout_display_TranslateMouseState (vout_display_t *vd, vlc_mouse_t *video, const vlc_mouse_t *window)
 Translates mouse state. More...
 

Detailed Description

Video output display: output buffers and rendering.

Macro Definition Documentation

◆ set_callback_display

#define set_callback_display (   activate,
  priority 
)
Value:
{ \
vout_display_open_cb open__ = activate; \
(void) open__; \
set_callback(activate) \
} \
set_capability( "vout display", priority )

◆ VLC_VIDEO_ALIGN_BOTTOM

#define VLC_VIDEO_ALIGN_BOTTOM   2

◆ VLC_VIDEO_ALIGN_CENTER

#define VLC_VIDEO_ALIGN_CENTER   0

Possible alignments for vout_display.

Referenced by VoutGetDisplayCfg().

◆ VLC_VIDEO_ALIGN_LEFT

#define VLC_VIDEO_ALIGN_LEFT   1

◆ VLC_VIDEO_ALIGN_RIGHT

#define VLC_VIDEO_ALIGN_RIGHT   2

◆ VLC_VIDEO_ALIGN_TOP

#define VLC_VIDEO_ALIGN_TOP   1

Typedef Documentation

◆ vlc_video_align_t

◆ vout_display_cfg_t

Initial/Current configuration for a vout_display_t.

◆ vout_display_open_cb

typedef int(* vout_display_open_cb) (vout_display_t *vd, const vout_display_cfg_t *cfg, video_format_t *fmtp, vlc_video_context *context)

"vout display" open callback

Parameters
vdvout display context
cfgInitial and current configuration.
fmtpBy default, it is equal to vd->source except for the aspect ratio which is undefined(0) and is ignored. It can be changed by the module to request a different format.
contextXXX: to be defined.
Returns
VLC_SUCCESS or a VLC error code

◆ vout_display_owner_t

◆ vout_display_sys_t

◆ vout_display_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Control query for vout_display_t.

Enumerator
VOUT_DISPLAY_RESET_PICTURES 
VOUT_DISPLAY_CHANGE_DISPLAY_SIZE 
VOUT_DISPLAY_CHANGE_DISPLAY_FILLED 
VOUT_DISPLAY_CHANGE_ZOOM 
VOUT_DISPLAY_CHANGE_SOURCE_ASPECT 
VOUT_DISPLAY_CHANGE_SOURCE_CROP 
VOUT_DISPLAY_CHANGE_VIEWPOINT 

◆ anonymous enum

anonymous enum

Event from vout_display_t.

Events modifiying the state may be sent multiple times. Only the transition will be retained and acted upon.

Enumerator
VOUT_DISPLAY_EVENT_VIEWPOINT_MOVED 

Function Documentation

◆ vout_display_cfg_IsWindowed()

static bool vout_display_cfg_IsWindowed ( const vout_display_cfg_t cfg)
inlinestatic

◆ vout_display_Control()

static int vout_display_Control ( vout_display_t vd,
int  query,
  ... 
)
inlinestatic

◆ vout_display_Delete()

void vout_display_Delete ( vout_display_t )

◆ vout_display_Display()

static void vout_display_Display ( vout_display_t vd,
picture_t picture 
)
inlinestatic

◆ vout_display_GetDefaultDisplaySize()

void vout_display_GetDefaultDisplaySize ( unsigned *  width,
unsigned *  height,
const video_format_t source,
const vout_display_cfg_t  
)

◆ vout_display_New()

vout_display_t* vout_display_New ( vlc_object_t ,
const video_format_t ,
vlc_video_context ,
const vout_display_cfg_t ,
const char *  module,
const vout_display_owner_t  
)

◆ vout_display_PlaceEquals()

static bool vout_display_PlaceEquals ( const vout_display_place_t p1,
const vout_display_place_t p2 
)
inlinestatic

◆ vout_display_PlacePicture()

void vout_display_PlacePicture ( vout_display_place_t place,
const video_format_t source,
const vout_display_cfg_t cfg 
)

◆ vout_display_Prepare()

picture_t* vout_display_Prepare ( vout_display_t vd,
picture_t picture,
subpicture_t subpic,
vlc_tick_t  date 
)

Prepares a picture for display.

This renders a picture for subsequent display, with vout_display_Display().

Note
A reference to the input picture is consumed by the function, which returns a reference to an output picture for display. The input and output picture may or may not be equal depending on the underlying display setup.
Bug:
Currently, only one picture can be prepared at a time. It must be displayed with vout_display_Display() before any picture is prepared or before the display is destroyd with vout_display_Delete().

\ bug Rendering subpictures is not supported with this function yet. subpic must be NULL .

Parameters
vddisplay to prepare the picture for
picturepicure to be prepared
subpicreserved, must be NULL
dateintended time to show the picture
Returns
The prepared picture is returned, NULL on error.

References vout_display_t::prepare, and vout_ConvertForDisplay().

◆ vout_display_SendEventMouseDoubleClick()

static void vout_display_SendEventMouseDoubleClick ( vout_display_t vd)
inlinestatic

◆ vout_display_SendEventMousePressed()

static void vout_display_SendEventMousePressed ( vout_display_t vd,
int  button 
)
inlinestatic

◆ vout_display_SendEventMouseReleased()

static void vout_display_SendEventMouseReleased ( vout_display_t vd,
int  button 
)
inlinestatic

◆ vout_display_SendEventPicturesInvalid()

void vout_display_SendEventPicturesInvalid ( vout_display_t vd)

◆ vout_display_SendEventViewpointMoved()

static void vout_display_SendEventViewpointMoved ( vout_display_t vd,
const vlc_viewpoint_t vp 
)
inlinestatic

◆ vout_display_SendMouseMovedDisplayCoordinates()

static void vout_display_SendMouseMovedDisplayCoordinates ( vout_display_t vd,
int  m_x,
int  m_y 
)
inlinestatic

Helper function that applies the necessary transforms to the mouse position and then calls vout_display_SendEventMouseMoved.

Parameters
vdvout_display_t.
m_xMouse x position (relative to place, origin is top left).
m_yMouse y position (relative to place, origin is top left).

References vout_display_t::cfg, vout_window_ReportMouseMoved(), and vout_display_cfg::window.

◆ vout_display_SetSize()

void vout_display_SetSize ( vout_display_t vd,
unsigned  width,
unsigned  height 
)

◆ vout_display_TranslateMouseState()

void vout_display_TranslateMouseState ( vout_display_t vd,
vlc_mouse_t video,
const vlc_mouse_t window 
)