blob: 1293c5cb9a32dbd6e94b26c3cfe6133a4275dfa6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/*
* Oreka -- A media capture and retrieval platform
*
* Copyright (C) 2005, orecx LLC
*
* http://www.orecx.com
*
* This program is free software, distributed under the terms of
* the GNU General Public License.
* Please refer to http://www.gnu.org/copyleft/gpl.html
*
*/
#ifndef __PACKETHEADERDEFS_H__
#define __PACKETHEADERDEFS_H__
// Structure of Ethernet header
typedef struct
{
unsigned char sourceMac[6];
unsigned char destinationMac[6];
unsigned short length;
} EthernetHeaderStruct;
// Structure of an internet header, naked of options, only valid for little endian
typedef struct
{
unsigned char ip_hl:4; // Header length
unsigned char ip_v:4; // IP protocol version
unsigned char ip_tos; // Type of service
unsigned short ip_len; // Total length
unsigned short ip_id; // Identification
unsigned short ip_off; // Fragment offset field
unsigned char ip_ttl; // Time to live
unsigned char ip_p; // Protocol
unsigned short ip_sum; // Header checksum
struct in_addr ip_src; // Source address
struct in_addr ip_dest; // Destination address
} IpHeaderStruct;
// Structure of UDP header
typedef struct
{
unsigned short source; // Source port
unsigned short dest; // Destination port
unsigned short len; // UDP length
unsigned short check; // UDP Checksum
} UdpHeaderStruct;
#define RTP_PT_PCMU 0
#define RTP_PT_PCMA 8
// Structure of RTP header, only valid for little endian
typedef struct {
unsigned short cc:4; // CSRC count
unsigned short x:1; // header extension flag
unsigned short p:1; // padding flag
unsigned short version:2; // protocol version
unsigned short pt:7; // payload type
unsigned short m:1; // marker bit
unsigned short seq; // sequence number
unsigned int ts; // timestamp
unsigned int ssrc; // synchronization source
//unsigned int csrc[1]; // optional CSRC list
} RtpHeaderStruct;
#endif
|