Browse Source

ietf/rtp3551: add missing types

master
Arnaud de Turckheim 10 years ago
committed by Christophe Massiot
parent
commit
17cb52b303
1 changed files with 73 additions and 24 deletions
  1. +73
    -24
      ietf/rtp3551.h

+ 73
- 24
ietf/rtp3551.h View File

@ -42,35 +42,84 @@ extern "C"
{
#endif
#define RTP_TYPE_GSM 3
#define RTP_TYPE_L16 10
#define RTP_TYPE_L16MONO 11
#define RTP_TYPE_MPA 14
#define RTP_TYPE_MPV 32
#define RTP_TYPE_PCMU 0
/* Reserved 1 */
/* Reserved 2 */
#define RTP_TYPE_GSM 3
#define RTP_TYPE_G723 4
#define RTP_TYPE_DVI4_8000 5
#define RTP_TYPE_DVI4_16000 6
#define RTP_TYPE_LPC 7
#define RTP_TYPE_PCMA 8
#define RTP_TYPE_G722 9
#define RTP_TYPE_L16 10
#define RTP_TYPE_L16MONO 11
#define RTP_TYPE_QCELP 12
#define RTP_TYPE_CN 13
#define RTP_TYPE_MPA 14
#define RTP_TYPE_G728 15
#define RTP_TYPE_DVI4_11025 16
#define RTP_TYPE_DVI4_22050 17
#define RTP_TYPE_G729 18
/* Reserved 19 */
/* Unassigned 20 */
/* Unassigned 21 */
/* Unassigned 22 */
/* Unassigned 23 */
/* Unassigned 24 */
#define RTP_TYPE_CELB 25
#define RTP_TYPE_JPEG 26
/* Unassigned 27 */
#define RTP_TYPE_NV 28
/* Unassigned 29 */
/* Unassigned 30 */
#define RTP_TYPE_H261 31
#define RTP_TYPE_MPV 32
#define RTP_TYPE_MP2T 33
#define RTP_TYPE_H263 34
/* Unassigned 35-71 */
/* Reserved 72-76 */
/* Unassigned 77-95 */
/* Dynamic 96-127 */
static inline uint32_t rtp_3551_get_clock_rate(uint8_t i_type)
{
/* rtp type is a 7bit positive integer, thus 0xff is invalid */
struct {
uint8_t i_type;
uint32_t i_rate;
} profiles[] = {
{ RTP_TYPE_TS, 90000 },
{ RTP_TYPE_MPA, 90000 },
{ RTP_TYPE_MPV, 90000 },
{ RTP_TYPE_L16, 44100 },
{ RTP_TYPE_L16MONO, 44100 },
{ RTP_TYPE_GSM, 8000 },
switch (i_type) {
case RTP_TYPE_PCMU:
case RTP_TYPE_GSM:
case RTP_TYPE_G723:
case RTP_TYPE_DVI4_8000:
case RTP_TYPE_LPC:
case RTP_TYPE_PCMA:
case RTP_TYPE_G722:
case RTP_TYPE_QCELP:
case RTP_TYPE_CN:
case RTP_TYPE_G728:
case RTP_TYPE_G729:
return 8000;
{ 0xff, 0xffff}
};
case RTP_TYPE_DVI4_16000:
return 16000;
int i = 0;
while(profiles[i].i_type != 0xff) {
if (i_type == profiles[i].i_type) {
return profiles[i].i_rate;
}
i++;
case RTP_TYPE_L16:
case RTP_TYPE_L16MONO:
return 44100;
case RTP_TYPE_DVI4_11025:
return 11025;
case RTP_TYPE_DVI4_22050:
return 22050;
case RTP_TYPE_MPA:
case RTP_TYPE_CELB:
case RTP_TYPE_JPEG:
case RTP_TYPE_NV:
case RTP_TYPE_H261:
case RTP_TYPE_MPV:
case RTP_TYPE_MP2T:
case RTP_TYPE_H263:
return 90000;
}
return 0; /* invalid clock rate for unknown type */
}

Loading…
Cancel
Save