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