ccRTP 2.1.2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
formats.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2015 Federico Montesino Pouzols <fedemp@altern.org>.
2 //
3 // This program is free software; you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation; either version 2 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with GNU ccRTP. If not, see <http://www.gnu.org/licenses/>.
15 //
16 // As a special exception, you may use this file as part of a free software
17 // library without restriction. Specifically, if other files instantiate
18 // templates or use macros or inline functions from this file, or you compile
19 // this file and link it with other files to produce an executable, this
20 // file does not by itself cause the resulting executable to be covered by
21 // the GNU General Public License. This exception does not however
22 // invalidate any other reasons why the executable file might be covered by
23 // the GNU General Public License.
24 //
25 // This exception applies only to the code released under the name GNU
26 // ccRTP. If you copy code from other releases into a copy of GNU
27 // ccRTP, as the General Public License permits, the exception does
28 // not apply to the code that you add in this way. To avoid misleading
29 // anyone as to the status of such modified files, you must delete
30 // this exception notice from them.
31 //
32 // If you write modifications of your own for GNU ccRTP, it is your choice
33 // whether to permit this exception to apply to your modifications.
34 // If you do not wish that, delete this exception notice.
35 //
36 
37 #ifndef CCXX_RTP_FORMATS_H_
38 #define CCXX_RTP_FORMATS_H_
39 
40 NAMESPACE_COMMONCPP
41 
62 typedef uint8 PayloadType;
63 
65 const PayloadType ptINVALID = 128;
66 
73 typedef enum {
74  // Types for audio formats:
75  sptPCMU = 0,
77  // 1016 static payload type is now deprecated. Type 1 is reserved.
78  // spt1016, ///< CELP audio (FED-STD 1016) (RFC 1890)
79  sptG726_32 = 2,
90  // Type 13 is reserved.
91  sptMPA = 14,
96  // Type 19 is reserved. Types 20 - 23 are unassigned.
98 
99  // Types for video formats:
100  // Type 24 is unassigned.
101  sptCELB = 25,
103  // Type 27 is unassigned.
104  sptNV = 28,
105  // Types 29 and 30 are unassigned.
106  sptH261 = 31,
110  // Types 35 - 71 are unassigned.
111  // Types 72 - 76 are reserved.
112  // Types 96 - 127 are dynamic.
115 
130 {
131 public:
138  { return payloadType; }
139 
148  inline uint32 getRTPClockRate() const
149  { return RTPClockRate; }
150 
151 protected:
156  { }
157 
161  inline virtual ~PayloadFormat()
162  { }
163 
169  inline void setPayloadType(PayloadType pt)
170  { payloadType = pt; }
171 
177  inline void setRTPClockRate(uint32 rate)
178  { RTPClockRate = rate; }
179 
180  // default clock rate
181  static const uint32 defaultRTPClockRate;
182 
183 private:
185  uint32 RTPClockRate;
186 };
187 
201 {
202 public:
212 
213 private:
219  static uint32 staticAudioTypesRates[lastStaticAudioPayloadType -
221 };
222 
235 {
236 public:
244  DynamicPayloadFormat(PayloadType type, uint32 rate);
245 };
246  // payload
248 
249 END_NAMESPACE
250 
251 #endif // ndef CCXX_RTP_FORMATS_H_
252 
ITU-T G.711. mu-law audio 8 Khz (RFC 1890)
Definition: formats.h:75
DVI audio at 22050 hz (by Joseph Di Pol)
Definition: formats.h:94
PayloadFormat()
PayloadFormat must not be used but as base class.
Definition: formats.h:155
Base payload format class.
Definition: formats.h:129
virtual ~PayloadFormat()
PayloadFormat must not be used but as base class.
Definition: formats.h:161
ITU-T G.723. MP-MLQ ACELP audio (RFC 1890)
Definition: formats.h:81
GSM audio (RFC 1890)
Definition: formats.h:80
const PayloadType ptINVALID
Predefined value for invalid or uninitialized payload type variables.
Definition: formats.h:65
LPC audio (RFC 1890)
Definition: formats.h:84
MPEG Audio elem. stream (RFCs 1890, 2250)
Definition: formats.h:91
static const uint32 defaultRTPClockRate
Definition: formats.h:181
ITU-T G.728. LD-CELP audio.
Definition: formats.h:92
JPEG (ISO 10918) video (RFCs 1890, 2435)
Definition: formats.h:102
uint32 RTPClockRate
Rate in Hz.
Definition: formats.h:185
ITU-T H.263 video (RFCs 2190, 2429)
Definition: formats.h:109
PayloadType payloadType
Numeric identifier.
Definition: formats.h:184
void setRTPClockRate(uint32 rate)
Set RTP clock rate.
Definition: formats.h:177
Linear uncompressed mono audio (RFC 1890)
Definition: formats.h:88
PayloadType getPayloadType() const
Get payload type numeric identifier carried in RTP packets.
Definition: formats.h:137
Modified IMA ADPCM audio 16Khz (RFC 1890)
Definition: formats.h:83
DVI audio at 11025 hz (by Joseph Di Pol)
Definition: formats.h:93
#define __EXPORT
Definition: ZrtpCallback.h:40
void setPayloadType(PayloadType pt)
Set payload type numeric identifier carried in RTP packets.
Definition: formats.h:169
Linear uncompressed dual audio (RFC 1890)
Definition: formats.h:87
uint32 getRTPClockRate() const
Get RTP clock rate for this payload format.
Definition: formats.h:148
Audio (RFCs 1890, 3047)
Definition: formats.h:86
ITU-T G.729. CS-ACELP audio.
Definition: formats.h:95
Dynamic payload format objects.
Definition: formats.h:234
ITU-T H.261 video (RFCs 1890, 2032)
Definition: formats.h:106
Static payload format objects.
Definition: formats.h:200
Modified IMA ADPCM audio 8Khz (RFC 1890)
Definition: formats.h:82
MPEG 2 Transport stream (RFCs 1890, 2250)
Definition: formats.h:108
Audio at 8000 hz.
Definition: formats.h:89
Ron Frederick's nv audio (RFC 1890)
Definition: formats.h:104
ITU-T G.726. ADPCM audio (RFC 1890)
Definition: formats.h:79
MPEG Video elem. stream (RFCs 1890, 2250)
Definition: formats.h:107
Sun's propietary video (RFCs 1890, 2029)
Definition: formats.h:101
StaticPayloadType
RTP static payload types (default bindings) defined in the AVP profile.
Definition: formats.h:73
ITU-T G.711 A-law audio 8 Khz (RFC 1890)
Definition: formats.h:85
uint8 PayloadType
RTP payload type numeric identifier.
Definition: formats.h:62