|
VLC 4.0.0-dev
|
Video output display: output buffers and rendering. More...
Modules | |
| Video alignment | |
Files | |
| file | vlc_vout_display.h |
| Video output display modules interface. | |
Data Structures | |
| struct | vout_display_placement |
| Display placement and zoom configuration. More... | |
| struct | vout_display_cfg |
| User configuration for a video output display (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 | vlc_display_operations |
| struct | vout_display_t |
| struct | vout_display_place_t |
| Video placement. More... | |
Macros | |
| #define | set_callback_display(activate, priority) |
Typedefs | |
| typedef struct vout_display_t | vout_display_t |
| typedef struct vout_display_owner_t | vout_display_owner_t |
| typedef struct vout_display_cfg | vout_display_cfg_t |
| User configuration for a video output display (vout_display_t) More... | |
| typedef int(* | vout_display_open_cb) (vout_display_t *vd, video_format_t *fmtp, vlc_video_context *context) |
| "vout display" open callback More... | |
Enumerations | |
| enum | vlc_video_fitting { VLC_VIDEO_FIT_NONE , VLC_VIDEO_FIT_SMALLER , VLC_VIDEO_FIT_LARGER , VLC_VIDEO_FIT_WIDTH , VLC_VIDEO_FIT_HEIGHT } |
| Video automatic scale fitting. More... | |
| enum | vout_display_query { VOUT_DISPLAY_CHANGE_DISPLAY_SIZE , VOUT_DISPLAY_CHANGE_DISPLAY_FILLED , VOUT_DISPLAY_CHANGE_ZOOM , VOUT_DISPLAY_CHANGE_SOURCE_ASPECT , VOUT_DISPLAY_CHANGE_SOURCE_CROP } |
| Control query for vout_display_t. More... | |
Functions | |
| 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 *) |
| Creates video output display. More... | |
| void | vout_display_Delete (vout_display_t *) |
| Destroys a video output display. More... | |
| picture_t * | vout_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 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_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 struct vout_display_placement *) |
| 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) |
| Compares two vout_display_place_t. More... | |
| void | vout_display_PlacePicture (vout_display_place_t *restrict place, const video_format_t *restrict source, const struct vout_display_placement *cfg) |
| Computes the intended picture placement inside the display. More... | |
| void | vout_display_TranslateCoordinates (int *x, int *y, const video_format_t *fmt, const struct vout_display_placement *dp) |
| Translates coordinates. More... | |
Video output display: output buffers and rendering.
| #define set_callback_display | ( | activate, | |
| priority | |||
| ) |
| typedef struct vout_display_cfg vout_display_cfg_t |
User configuration for a video output display (vout_display_t)
This primarily controls the size of the display area within the video window, as follows:
| typedef int(* vout_display_open_cb) (vout_display_t *vd, video_format_t *fmtp, vlc_video_context *context) |
"vout display" open callback
| vd | vout display context |
| fmtp | It can be changed by the module to request a different format. |
| context | The video context to configure the display for. |
| typedef struct vout_display_owner_t vout_display_owner_t |
| typedef struct vout_display_t vout_display_t |
| enum vlc_video_fitting |
| enum vout_display_query |
Control query for vout_display_t.
| Enumerator | |||||
|---|---|---|---|---|---|
| VOUT_DISPLAY_CHANGE_DISPLAY_SIZE | Notifies a change in display size.
| ||||
| VOUT_DISPLAY_CHANGE_DISPLAY_FILLED | Notifies a change of the display fitting mode by the user.
| ||||
| VOUT_DISPLAY_CHANGE_ZOOM | Notifies a change of the user zoom factor.
| ||||
| VOUT_DISPLAY_CHANGE_SOURCE_ASPECT | Notifies a change of the sample aspect ratio.
| ||||
| VOUT_DISPLAY_CHANGE_SOURCE_CROP | Notifies a change of the source cropping. The cropping requested is stored by source video_format_t
| ||||
|
inlinestatic |
References vlc_window::type, VLC_WINDOW_TYPE_DUMMY, and vout_display_cfg::window.
| void vout_display_Delete | ( | vout_display_t * | vd | ) |
Destroys a video output display.
References vlc_display_operations::close, container_of, vout_display_priv_t::converters, vout_display_priv_t::display_fmt, filter_chain_Delete(), vout_display_t::ops, picture_pool_Release(), vout_display_priv_t::pool, vout_display_priv_t::source, vout_display_priv_t::src_vctx, video_format_Clean(), VLC_OBJECT, vlc_object_delete, vlc_objres_clear(), and vlc_video_context_Release().
Referenced by vout_CloseWrapper(), and vout_OpenWrapper().
|
inlinestatic |
Displays a picture.
References vlc_display_operations::display, and vout_display_t::ops.
Referenced by RenderPicture().
| void vout_display_GetDefaultDisplaySize | ( | unsigned * | width, |
| unsigned * | height, | ||
| const video_format_t * | source, | ||
| const struct vout_display_placement * | dp | ||
| ) |
Computes the default display size given the source and the display configuration.
This assumes that the picture is already cropped.
References vlc_rational_t::den, video_format_t::i_sar_den, video_format_t::i_sar_num, video_format_t::i_visible_height, video_format_t::i_visible_width, vlc_rational_t::num, ORIENT_IS_SWAP, video_format_t::orientation, vout_display_placement::sar, and vout_display_placement::zoom.
Referenced by vout_display_New(), and vout_display_PlacePicture().
| vout_display_t * vout_display_New | ( | vlc_object_t * | parent, |
| const video_format_t * | source, | ||
| vlc_video_context * | vctx, | ||
| const vout_display_cfg_t * | cfg, | ||
| const char * | module, | ||
| const vout_display_owner_t * | owner | ||
| ) |
Creates video output display.
References vout_display_t::cfg, vout_display_priv_t::cfg, vlc_display_operations::close, vout_display_priv_t::crop, vout_display_cfg::display, vlc_display_operations::display, vout_display_priv_t::display, vout_display_priv_t::display_fmt, vout_display_t::fmt, vlc_object_t::force, vout_display_placement::height, vout_display_t::info, vout_crop::mode, module_get_object(), msg_Dbg, msg_Warn, vout_display_t::obj, vout_display_t::ops, vout_display_t::owner, vout_display_priv_t::pool, vlc_display_operations::prepare, vout_display_t::source, vout_display_priv_t::source, vout_display_priv_t::src_vctx, vout_display_t::sys, unlikely, video_format_Clean(), video_format_Copy(), vlc_custom_create, vlc_module_map(), vlc_module_match(), VLC_OBJECT, vlc_object_delete, vlc_object_logger, vlc_objres_clear(), VLC_SUCCESS, vlc_video_context_Hold(), VOUT_CROP_NONE, vout_display_GetDefaultDisplaySize(), VoutDisplayCreateRender(), and vout_display_placement::width.
Referenced by vout_OpenWrapper().
|
inlinestatic |
Compares two vout_display_place_t.
References vout_display_place_t::height, vout_display_place_t::width, vout_display_place_t::x, and vout_display_place_t::y.
| void vout_display_PlacePicture | ( | vout_display_place_t *restrict | place, |
| const video_format_t *restrict | source, | ||
| const struct vout_display_placement * | cfg | ||
| ) |
Computes the intended picture placement inside the display.
This function computes where to show a picture inside the display with respect to the provided parameters, and returns the result in a vout_display_place_t structure.
This assumes that cropping is done by an external mean.
| place | Storage space for the picture placement [OUT] |
| source | Video source format |
| cfg | Display configuration |
| 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().
\ bug Rendering subpictures is not supported with this function yet. subpic must be NULL .
| vd | display to prepare the picture for |
| picture | picure to be prepared |
| subpic | reserved, must be NULL |
| date | intended time to show the picture |
References vout_display_t::ops, vlc_display_operations::prepare, and vout_ConvertForDisplay().
|
inlinestatic |
References vout_display_t::cfg, vlc_window_ReportMousePressed(), and vout_display_cfg::window.
|
inlinestatic |
References vout_display_t::cfg, vlc_window_ReportMouseReleased(), and vout_display_cfg::window.
|
inlinestatic |
|
inlinestatic |
Helper function that applies the necessary transforms to the mouse position and then calls vout_display_SendEventMouseMoved.
| vd | vout_display_t. |
| m_x | Mouse x position (relative to place, origin is top left). |
| m_y | Mouse y position (relative to place, origin is top left). |
References vout_display_t::cfg, vlc_window_ReportMouseMoved(), and vout_display_cfg::window.
| void vout_display_SetSize | ( | vout_display_t * | vd, |
| unsigned | width, | ||
| unsigned | height | ||
| ) |
| void vout_display_TranslateCoordinates | ( | int * | x, |
| int * | y, | ||
| const video_format_t * | fmt, | ||
| const struct vout_display_placement * | dp | ||
| ) |
Translates coordinates.
This translates coordinates from window pixel coordinate space to original video sample coordinate space.
| x | pointer to abscissa to be translated |
| y | pointer to ordinate to be translated |
| fmt | video format |
| dp | display configuration |