blob: 805ac63c82ced7e567ee907dc67fd78c5bac3e12 [file] [log] [blame]
Benny Prijonoa4bf0212006-02-10 15:57:08 +00001/* $Id$ */
2/*
Benny Prijono844653c2008-12-23 17:27:53 +00003 * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
Benny Prijonoa4bf0212006-02-10 15:57:08 +00005 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __PJMEDIA_CODEC_CONFIG_H__
21#define __PJMEDIA_CODEC_CONFIG_H__
22
23#include <pjmedia/types.h>
24
Benny Prijonofe9bffd2007-01-27 17:44:13 +000025/*
26 * Include config_auto.h if autoconf is used (PJ_AUTOCONF is set)
27 */
28#if defined(PJ_AUTOCONF)
29# include <pjmedia-codec/config_auto.h>
30#endif
Benny Prijonoa4bf0212006-02-10 15:57:08 +000031
Benny Prijono4381efe2006-03-16 14:24:26 +000032/**
Benny Prijonoa837c302006-04-27 22:36:40 +000033 * Unless specified otherwise, L16 codec is included by default.
34 */
35#ifndef PJMEDIA_HAS_L16_CODEC
36# define PJMEDIA_HAS_L16_CODEC 1
37#endif
38
39
40/**
Benny Prijono4381efe2006-03-16 14:24:26 +000041 * Unless specified otherwise, GSM codec is included by default.
Benny Prijonoa4bf0212006-02-10 15:57:08 +000042 */
Benny Prijono4381efe2006-03-16 14:24:26 +000043#ifndef PJMEDIA_HAS_GSM_CODEC
44# define PJMEDIA_HAS_GSM_CODEC 1
Benny Prijonoa4bf0212006-02-10 15:57:08 +000045#endif
46
47
Benny Prijono4381efe2006-03-16 14:24:26 +000048/**
49 * Unless specified otherwise, Speex codec is included by default.
Benny Prijonoeb30bf52006-03-04 20:43:52 +000050 */
Benny Prijono4381efe2006-03-16 14:24:26 +000051#ifndef PJMEDIA_HAS_SPEEX_CODEC
52# define PJMEDIA_HAS_SPEEX_CODEC 1
Benny Prijonoeb30bf52006-03-04 20:43:52 +000053#endif
54
Nanang Izzuddin829ac022008-05-27 00:24:26 +000055/**
56 * Speex codec default complexity setting.
57 */
58#ifndef PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY
59# define PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY 2
60#endif
61
62/**
Nanang Izzuddin9dbad152008-06-10 18:56:10 +000063 * Speex codec default quality setting. Please note that pjsua-lib may override
64 * this setting via its codec quality setting (i.e PJSUA_DEFAULT_CODEC_QUALITY).
Nanang Izzuddin829ac022008-05-27 00:24:26 +000065 */
66#ifndef PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY
Nanang Izzuddin9dbad152008-06-10 18:56:10 +000067# define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 8
Nanang Izzuddin829ac022008-05-27 00:24:26 +000068#endif
69
Benny Prijonoeb30bf52006-03-04 20:43:52 +000070
Benny Prijono00cae612006-07-31 15:19:36 +000071/**
72 * Unless specified otherwise, iLBC codec is included by default.
73 */
74#ifndef PJMEDIA_HAS_ILBC_CODEC
75# define PJMEDIA_HAS_ILBC_CODEC 1
76#endif
77
78
Benny Prijono7ffd7752008-03-17 14:07:53 +000079/**
80 * Unless specified otherwise, G.722 codec is included by default.
81 */
82#ifndef PJMEDIA_HAS_G722_CODEC
83# define PJMEDIA_HAS_G722_CODEC 1
84#endif
85
Benny Prijonoa4bf0212006-02-10 15:57:08 +000086
Nanang Izzuddin493a8db2008-08-15 13:17:39 +000087/**
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +000088 * Enable the features provided by Intel IPP libraries, for example
89 * codecs such as G.729, G.723.1, G.726, G.728, G.722.1, and AMR.
90 *
91 * By default this is disabled. Please follow the instructions in
92 * http://trac.pjsip.org/repos/wiki/Intel_IPP_Codecs on how to setup
93 * Intel IPP with PJMEDIA.
Nanang Izzuddin493a8db2008-08-15 13:17:39 +000094 */
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +000095#ifndef PJMEDIA_HAS_INTEL_IPP
96# define PJMEDIA_HAS_INTEL_IPP 0
Nanang Izzuddin493a8db2008-08-15 13:17:39 +000097#endif
Benny Prijonofe9bffd2007-01-27 17:44:13 +000098
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +000099
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000100/**
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000101 * Visual Studio only: when this option is set, the Intel IPP libraries
102 * will be automatically linked to application using pragma(comment)
103 * constructs. This is convenient, however it will only link with
104 * the stub libraries and the Intel IPP DLL's will be required when
105 * distributing the application.
106 *
107 * If application wants to link with the different types of the Intel IPP
108 * libraries (for example, the static libraries), it must set this option
109 * to zero and specify the Intel IPP libraries in the application's input
110 * library specification manually.
111 *
112 * Default 1.
113 */
114#ifndef PJMEDIA_AUTO_LINK_IPP_LIBS
115# define PJMEDIA_AUTO_LINK_IPP_LIBS 1
116#endif
117
118
119/**
120 * Enable Intel IPP AMR codec. This also needs to be enabled when AMR WB
121 * codec is enabled. This option is only used when PJMEDIA_HAS_INTEL_IPP
122 * is enabled.
123 *
124 * Default: 1
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000125 */
126#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_AMR
127# define PJMEDIA_HAS_INTEL_IPP_CODEC_AMR 1
128#endif
129
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000130
131/**
132 * Enable Intel IPP AMR wideband codec. The PJMEDIA_HAS_INTEL_IPP_CODEC_AMR
133 * option must also be enabled to use this codec. This option is only used
134 * when PJMEDIA_HAS_INTEL_IPP is enabled.
135 *
136 * Default: 1
137 */
Nanang Izzuddindf361e02008-08-16 06:46:08 +0000138#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_AMRWB
139# define PJMEDIA_HAS_INTEL_IPP_CODEC_AMRWB 1
140#endif
141
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000142
143/**
144 * Enable Intel IPP G.729 codec. This option is only used when
145 * PJMEDIA_HAS_INTEL_IPP is enabled.
146 *
147 * Default: 1
148 */
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000149#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G729
150# define PJMEDIA_HAS_INTEL_IPP_CODEC_G729 1
151#endif
152
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000153
154/**
155 * Enable Intel IPP G.723.1 codec. This option is only used when
156 * PJMEDIA_HAS_INTEL_IPP is enabled.
157 *
158 * Default: 1
159 */
160#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G723_1
161# define PJMEDIA_HAS_INTEL_IPP_CODEC_G723_1 1
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000162#endif
163
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000164
165/**
166 * Enable Intel IPP G.726 codec. This option is only used when
167 * PJMEDIA_HAS_INTEL_IPP is enabled.
168 *
169 * Default: 1
170 */
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000171#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G726
172# define PJMEDIA_HAS_INTEL_IPP_CODEC_G726 1
173#endif
174
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000175
176/**
177 * Enable Intel IPP G.728 codec. This option is only used when
178 * PJMEDIA_HAS_INTEL_IPP is enabled.
179 *
180 * Default: 1
181 */
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000182#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G728
183# define PJMEDIA_HAS_INTEL_IPP_CODEC_G728 1
184#endif
185
Benny Prijonoa4e7cdd2008-08-19 15:01:48 +0000186
187/**
188 * Enable Intel IPP G.722.1 codec. This option is only used when
189 * PJMEDIA_HAS_INTEL_IPP is enabled.
190 *
191 * Default: 1
192 */
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000193#ifndef PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1
194# define PJMEDIA_HAS_INTEL_IPP_CODEC_G722_1 1
195#endif
196
Nanang Izzuddin4e502622009-01-28 18:03:12 +0000197/**
198 * Enable Passthrough codecs.
199 *
200 * Default: 0
201 */
202#ifndef PJMEDIA_HAS_PASSTHROUGH_CODECS
203# define PJMEDIA_HAS_PASSTHROUGH_CODECS 0
204#endif
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000205
Nanang Izzuddin8cdba462009-01-29 20:06:28 +0000206#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR
207# define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1
208#endif
209
210#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_G729
211# define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1
212#endif
213
214#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC
215# define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1
216#endif
217
218#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU
219# define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
220#endif
221
Nanang Izzuddin81db8c72009-02-05 10:59:14 +0000222#ifndef PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA
Nanang Izzuddin8cdba462009-01-29 20:06:28 +0000223# define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
224#endif
225
Benny Prijono729d01a2009-03-18 12:49:18 +0000226/* If passthrough and PCMU/PCMA are enabled, disable the software
227 * G.711 codec
228 */
229#if PJMEDIA_HAS_PASSTHROUGH_CODECS && \
230 (PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU || PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA)
231# undef PJMEDIA_HAS_G711_CODEC
232# define PJMEDIA_HAS_G711_CODEC 0
233#endif
234
235
Nanang Izzuddin493a8db2008-08-15 13:17:39 +0000236#endif /* __PJMEDIA_CODEC_CONFIG_H__ */