X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_vout.h;h=36b4b11de28c1f47e8d1572b75c0963321d0aa8c;hb=a7139d450f322461b5c0df73149b7a34be493e4a;hp=f0593bae7b4593ed6ac8d60fe7068cd86f46df0d;hpb=b8fc38757e5e9c171496c0bbf220cdb358146487;p=vlc diff --git a/include/vlc_vout.h b/include/vlc_vout.h index f0593bae7b..36b4b11de2 100644 --- a/include/vlc_vout.h +++ b/include/vlc_vout.h @@ -208,6 +208,21 @@ static inline void picture_Copy( picture_t *p_dst, const picture_t *p_src ) picture_CopyProperties( p_dst, p_src ); } +/** + * This function will export a picture to an encoded bitstream. + * + * pp_image will contain the encoded bitstream in psz_format format. + * + * p_fmt can be NULL otherwise it will be set with the format used for the + * picture before encoding. + * + * i_override_width/height allow to override the width and/or the height of the + * picture to be encoded. If at most one of them is > 0 then the picture aspect + * ratio will be kept. + */ +VLC_EXPORT( int, picture_Export, ( vlc_object_t *p_obj, block_t **pp_image, video_format_t *p_fmt, picture_t *p_picture, vlc_fourcc_t i_format, int i_override_width, int i_override_height ) ); + + /** * Video picture heap, either render (to store pictures used * by the decoder) or output (to store pictures displayed by the vout plugin) @@ -266,6 +281,8 @@ enum /* Quantification type */ enum { + QTYPE_NONE, + QTYPE_MPEG1, QTYPE_MPEG2, QTYPE_H264, @@ -506,8 +523,9 @@ struct vout_thread_t /**@{*/ uint16_t i_changes; /**< changes made to the thread. \see \ref vout_changes */ - bool b_fullscreen; /**< toogle fullscreen display */ - bool b_autoscale; /**< auto scaling picture or not */ + unsigned b_fullscreen:1; /**< toogle fullscreen display */ + unsigned b_autoscale:1; /**< auto scaling picture or not */ + unsigned b_on_top:1; /**< stay always on top of other windows */ int i_zoom; /**< scaling factor if no auto */ unsigned int i_window_width; /**< video window width */ unsigned int i_window_height; /**< video window height */ @@ -569,6 +587,8 @@ struct vout_thread_t #define VOUT_INTF_CHANGE 0x0004 /** b_autoscale changed */ #define VOUT_SCALE_CHANGE 0x0008 +/** b_on_top changed */ +#define VOUT_ON_TOP_CHANGE 0x0010 /** b_cursor changed */ #define VOUT_CURSOR_CHANGE 0x0020 /** b_fullscreen changed */ @@ -663,6 +683,23 @@ static inline void vout_CloseAndRelease( vout_thread_t *p_vout ) vlc_object_release( p_vout ); } +/** + * 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. + * + * i_timeout specifies the time the function will wait for a snapshot to be + * available. + * + */ +VLC_EXPORT( 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, mtime_t i_timeout ) ); + /* */ VLC_EXPORT( int, vout_ChromaCmp, ( uint32_t, uint32_t ) ); @@ -674,7 +711,6 @@ VLC_EXPORT( void, vout_LinkPicture, ( vout_thread_t *, picture_t * VLC_EXPORT( void, vout_UnlinkPicture, ( vout_thread_t *, picture_t * ) ); VLC_EXPORT( void, vout_PlacePicture, ( const vout_thread_t *, unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, unsigned int * ) ); -VLC_EXPORT( int, vout_vaControlDefault, ( vout_thread_t *, int, va_list ) ); void vout_IntfInit( vout_thread_t * ); VLC_EXPORT( void, vout_EnableFilter, ( vout_thread_t *, char *,bool , bool ) ); @@ -701,26 +737,12 @@ static inline int vout_Control( vout_thread_t *p_vout, int i_query, ... ) enum output_query_e { - VOUT_GET_SIZE, /* arg1= unsigned int*, arg2= unsigned int*, res= */ VOUT_SET_SIZE, /* arg1= unsigned int, arg2= unsigned int, res= */ VOUT_SET_STAY_ON_TOP, /* arg1= bool res= */ - VOUT_REPARENT, - VOUT_SET_FOCUS, /* arg1= bool res= */ VOUT_SET_VIEWPORT, /* arg1= view rect, arg2=clip rect, res= */ VOUT_REDRAW_RECT, /* arg1= area rect, res= */ }; -typedef struct snapshot_t { - char *p_data; /* Data area */ - - int i_width; /* In pixels */ - int i_height; /* In pixels */ - int i_datasize; /* In bytes */ - mtime_t date; /* Presentation time */ - vlc_cond_t p_condvar; - vlc_mutex_t p_mutex; -} snapshot_t; - /**@}*/ #endif /* _VLC_VIDEO_H */