VLC
4.0.0-dev
|
Video rendering, output and window management. More...
![]() |
Modules | |
Sub-picture channels | |
Video sub-pictures | |
Subpictures are pictures that should be displayed on top of the video, like subtitles and OSD. | |
Video output display | |
Video output display: output buffers and rendering. | |
Video window | |
Window management. | |
Files | |
file | vlc_vout.h |
Video output thread interface. | |
Data Structures | |
struct | vout_thread_t |
Video output thread descriptor. More... | |
Macros | |
#define | VOUT_ALIGN_LEFT 0x0001 |
#define | VOUT_ALIGN_RIGHT 0x0002 |
#define | VOUT_ALIGN_HMASK 0x0003 |
#define | VOUT_ALIGN_TOP 0x0004 |
#define | VOUT_ALIGN_BOTTOM 0x0008 |
#define | VOUT_ALIGN_VMASK 0x000C |
#define | VOUT_SPU_CHANNEL_INVALID (-1) /* Always fails in comparison */ |
#define | VOUT_SPU_CHANNEL_OSD 0 /* OSD channel is automatically cleared */ |
#define | VOUT_SPU_CHANNEL_OSD_HSLIDER 1 |
#define | VOUT_SPU_CHANNEL_OSD_VSLIDER 2 |
#define | VOUT_SPU_CHANNEL_OSD_COUNT 3 |
#define | vout_FlushAll(vout) vout_Flush( vout, VLC_TICK_INVALID ) |
Empty all the pending pictures in the vout. More... | |
Typedefs | |
typedef struct vout_thread_sys_t | vout_thread_sys_t |
Video output thread private structure. More... | |
Enumerations | |
enum | vlc_vout_order { VLC_VOUT_ORDER_NONE, VLC_VOUT_ORDER_PRIMARY, VLC_VOUT_ORDER_SECONDARY } |
vout or spu_channel order More... | |
Functions | |
void | vout_Close (vout_thread_t *vout) |
Destroys a vout. More... | |
int | vout_GetSnapshot (vout_thread_t *p_vout, block_t **pp_image, picture_t **pp_picture, video_format_t *p_fmt, const char *psz_format, vlc_tick_t i_timeout) |
This function will handle a snapshot request. More... | |
picture_t * | vout_GetPicture (vout_thread_t *) |
Allocates a video output picture buffer. More... | |
void | vout_PutPicture (vout_thread_t *, picture_t *) |
It gives to the vout a picture to be displayed. More... | |
void | vout_PutSubpicture (vout_thread_t *, subpicture_t *) |
ssize_t | vout_RegisterSubpictureChannel (vout_thread_t *) |
void | vout_UnregisterSubpictureChannel (vout_thread_t *, size_t) |
void | vout_FlushSubpictureChannel (vout_thread_t *, size_t) |
void | vout_Flush (vout_thread_t *p_vout, vlc_tick_t i_date) |
This function will ensure that all ready/displayed pictures have at most the provided date. More... | |
Video rendering, output and window management.
This module describes the programming interface for video output threads. It includes functions allowing to open a new thread, send pictures to a thread, and destroy a previously opened video output thread.
#define VOUT_ALIGN_BOTTOM 0x0008 |
Referenced by VoutGetDisplayCfg().
#define VOUT_ALIGN_HMASK 0x0003 |
#define VOUT_ALIGN_LEFT 0x0001 |
Referenced by VoutGetDisplayCfg().
#define VOUT_ALIGN_RIGHT 0x0002 |
Referenced by VoutGetDisplayCfg().
#define VOUT_ALIGN_TOP 0x0004 |
Referenced by VoutGetDisplayCfg().
#define VOUT_ALIGN_VMASK 0x000C |
#define vout_FlushAll | ( | vout | ) | vout_Flush( vout, VLC_TICK_INVALID ) |
Empty all the pending pictures in the vout.
Referenced by DecoderThread_Flush(), and ModuleThread_PlayVideo().
#define VOUT_SPU_CHANNEL_INVALID (-1) /* Always fails in comparison */ |
#define VOUT_SPU_CHANNEL_OSD 0 /* OSD channel is automatically cleared */ |
#define VOUT_SPU_CHANNEL_OSD_COUNT 3 |
Referenced by spu_Create(), spu_GetFreeChannelId(), and spu_SelectSubpictures().
#define VOUT_SPU_CHANNEL_OSD_HSLIDER 1 |
Referenced by vlc_player_osd_HoldAll(), and vouts_osd_Slider().
#define VOUT_SPU_CHANNEL_OSD_VSLIDER 2 |
Referenced by vouts_osd_Slider().
typedef struct vout_thread_sys_t vout_thread_sys_t |
Video output thread private structure.
enum vlc_vout_order |
vout or spu_channel order
void vout_Close | ( | vout_thread_t * | vout | ) |
Destroys a vout.
This function closes and releases a vout created by vout_Create().
vout | the vout to close |
This function closes and releases a vout created by vout_Create().
p_vout | the vout to close |
References vout_thread_sys_t::control, vout_thread_sys_t::display, vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::render, vout_thread_sys_t::snapshot, vout_thread_sys_t::spu, spu_Destroy(), VLC_OBJECT, vout_chrono_Clean(), vout_control_Dead(), vout_IntfDeinit(), vout_Release(), vout_snapshot_End(), and vout_Stop().
Referenced by aout_filter_GetVout(), DestroyVout(), and input_resource_PutVoutLocked().
void vout_Flush | ( | vout_thread_t * | p_vout, |
vlc_tick_t | i_date | ||
) |
This function will ensure that all ready/displayed pictures have at most the provided date.
References vout_thread_sys_t::control, vout_thread_sys_t::display, vout_thread_sys_t::dummy, vout_thread_t::p, vout_control_Hold(), vout_control_Release(), and vout_FlushUnlocked().
Referenced by ModuleThread_PlayVideo().
void vout_FlushSubpictureChannel | ( | vout_thread_t * | , |
size_t | |||
) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, and spu_ClearChannel().
Referenced by DecoderThread_Flush(), and vlc_player_osd_HoldAll().
picture_t* vout_GetPicture | ( | vout_thread_t * | vout | ) |
Allocates a video output picture buffer.
Either vout_PutPicture() or picture_Release() must be used to return the buffer to the video output free buffer pool.
You may use picture_Hold() (paired with picture_Release()) to keep a read-only reference.
References vout_thread_sys_t::display_pool, vout_thread_sys_t::dummy, picture_t::format, likely, vout_thread_sys_t::original, vout_thread_t::p, picture_pool_Wait(), picture_Reset(), and video_format_CopyCropAr().
int vout_GetSnapshot | ( | vout_thread_t * | p_vout, |
block_t ** | pp_image, | ||
picture_t ** | pp_picture, | ||
video_format_t * | p_fmt, | ||
const char * | psz_format, | ||
vlc_tick_t | i_timeout | ||
) |
This function will handle a snapshot request.
pp_image, pp_picture and p_fmt can be NULL otherwise they will be set with returned value in case of success.
pp_image will hold an encoded picture in psz_format format.
p_fmt can be NULL otherwise it will be set with the format used for the picture before encoding.
i_timeout specifies the time the function will wait for a snapshot to be available.
References vout_thread_sys_t::dummy, image_Type2Fourcc(), msg_Err, vout_thread_t::p, picture_Export(), picture_Release(), vout_thread_sys_t::snapshot, var_InheritInteger(), VLC_CODEC_PNG, VLC_EGENERIC, VLC_OBJECT, VLC_SUCCESS, and vout_snapshot_Get().
Referenced by VoutSaveSnapshot().
void vout_PutPicture | ( | vout_thread_t * | vout, |
picture_t * | picture | ||
) |
It gives to the vout a picture to be displayed.
The given picture MUST comes from vout_GetPicture.
Becareful, after vout_PutPicture is called, picture_t::p_next cannot be read/used.
References vout_thread_sys_t::control, vout_thread_sys_t::decoder_fifo, vout_thread_sys_t::dummy, vout_thread_t::p, picture_t::p_next, picture_fifo_Push(), and vout_control_Wake().
Referenced by ModuleThread_PlayVideo().
void vout_PutSubpicture | ( | vout_thread_t * | , |
subpicture_t * | |||
) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, spu_PutSubpicture(), and subpicture_Delete().
Referenced by input_DecoderAddVoutOverlay(), ModuleThread_PlaySpu(), OSDWidget(), vout_OSDEpg(), vout_OSDText(), and VoutSnapshotPip().
ssize_t vout_RegisterSubpictureChannel | ( | vout_thread_t * | ) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, spu_RegisterChannel(), and VOUT_SPU_CHANNEL_INVALID.
Referenced by input_DecoderAddVoutOverlay().
void vout_UnregisterSubpictureChannel | ( | vout_thread_t * | , |
size_t | |||
) |
References vout_thread_sys_t::dummy, vout_thread_t::p, vout_thread_sys_t::spu, and spu_UnregisterChannel().
Referenced by DeleteDecoder(), input_DecoderDelVoutOverlay(), and ModuleThread_NewSpuBuffer().