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