blob: d0549f5ed79d1cfdd0e38f766f97b44fd3c4c117 [file] [log] [blame]
Alexandre Lision67916dd2014-01-24 13:33:04 -05001/* $Id$ */
2/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5 *
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_TYPES_H__
21#define __PJMEDIA_CODEC_TYPES_H__
22
23/**
24 * @file types.h
25 * @brief PJMEDIA-CODEC types and constants
26 */
27
28#include <pjmedia-codec/config.h>
29#include <pjmedia/codec.h>
30
31/**
32 * @defgroup pjmedia_codec_types PJMEDIA-CODEC Types and Constants
33 * @ingroup PJMEDIA_CODEC
34 * @brief Constants used by PJMEDIA-CODEC
35 * @{
36 */
37
38
39
40/**
41 * These are the dynamic payload types that are used by audio codecs in
42 * this library. Also see the header file <pjmedia/codec.h> for list
43 * of static payload types.
44 */
45enum pjmedia_audio_pt
46{
47 /* According to IANA specifications, dynamic payload types are to be in
48 * the range 96-127 (inclusive). This enum is structured to place the
49 * values of the payload types specified below into that range.
50 *
51 * PJMEDIA_RTP_PT_DYNAMIC is defined in <pjmedia/codec.h>. It is defined
52 * to be 96.
53 *
54 * PJMEDIA_RTP_PT_TELEPHONE_EVENTS is defined in <pjmedia/config.h>.
55 * The default value is 96.
56 */
57#if PJMEDIA_RTP_PT_TELEPHONE_EVENTS
58 PJMEDIA_RTP_PT_START = PJMEDIA_RTP_PT_TELEPHONE_EVENTS,
59#else
60 PJMEDIA_RTP_PT_START = (PJMEDIA_RTP_PT_DYNAMIC-1),
61#endif
62
63 PJMEDIA_RTP_PT_SPEEX_NB, /**< Speex narrowband/8KHz */
64 PJMEDIA_RTP_PT_SPEEX_WB, /**< Speex wideband/16KHz */
65 PJMEDIA_RTP_PT_SPEEX_UWB, /**< Speex 32KHz */
66 PJMEDIA_RTP_PT_SILK_NB, /**< SILK narrowband/8KHz */
67 PJMEDIA_RTP_PT_SILK_MB, /**< SILK mediumband/12KHz */
68 PJMEDIA_RTP_PT_SILK_WB, /**< SILK wideband/16KHz */
69 PJMEDIA_RTP_PT_SILK_SWB, /**< SILK 24KHz */
70 PJMEDIA_RTP_PT_ILBC, /**< iLBC (13.3/15.2Kbps) */
71 PJMEDIA_RTP_PT_AMR, /**< AMR (4.75 - 12.2Kbps) */
72 PJMEDIA_RTP_PT_AMRWB, /**< AMRWB (6.6 - 23.85Kbps)*/
73 PJMEDIA_RTP_PT_AMRWBE, /**< AMRWBE */
74 PJMEDIA_RTP_PT_G726_16, /**< G726 @ 16Kbps */
75 PJMEDIA_RTP_PT_G726_24, /**< G726 @ 24Kbps */
76 PJMEDIA_RTP_PT_G726_32, /**< G726 @ 32Kbps */
77 PJMEDIA_RTP_PT_G726_40, /**< G726 @ 40Kbps */
78 PJMEDIA_RTP_PT_G722_1_16, /**< G722.1 (16Kbps) */
79 PJMEDIA_RTP_PT_G722_1_24, /**< G722.1 (24Kbps) */
80 PJMEDIA_RTP_PT_G722_1_32, /**< G722.1 (32Kbps) */
81 PJMEDIA_RTP_PT_G7221C_24, /**< G722.1 Annex C (24Kbps)*/
82 PJMEDIA_RTP_PT_G7221C_32, /**< G722.1 Annex C (32Kbps)*/
83 PJMEDIA_RTP_PT_G7221C_48, /**< G722.1 Annex C (48Kbps)*/
84 PJMEDIA_RTP_PT_G7221_RSV1, /**< G722.1 reserve */
85 PJMEDIA_RTP_PT_G7221_RSV2, /**< G722.1 reserve */
86 PJMEDIA_RTP_PT_L16_8KHZ_MONO, /**< L16 @ 8KHz, mono */
87 PJMEDIA_RTP_PT_L16_8KHZ_STEREO, /**< L16 @ 8KHz, stereo */
88 //PJMEDIA_RTP_PT_L16_11KHZ_MONO, /**< L16 @ 11KHz, mono */
89 //PJMEDIA_RTP_PT_L16_11KHZ_STEREO, /**< L16 @ 11KHz, stereo */
90 PJMEDIA_RTP_PT_L16_16KHZ_MONO, /**< L16 @ 16KHz, mono */
91 PJMEDIA_RTP_PT_L16_16KHZ_STEREO, /**< L16 @ 16KHz, stereo */
92 //PJMEDIA_RTP_PT_L16_22KHZ_MONO, /**< L16 @ 22KHz, mono */
93 //PJMEDIA_RTP_PT_L16_22KHZ_STEREO, /**< L16 @ 22KHz, stereo */
94 //PJMEDIA_RTP_PT_L16_32KHZ_MONO, /**< L16 @ 32KHz, mono */
95 //PJMEDIA_RTP_PT_L16_32KHZ_STEREO, /**< L16 @ 32KHz, stereo */
96 //PJMEDIA_RTP_PT_L16_48KHZ_MONO, /**< L16 @ 48KHz, mono */
97 //PJMEDIA_RTP_PT_L16_48KHZ_STEREO, /**< L16 @ 48KHz, stereo */
98
99 /* Caution!
100 * Ensure the value of the last pt above is <= 127.
101 */
102};
103
104/**
105 * These are the dynamic payload types that are used by video codecs in
106 * this library.
107 */
108enum pjmedia_video_pt
109{
110 /* Video payload types */
111 PJMEDIA_RTP_PT_VID_START = (PJMEDIA_RTP_PT_DYNAMIC-1),
112 PJMEDIA_RTP_PT_H263P,
113 PJMEDIA_RTP_PT_H264,
114 PJMEDIA_RTP_PT_H264_RSV1,
115 PJMEDIA_RTP_PT_H264_RSV2,
116 PJMEDIA_RTP_PT_H264_RSV3,
117 PJMEDIA_RTP_PT_H264_RSV4,
118
119 /* Caution!
120 * Ensure the value of the last pt above is <= 127.
121 */
122};
123
124
125/**
126 * @}
127 */
128
129
130#endif /* __PJMEDIA_CODEC_TYPES_H__ */