FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
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 "
libavformat/avformat.h
"
25
#include "
libavcodec/avcodec.h
"
26
#include "
libavutil/mathematics.h
"
27
28
/**
29
* Return the payload type for a given stream used in the given format context.
30
* Static payload types are derived from the codec.
31
* Dynamic payload type are derived from the id field in AVStream.
32
* The format context private option payload_type overrides both.
33
*
34
* @param fmt The context of the format
35
* @param codec The context of the codec
36
* @param idx The stream index
37
* @return The payload type (the 'PT' field in the RTP header).
38
*/
39
int
ff_rtp_get_payload_type
(
AVFormatContext
*
fmt
,
AVCodecContext
*codec,
40
int
idx);
41
42
/**
43
* Initialize a codec context based on the payload type.
44
*
45
* Fill the codec_type and codec_id fields of a codec context with
46
* information depending on the payload type; for audio codecs, the
47
* channels and sample_rate fields are also filled.
48
*
49
* @param codec The context of the codec
50
* @param payload_type The payload type (the 'PT' field in the RTP header)
51
* @return In case of unknown payload type or dynamic payload type, a
52
* negative value is returned; otherwise, 0 is returned
53
*/
54
int
ff_rtp_get_codec_info
(
AVCodecContext
*codec,
int
payload_type);
55
56
/**
57
* Return the encoding name (as defined in
58
* http://www.iana.org/assignments/rtp-parameters) for a given payload type.
59
*
60
* @param payload_type The payload type (the 'PT' field in the RTP header)
61
* @return In case of unknown payload type or dynamic payload type, a pointer
62
* to an empty string is returned; otherwise, a pointer to a string containing
63
* the encoding name is returned
64
*/
65
const
char
*
ff_rtp_enc_name
(
int
payload_type);
66
67
/**
68
* Return the codec id for the given encoding name and codec type.
69
*
70
* @param buf A pointer to the string containing the encoding name
71
* @param codec_type The codec type
72
* @return In case of unknown encoding name, AV_CODEC_ID_NONE is returned;
73
* otherwise, the codec id is returned
74
*/
75
enum
AVCodecID
ff_rtp_codec_id
(
const
char
*
buf
,
enum
AVMediaType
codec_type
);
76
77
#define RTP_PT_PRIVATE 96
78
#define RTP_VERSION 2
79
#define RTP_MAX_SDES 256
/**< maximum text length for SDES */
80
81
/* RTCP packets use 0.5% of the bandwidth */
82
#define RTCP_TX_RATIO_NUM 5
83
#define RTCP_TX_RATIO_DEN 1000
84
85
/* An arbitrary id value for RTP Xiph streams - only relevant to indicate
86
* that the configuration has changed within a stream (by changing the
87
* ident value sent).
88
*/
89
#define RTP_XIPH_IDENT 0xfecdba
90
91
/* RTCP packet types */
92
enum
RTCPType
{
93
RTCP_FIR
= 192,
94
RTCP_NACK
,
// 193
95
RTCP_SMPTETC
,
// 194
96
RTCP_IJ
,
// 195
97
RTCP_SR
= 200,
98
RTCP_RR
,
// 201
99
RTCP_SDES
,
// 202
100
RTCP_BYE
,
// 203
101
RTCP_APP
,
// 204
102
RTCP_RTPFB
,
// 205
103
RTCP_PSFB
,
// 206
104
RTCP_XR
,
// 207
105
RTCP_AVB
,
// 208
106
RTCP_RSI
,
// 209
107
RTCP_TOKEN
,
// 210
108
};
109
110
#define RTP_PT_IS_RTCP(x) (((x) >= RTCP_FIR && (x) <= RTCP_IJ) || \
111
((x) >= RTCP_SR && (x) <= RTCP_TOKEN))
112
113
#define NTP_TO_RTP_FORMAT(x) av_rescale((x), INT64_C(1) << 32, 1000000)
114
115
#endif
/* AVFORMAT_RTP_H */
RTCP_AVB
Definition:
rtp.h:105
fmt
const char * fmt
Definition:
avisynth_c.h:632
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
codec_type
enum AVMediaType codec_type
Definition:
rtp.c:37
RTCP_XR
Definition:
rtp.h:104
AVFormatContext
Format I/O context.
Definition:
avformat.h:1314
mathematics.h
RTCP_SDES
Definition:
rtp.h:99
RTCP_SMPTETC
Definition:
rtp.h:95
AVCodecID
AVCodecID
Identify the syntax and semantics of the bitstream.
Definition:
avcodec.h:101
RTCP_TOKEN
Definition:
rtp.h:107
RTCP_PSFB
Definition:
rtp.h:103
RTCP_NACK
Definition:
rtp.h:94
ff_rtp_get_payload_type
int ff_rtp_get_payload_type(AVFormatContext *fmt, AVCodecContext *codec, int idx)
Return the payload type for a given stream used in the given format context.
Definition:
rtp.c:90
RTCP_RTPFB
Definition:
rtp.h:102
ff_rtp_get_codec_info
int ff_rtp_get_codec_info(AVCodecContext *codec, int payload_type)
Initialize a codec context based on the payload type.
Definition:
rtp.c:71
RTCP_IJ
Definition:
rtp.h:96
RTCP_RR
Definition:
rtp.h:98
RTCP_RSI
Definition:
rtp.h:106
RTCPType
RTCPType
Definition:
rtp.h:92
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
RTCP_FIR
Definition:
rtp.h:93
avcodec.h
Libavcodec external API header.
RTCP_BYE
Definition:
rtp.h:100
AVCodecContext
main external API structure.
Definition:
avcodec.h:1532
buf
void * buf
Definition:
avisynth_c.h:553
AVMediaType
AVMediaType
Definition:
avutil.h:191
RTCP_APP
Definition:
rtp.h:101
avformat.h
Main libavformat public API header.
RTCP_SR
Definition:
rtp.h:97
Generated on Mon Feb 15 2016 15:20:47 for FFmpeg by
1.8.6