blob: 45ed1a275525cf2edbebecdc12056c1ae0f740f3 [file] [log] [blame]
Alexandre Lision8af73cb2013-12-10 14:11:20 -05001/* $Id: config.h 4656 2013-11-23 07:13:40Z bennylp $ */
Tristan Matthews0a329cc2013-07-17 13:20:14 -04002/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19#ifndef __PJMEDIA_VIDEODEV_CONFIG_H__
20#define __PJMEDIA_VIDEODEV_CONFIG_H__
21
22/**
23 * @file config.h
24 * @brief Video config.
25 */
26#include <pjmedia/types.h>
27#include <pj/pool.h>
28
29
30PJ_BEGIN_DECL
31
32/**
33 * @defgroup video_device_api Video Device API
34 * @brief PJMEDIA video device abstraction API.
35 */
36
37/**
38 * @defgroup s1_video_device_config Compile time configurations
39 * @ingroup video_device_api
40 * @brief Compile time configurations
41 * @{
42 */
43
44/**
45 * This setting controls the maximum number of formats that can be
46 * supported by a video device.
47 *
48 * Default: 16
49 */
50#ifndef PJMEDIA_VID_DEV_INFO_FMT_CNT
51# define PJMEDIA_VID_DEV_INFO_FMT_CNT 16
52#endif
53
54
Alexandre Lision8af73cb2013-12-10 14:11:20 -050055#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
56
Tristan Matthews0a329cc2013-07-17 13:20:14 -040057/**
58 * This setting controls whether SDL support should be included.
59 *
60 * Default: 0 (or detected by configure)
61 */
62#ifndef PJMEDIA_VIDEO_DEV_HAS_SDL
63# define PJMEDIA_VIDEO_DEV_HAS_SDL 0
64# define PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL 0
65#endif
66
67
68/**
69 * This setting controls whether QT support should be included.
70 *
71 * Default: 0 (or detected by configure)
72 */
73#ifndef PJMEDIA_VIDEO_DEV_HAS_QT
74# define PJMEDIA_VIDEO_DEV_HAS_QT 0
75#endif
76
77
78/**
79 * This setting controls whether IOS support should be included.
80 *
81 * Default: 0 (or detected by configure)
82 */
83#ifndef PJMEDIA_VIDEO_DEV_HAS_IOS
84# define PJMEDIA_VIDEO_DEV_HAS_IOS 0
85#endif
86
87
88/**
89 * This setting controls whether Direct Show support should be included.
90 *
91 * Default: 0 (unfinished)
92 */
93#ifndef PJMEDIA_VIDEO_DEV_HAS_DSHOW
94# define PJMEDIA_VIDEO_DEV_HAS_DSHOW 0 //PJ_WIN32
95#endif
96
97
98/**
99 * This setting controls whether colorbar source support should be included.
100 *
101 * Default: 1
102 */
103#ifndef PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC
104# define PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC 1
105#endif
106
107
108/**
109 * This setting controls whether ffmpeg support should be included.
110 *
111 * Default: 0 (unfinished)
112 */
113#ifndef PJMEDIA_VIDEO_DEV_HAS_FFMPEG
114# define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 0
115#endif
116
117
118/**
119 * Video4Linux2
120 *
121 * Default: 0 (or detected by configure)
122 */
123#ifndef PJMEDIA_VIDEO_DEV_HAS_V4L2
124# define PJMEDIA_VIDEO_DEV_HAS_V4L2 0
125#endif
126
127
128/**
129 * Enable support for AVI player virtual capture device.
130 *
131 * Default: 1
132 */
133#ifndef PJMEDIA_VIDEO_DEV_HAS_AVI
134# define PJMEDIA_VIDEO_DEV_HAS_AVI 1
135#endif
136
137/**
138 * Specify the SDL library name to be linked with Visual Studio project.
139 * By default, the name is autodetected based on SDL version ("sdl.lib" or
140 * "sdl2.lib"), but application may explicitly specify the library name if this
141 * autodetection fails. Common names are: "sdl2.lib" or "sdl.lib".
142 *
143 * Default: undeclared.
144 */
145#ifndef PJMEDIA_SDL_LIB
146# undef PJMEDIA_SDL_LIB
147#endif
148
Alexandre Lision8af73cb2013-12-10 14:11:20 -0500149#endif /* defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) */
150
Tristan Matthews0a329cc2013-07-17 13:20:14 -0400151/**
152 * @}
153 */
154
155PJ_END_DECL
156
157
158#endif /* __PJMEDIA_VIDEODEV_CONFIG_H__ */
159
160/*
161 --------------------- DOCUMENTATION FOLLOWS ---------------------------
162 */
163
164/**
165 * @addtogroup video_device_api Video Device API
166 * @{
167
168PJMEDIA Video Device API is a cross-platform video API appropriate for use with
169VoIP applications and many other types of video streaming applications.
170
171The API abstracts many different video API's on various platforms, such as:
172 - native Direct Show video for Win32 and Windows Mobile devices
173 - null-video implementation
174 - and more to be implemented in the future
175
176The Video Device API/library is an evolution from PJMEDIA @ref PJMED_SND and
177contains many enhancements:
178
179 - Forward compatibility:
180\n
181 The new API has been designed to be extensible, it will support new API's as
182 well as new features that may be introduced in the future without breaking
183 compatibility with applications that use this API as well as compatibility
184 with existing device implementations.
185
186 - Device capabilities:
187\n
188 At the heart of the API is device capabilities management, where all possible
189 video capabilities of video devices should be able to be handled in a generic
190 manner. With this framework, new capabilities that may be discovered in the
191 future can be handled in manner without breaking existing applications.
192
193 - Built-in features:
194\n
195 The device capabilities framework enables applications to use and control
196 video features built-in in the device, such as:
197 - built-in formats,
198 - etc.
199
200 - Codec support:
201\n
202 Some video devices support built-in hardware video codecs, and application
203 can use the video device in encoded mode to make use of these hardware
204 codecs.
205
206 - Multiple backends:
207\n
208 The new API supports multiple video backends (called factories or drivers in
209 the code) to be active simultaneously, and video backends may be added or
210 removed during run-time.
211
212*/
213
214
215/**
216 * @}
217 */
218