FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavformat
rtp.h
Go to the documentation of this file.
1
/*
2
* RTP definitions
3
* Copyright (c) 2002 Fabrice Bellard
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
#ifndef AVFORMAT_RTP_H
22
#define AVFORMAT_RTP_H
23
24
#include <stdint.h>
25
#include "
libavutil/avutil.h
"
26
#include "
libavcodec/codec_id.h
"
27
#include "
libavcodec/codec_par.h
"
28
#include "
libavformat/avformat.h
"
29
30
/**
31
* Return the payload type for a given stream used in the given format context.
32
* Static payload types are derived from the codec.
33
* Dynamic payload type are derived from the id field in AVStream.
34
* The format context private option payload_type overrides both.
35
*
36
* @param fmt The context of the format
37
* @param par The codec parameters
38
* @param idx The stream index
39
* @return The payload type (the 'PT' field in the RTP header).
40
*/
41
int
ff_rtp_get_payload_type
(
const
AVFormatContext
*fmt,
42
const
AVCodecParameters
*par,
int
idx);
43
44
/**
45
* Initialize a codec context based on the payload type.
46
*
47
* Fill the codec_type and codec_id fields of a codec context with
48
* information depending on the payload type; for audio codecs, the
49
* channels and sample_rate fields are also filled.
50
*
51
* @param par The codec parameters
52
* @param payload_type The payload type (the 'PT' field in the RTP header)
53
* @return In case of unknown payload type or dynamic payload type, a
54
* negative value is returned; otherwise, 0 is returned
55
*/
56
int
ff_rtp_get_codec_info
(
AVCodecParameters
*par,
int
payload_type);
57
58
/**
59
* Return the encoding name (as defined in
60
* http://www.iana.org/assignments/rtp-parameters) for a given payload type.
61
*
62
* @param payload_type The payload type (the 'PT' field in the RTP header)
63
* @return In case of unknown payload type or dynamic payload type, a pointer
64
* to an empty string is returned; otherwise, a pointer to a string containing
65
* the encoding name is returned
66
*/
67
const
char
*
ff_rtp_enc_name
(
int
payload_type);
68
69
/**
70
* Return the codec id for the given encoding name and codec type.
71
*
72
* @param buf A pointer to the string containing the encoding name
73
* @param codec_type The codec type
74
* @return In case of unknown encoding name, AV_CODEC_ID_NONE is returned;
75
* otherwise, the codec id is returned
76
*/
77
enum
AVCodecID
ff_rtp_codec_id
(
const
char
*buf,
enum
AVMediaType
codec_type
);
78
79
#define RTP_PT_PRIVATE 96
80
#define RTP_VERSION 2
81
#define RTP_MAX_SDES 256
/**< maximum text length for SDES */
82
83
/* RTCP packets use 0.5% of the bandwidth */
84
#define RTCP_TX_RATIO_NUM 5
85
#define RTCP_TX_RATIO_DEN 1000
86
87
/* An arbitrary id value for RTP Xiph streams - only relevant to indicate
88
* that the configuration has changed within a stream (by changing the
89
* ident value sent).
90
*/
91
#define RTP_XIPH_IDENT 0xfecdba
92
93
/* RTCP packet types */
94
enum
RTCPType
{
95
RTCP_FIR
= 192,
96
RTCP_NACK
,
// 193
97
RTCP_SMPTETC
,
// 194
98
RTCP_IJ
,
// 195
99
RTCP_SR
= 200,
100
RTCP_RR
,
// 201
101
RTCP_SDES
,
// 202
102
RTCP_BYE
,
// 203
103
RTCP_APP
,
// 204
104
RTCP_RTPFB
,
// 205
105
RTCP_PSFB
,
// 206
106
RTCP_XR
,
// 207
107
RTCP_AVB
,
// 208
108
RTCP_RSI
,
// 209
109
RTCP_TOKEN
,
// 210
110
};
111
112
#define RTP_PT_IS_RTCP(x) (((x) >= RTCP_FIR && (x) <= RTCP_IJ) || \
113
((x) >= RTCP_SR && (x) <= RTCP_TOKEN))
114
115
#define NTP_TO_RTP_FORMAT(x) av_rescale((x), INT64_C(1) << 32, 1000000)
116
117
#endif
/* AVFORMAT_RTP_H */
RTCP_AVB
@ RTCP_AVB
Definition:
rtp.h:107
ff_rtp_codec_id
enum AVCodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type)
Return the codec id for the given encoding name and codec type.
Definition:
rtp.c:143
AVCodecParameters
This struct describes the properties of an encoded stream.
Definition:
codec_par.h:52
ff_rtp_enc_name
const char * ff_rtp_enc_name(int payload_type)
Return the encoding name (as defined in http://www.iana.org/assignments/rtp-parameters) for a given p...
Definition:
rtp.c:132
RTCP_SMPTETC
@ RTCP_SMPTETC
Definition:
rtp.h:97
RTCP_IJ
@ RTCP_IJ
Definition:
rtp.h:98
RTCP_XR
@ RTCP_XR
Definition:
rtp.h:106
codec_type
enum AVMediaType codec_type
Definition:
rtp.c:37
ff_rtp_get_payload_type
int ff_rtp_get_payload_type(const AVFormatContext *fmt, const AVCodecParameters *par, int idx)
Return the payload type for a given stream used in the given format context.
Definition:
rtp.c:90
RTCP_NACK
@ RTCP_NACK
Definition:
rtp.h:96
codec_id.h
RTCP_TOKEN
@ RTCP_TOKEN
Definition:
rtp.h:109
AVFormatContext
Format I/O context.
Definition:
avformat.h:1200
RTCP_SDES
@ RTCP_SDES
Definition:
rtp.h:101
RTCP_PSFB
@ RTCP_PSFB
Definition:
rtp.h:105
RTCP_RR
@ RTCP_RR
Definition:
rtp.h:100
AVCodecID
AVCodecID
Identify the syntax and semantics of the bitstream.
Definition:
codec_id.h:47
RTCP_APP
@ RTCP_APP
Definition:
rtp.h:103
AVMediaType
AVMediaType
Definition:
avutil.h:199
RTCP_RSI
@ RTCP_RSI
Definition:
rtp.h:108
ff_rtp_get_codec_info
int ff_rtp_get_codec_info(AVCodecParameters *par, int payload_type)
Initialize a codec context based on the payload type.
Definition:
rtp.c:71
RTCP_BYE
@ RTCP_BYE
Definition:
rtp.h:102
RTCP_FIR
@ RTCP_FIR
Definition:
rtp.h:95
avformat.h
RTCP_RTPFB
@ RTCP_RTPFB
Definition:
rtp.h:104
RTCP_SR
@ RTCP_SR
Definition:
rtp.h:99
avutil.h
RTCPType
RTCPType
Definition:
rtp.h:94
codec_par.h
Generated on Wed Aug 24 2022 21:38:26 for FFmpeg by
1.8.17