blob: a56c67d0ce5020673f08618f0c1510a6dd467474 [file] [log] [blame]
Benny Prijonoc45d9512010-12-10 11:04:30 +00001/* $Id$ */
2/*
3 * Copyright (C) 2008-2010 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 whether SDL support should be included.
46 *
47 * Default: 0 (or detected by configure)
48 */
49#ifndef PJMEDIA_VIDEO_DEV_HAS_SDL
50# define PJMEDIA_VIDEO_DEV_HAS_SDL 0
Sauw Ming21bd3fd2011-04-06 11:30:18 +000051# define PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL 0
Benny Prijonoc45d9512010-12-10 11:04:30 +000052#endif
53
54
55/**
Sauw Ming6e6c2152010-12-14 13:03:10 +000056 * This setting controls whether QT support should be included.
57 *
58 * Default: 0 (or detected by configure)
59 */
60#ifndef PJMEDIA_VIDEO_DEV_HAS_QT
61# define PJMEDIA_VIDEO_DEV_HAS_QT 0
62#endif
63
64
65/**
66 * This setting controls whether IOS support should be included.
67 *
68 * Default: 0 (or detected by configure)
69 */
70#ifndef PJMEDIA_VIDEO_DEV_HAS_IOS
71# define PJMEDIA_VIDEO_DEV_HAS_IOS 0
72#endif
73
74
75/**
Benny Prijonoc45d9512010-12-10 11:04:30 +000076 * This setting controls whether Direct Show support should be included.
77 *
78 * Default: 0 (unfinished)
79 */
80#ifndef PJMEDIA_VIDEO_DEV_HAS_DSHOW
81# define PJMEDIA_VIDEO_DEV_HAS_DSHOW 0 //PJ_WIN32
82#endif
83
84
85/**
86 * This setting controls whether colorbar source support should be included.
87 *
88 * Default: 1
89 */
90#ifndef PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC
91# define PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC 1
92#endif
93
94
95/**
96 * This setting controls whether ffmpeg support should be included.
97 *
98 * Default: 0 (unfinished)
99 */
100#ifndef PJMEDIA_VIDEO_DEV_HAS_FFMPEG
101# define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 0
102#endif
103
104
105/**
106 * Video4Linux2
107 *
108 * Default: 0 (or detected by configure)
109 */
110#ifndef PJMEDIA_VIDEO_DEV_HAS_V4L2
111# define PJMEDIA_VIDEO_DEV_HAS_V4L2 0
112#endif
113
114/**
115 * @}
116 */
117
118PJ_END_DECL
119
120
121#endif /* __PJMEDIA_VIDEODEV_CONFIG_H__ */
122
123/*
124 --------------------- DOCUMENTATION FOLLOWS ---------------------------
125 */
126
127/**
128 * @addtogroup video_device_api Video Device API
129 * @{
130
131PJMEDIA Video Device API is a cross-platform video API appropriate for use with
132VoIP applications and many other types of video streaming applications.
133
134The API abstracts many different video API's on various platforms, such as:
135 - native Direct Show video for Win32 and Windows Mobile devices
136 - null-video implementation
137 - and more to be implemented in the future
138
139The Video Device API/library is an evolution from PJMEDIA @ref PJMED_SND and
140contains many enhancements:
141
142 - Forward compatibility:
143\n
144 The new API has been designed to be extensible, it will support new API's as
145 well as new features that may be introduced in the future without breaking
146 compatibility with applications that use this API as well as compatibility
147 with existing device implementations.
148
149 - Device capabilities:
150\n
151 At the heart of the API is device capabilities management, where all possible
152 video capabilities of video devices should be able to be handled in a generic
153 manner. With this framework, new capabilities that may be discovered in the
154 future can be handled in manner without breaking existing applications.
155
156 - Built-in features:
157\n
158 The device capabilities framework enables applications to use and control
159 video features built-in in the device, such as:
160 - built-in formats,
161 - etc.
162
163 - Codec support:
164\n
165 Some video devices support built-in hardware video codecs, and application
166 can use the video device in encoded mode to make use of these hardware
167 codecs.
168
169 - Multiple backends:
170\n
171 The new API supports multiple video backends (called factories or drivers in
172 the code) to be active simultaneously, and video backends may be added or
173 removed during run-time.
174
175*/
176
177
178/**
179 * @}
180 */
181