QVisu
Qt-based visualization for smart homes
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
vlc_vout.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * vlc_vout.h: common video definitions
3  *****************************************************************************
4  * Copyright (C) 1999 - 2008 VLC authors and VideoLAN
5  * $Id: 2d6c180bfc1dcdf2d57277a44508dcda5d8f17de $
6  *
7  * Authors: Vincent Seguin <seguin@via.ecp.fr>
8  * Samuel Hocevar <sam@via.ecp.fr>
9  * Olivier Aubert <oaubert 47 videolan d07 org>
10  *
11  * This program is free software; you can redistribute it and/or modify it
12  * under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24  *****************************************************************************/
25 
26 #ifndef VLC_VOUT_H_
27 #define VLC_VOUT_H_ 1
28 
34 #include <vlc_picture.h>
35 #include <vlc_filter.h>
36 #include <vlc_subpicture.h>
37 
38 /*****************************************************************************
39  * Prototypes
40  *****************************************************************************/
41 
53 typedef struct {
54  vout_thread_t *vout;
55  vlc_object_t *input;
56  bool change_fmt;
57  const video_format_t *fmt;
58  unsigned dpb_size;
60 
65 
73 struct vout_thread_t {
74  VLC_COMMON_MEMBERS
75 
76  /* Private vout_thread data */
78 };
79 
80 /* Alignment flags */
81 #define VOUT_ALIGN_LEFT 0x0001
82 #define VOUT_ALIGN_RIGHT 0x0002
83 #define VOUT_ALIGN_HMASK 0x0003
84 #define VOUT_ALIGN_TOP 0x0004
85 #define VOUT_ALIGN_BOTTOM 0x0008
86 #define VOUT_ALIGN_VMASK 0x000C
87 
88 /*****************************************************************************
89  * Prototypes
90  *****************************************************************************/
91 
106 VLC_API vout_thread_t * vout_Request( vlc_object_t *object, const vout_configuration_t *cfg );
107 #define vout_Request(a,b) vout_Request(VLC_OBJECT(a),b)
108 
117 VLC_API void vout_Close( vout_thread_t *p_vout );
118 
125 static inline void vout_CloseAndRelease( vout_thread_t *p_vout )
126 {
127  vout_Close( p_vout );
128  vlc_object_release( p_vout );
129 }
130 
143 VLC_API int vout_GetSnapshot( vout_thread_t *p_vout,
144  block_t **pp_image, picture_t **pp_picture,
145  video_format_t *p_fmt,
146  const char *psz_format, mtime_t i_timeout );
147 
148 /* */
149 VLC_API picture_t * vout_GetPicture( vout_thread_t * );
150 VLC_API void vout_PutPicture( vout_thread_t *, picture_t * );
151 
152 VLC_API void vout_HoldPicture( vout_thread_t *, picture_t * );
153 VLC_API void vout_ReleasePicture( vout_thread_t *, picture_t * );
154 
155 /* */
156 VLC_API void vout_PutSubpicture( vout_thread_t *, subpicture_t * );
157 VLC_API int vout_RegisterSubpictureChannel( vout_thread_t * );
158 VLC_API void vout_FlushSubpictureChannel( vout_thread_t *, int );
159 
160 VLC_API void vout_EnableFilter( vout_thread_t *, const char *,bool , bool );
161 
164 #endif /* _VLC_VIDEO_H */
VLC_API void vout_Close(vout_thread_t *p_vout)
Definition: vlc_picture.h:69
Definition: vlc_subpicture.h:136
VLC_API 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)
Definition: vlc_vout.h:73
VLC_API vout_thread_t * vout_Request(vlc_object_t *object, const vout_configuration_t *cfg)
Definition: vlc_es.h:180
int64_t mtime_t
Definition: vlc_common.h:153
Definition: vlc_block.h:102
struct vout_thread_sys_t vout_thread_sys_t
Definition: vlc_vout.h:64
Definition: vlc_objects.h:42
Definition: vlc_vout.h:53