VLC 4.0.0-dev
vlc_display_operations Struct Reference

#include <vlc_vout_display.h>

Data Fields

void(* close )(vout_display_t *)
 Destroys the display. More...
 
void(* prepare )(vout_display_t *, picture_t *pic, subpicture_t *subpic, vlc_tick_t date)
 Prepares a picture and an optional subpicture for display (optional). More...
 
void(* display )(vout_display_t *, picture_t *pic)
 Displays a picture. More...
 
int(* control )(vout_display_t *, int query)
 Performs a control request (mandatory). More...
 
int(* reset_pictures )(vout_display_t *, video_format_t *fmtp)
 Reset the picture format handled by the module. More...
 
int(* set_viewpoint )(vout_display_t *, const vlc_viewpoint_t *vp)
 Notifies a change of VR/360° viewpoint. More...
 
void(* set_icc_profile )(vout_display_t *, const vlc_icc_profile_t *prof)
 Notifies a change in output ICC profile. More...
 
int(* update_format )(vout_display_t *, const video_format_t *fmt, vlc_video_context *ctx)
 Notifies a change in the input format. More...
 

Field Documentation

◆ close

void(* vlc_display_operations::close) (vout_display_t *)

Destroys the display.

Referenced by vout_display_Delete(), and vout_display_New().

◆ control

int(* vlc_display_operations::control) (vout_display_t *, int query)

Performs a control request (mandatory).

Parameters
queryrequest type

See vout_display_query for the list of request types.

Referenced by vout_display_Control().

◆ display

void(* vlc_display_operations::display) (vout_display_t *, picture_t *pic)

Displays a picture.

This callback is invoked at the time when the picture should be shown. The picture must be displayed as soon as possible.

If NULL, prepare must be valid. In that case, the plugin can handle asynchronous display at the time given by the prepare call.

Note
The picture buffers may have multiple references. Therefore the pixel content of the picture or of the subpicture must not be changed.

Referenced by RenderPicture(), vout_display_Display(), and vout_display_New().

◆ prepare

void(* vlc_display_operations::prepare) (vout_display_t *, picture_t *pic, subpicture_t *subpic, vlc_tick_t date)

Prepares a picture and an optional subpicture for display (optional).

This callback is called once a picture buffer content is ready, as far in advance as possible to the intended display time, but only after the previous picture was displayed.

The callback should perform any preprocessing operation that will not actually cause the picture to be shown, such as blending the subpicture or upload the picture to video memory. If supported, this can also queue the picture to be shown asynchronously at the given date.

If vlc_display_operations::prepare and vlc_display_operations::display are not NULL, there is an implicit guarantee that display will be invoked with the exact same picture afterwards: prepare 1st picture, display 1st picture, prepare 2nd picture, display 2nd picture, and so on.

Note
The picture buffers may have multiple references. Therefore the pixel content of the picture or of the subpicture must not be changed.
Parameters
picpicture
subpicsubpicture to render over the picture
datetime when the picture is intended to be shown

Referenced by RenderPicture(), vout_display_New(), and vout_display_Prepare().

◆ reset_pictures

int(* vlc_display_operations::reset_pictures) (vout_display_t *, video_format_t *fmtp)

Reset the picture format handled by the module.

This occurs after a VOUT_DISPLAY_CHANGE_DISPLAY_SIZE, VOUT_DISPLAY_CHANGE_DISPLAY_FILLED, VOUT_DISPLAY_CHANGE_ZOOM, VOUT_DISPLAY_CHANGE_SOURCE_ASPECT or VOUT_DISPLAY_CHANGE_SOURCE_CROP control query returns an error.

Parameters
ftmpvideo format that the module expects as input

Referenced by vout_display_Reset().

◆ set_icc_profile

void(* vlc_display_operations::set_icc_profile) (vout_display_t *, const vlc_icc_profile_t *prof)

Notifies a change in output ICC profile.

May be NULL. Memory owned by the caller.

Parameters
profnew ICC profile associated with display, or NULL for none

Referenced by vout_SetDisplayIccProfile().

◆ set_viewpoint

int(* vlc_display_operations::set_viewpoint) (vout_display_t *, const vlc_viewpoint_t *vp)

Notifies a change of VR/360° viewpoint.

May be NULL.

Parameters
vpviewpoint to use on the next render

Referenced by vout_SetDisplayViewpoint().

◆ update_format

int(* vlc_display_operations::update_format) (vout_display_t *, const video_format_t *fmt, vlc_video_context *ctx)

Notifies a change in the input format.

The format size is not expected to change.

Parameters
fmtthe requested input format
ctxthe video context
Returns
VLC_SUCCESS on success, another value on error

Referenced by vout_SetDisplayFormat().


The documentation for this struct was generated from the following file: