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
rm.h
Go to the documentation of this file.
1
/*
2
* "Real" compatible muxer and demuxer.
3
* Copyright (c) 2000, 2001 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
22
#ifndef AVFORMAT_RM_H
23
#define AVFORMAT_RM_H
24
25
#include "
avformat.h
"
26
#include "
internal.h
"
27
28
extern
const
char
*
const
ff_rm_metadata
[4];
29
extern
const
AVCodecTag
ff_rm_codec_tags
[];
30
31
typedef
struct
RMStream
RMStream
;
32
33
RMStream
*
ff_rm_alloc_rmstream
(
void
);
34
void
ff_rm_free_rmstream
(
RMStream
*rms);
35
36
/*< input format for Realmedia-style RTSP streams */
37
extern
AVInputFormat
ff_rdt_demuxer
;
38
39
/**
40
* Read the MDPR chunk, which contains stream-specific codec initialization
41
* parameters.
42
*
43
* @param s context containing RMContext and AVIOContext for stream reading
44
* @param pb context to read the data from
45
* @param st the stream that the MDPR chunk belongs to and where to store the
46
* parameters read from the chunk into
47
* @param rst real-specific stream information
48
* @param codec_data_size size of the MDPR chunk
49
* @return 0 on success, errno codes on error
50
*/
51
int
ff_rm_read_mdpr_codecdata
(
AVFormatContext
*
s
,
AVIOContext
*pb,
52
AVStream
*st,
RMStream
*rst,
53
unsigned
int
codec_data_size,
const
uint8_t
*mime);
54
55
/**
56
* Parse one rm-stream packet from the input bytestream.
57
*
58
* @param s context containing RMContext and AVIOContext for stream reading
59
* @param pb context to read the data from
60
* @param st stream to which the packet to be read belongs
61
* @param rst Real-specific stream information
62
* @param len packet length to read from the input
63
* @param pkt packet location to store the parsed packet data
64
* @param seq pointer to an integer containing the sequence number, may be
65
* updated
66
* @param flags the packet flags
67
* @param ts timestamp of the current packet
68
* @return <0 on error, 0 if a packet was placed in the pkt pointer. A
69
* value >0 means that no data was placed in pkt, but that cached
70
* data is available by calling ff_rm_retrieve_cache().
71
*/
72
int
ff_rm_parse_packet
(
AVFormatContext
*
s
,
AVIOContext
*pb,
73
AVStream
*st,
RMStream
*rst,
int
len
,
74
AVPacket
*
pkt
,
int
*seq,
int
flags
, int64_t ts);
75
76
/**
77
* Retrieve one cached packet from the rm-context. The real container can
78
* store several packets (as interpreted by the codec) in a single container
79
* packet, which means the demuxer holds some back when the first container
80
* packet is parsed and returned. The result is that rm->audio_pkt_cnt is
81
* a positive number, the amount of cached packets. Using this function, each
82
* of those packets can be retrieved sequentially.
83
*
84
* @param s context containing RMContext and AVIOContext for stream reading
85
* @param pb context to read the data from
86
* @param st stream that this packet belongs to
87
* @param rst Real-specific stream information
88
* @param pkt location to store the packet data
89
* @return the number of samples left for subsequent calls to this same
90
* function, or 0 if all samples have been retrieved.
91
*/
92
int
ff_rm_retrieve_cache
(
AVFormatContext
*
s
,
AVIOContext
*pb,
93
AVStream
*st,
RMStream
*rst,
AVPacket
*
pkt
);
94
95
#endif
/* AVFORMAT_RM_H */
Generated on Sun Mar 8 2015 02:35:11 for FFmpeg by
1.8.2