chiark / gitweb /
Use libsamplerate in disorder-normalize, if available. If it's not
[disorder] / lib / rtp.h
... / ...
CommitLineData
1/*
2 * This file is part of DisOrder.
3 * Copyright (C) 2007 Richard Kettlewell
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18/** @file lib/rtp.h
19 * @brief RTP packet header format
20 *
21 * See <a href="http://www.ietf.org/rfc/rfc1889.txt">RFC1889</a>.
22 */
23
24#ifndef RTP_H
25#define RTP_H
26
27/** @brief RTP packet header format
28 *
29 * See <a href="http://www.ietf.org/rfc/rfc1889.txt">RFC1889</a> (now obsoleted
30 * by <a href="http://www.ietf.org/rfc/rfc3550.txt">RFC3550</a>).
31 *
32 * All values in this structure are big-endian.
33 */
34struct attribute((packed)) rtp_header {
35 /** @brief Version, padding, extension and CSRC
36 *
37 * Version is bits 6 and 7; currently always 2.
38 *
39 * Padding is bit 5; if set frame includes padding octets.
40 *
41 * eXtension is bit 4; if set there is a header extension.
42 *
43 * CSRC Count is bits 0-3 and is the number of CSRC identifiers following the
44 * header.
45 */
46 uint8_t vpxcc;
47
48 /** @brief Marker and payload type
49 *
50 * Marker is bit 7. Profile-defined.
51 *
52 * Payload Type is bits 0-6. Profile defined.
53 */
54 uint8_t mpt;
55
56 /** @brief Sequence number */
57 uint16_t seq;
58
59 /** @brief Timestamp */
60 uint32_t timestamp;
61
62 /** @brief Synchronization source */
63 uint32_t ssrc;
64};
65
66/** @brief RTP packet header format
67 *
68 * See <a href="http://www.ietf.org/rfc/rfc1889.txt">RFC1889</a> (now obsoleted
69 * by <a href="http://www.ietf.org/rfc/rfc3550.txt">RFC3550</a>).
70 *
71 * All values in this structure are big-endian.
72 */
73struct attribute((packed)) rtp_extension {
74 /** @brief Profile-defined extension type */
75 uint16_t type;
76
77 /** @brief Length of rest of extension */
78 uint16_t length;
79};
80
81#endif /* RTP_H */
82
83/*
84Local Variables:
85c-basic-offset:2
86comment-column:40
87fill-column:79
88indent-tabs-mode:nil
89End:
90*/