ffmpeg / libavformat / rm.h @ 34bddc39
History | View | Annotate | Download (3.75 KB)
1 | 7b2a2ce5 | Aurelien Jacobs | /*
|
---|---|---|---|
2 | * "Real" compatible muxer and demuxer.
|
||
3 | 406792e7 | Diego Biurrun | * Copyright (c) 2000, 2001 Fabrice Bellard
|
4 | 7b2a2ce5 | Aurelien Jacobs | *
|
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 | 98790382 | Stefano Sabatini | #ifndef AVFORMAT_RM_H
|
23 | #define AVFORMAT_RM_H
|
||
24 | 7b2a2ce5 | Aurelien Jacobs | |
25 | #include "avformat.h" |
||
26 | |||
27 | 7379d5bc | Aurelien Jacobs | extern const char *ff_rm_metadata[4]; |
28 | |||
29 | ba614729 | Ronald S. Bultje | typedef struct RMStream RMStream; |
30 | |||
31 | RMStream *ff_rm_alloc_rmstream (void);
|
||
32 | void ff_rm_free_rmstream (RMStream *rms);
|
||
33 | |||
34 | ff13ba92 | Ronald S. Bultje | /*< input format for Realmedia-style RTSP streams */
|
35 | extern AVInputFormat rdt_demuxer;
|
||
36 | |||
37 | 0fd36362 | Ronald S. Bultje | /**
|
38 | * Read the MDPR chunk, which contains stream-specific codec initialization
|
||
39 | * parameters.
|
||
40 | *
|
||
41 | * @param s context containing RMContext and ByteIOContext for stream reading
|
||
42 | fcc995a5 | Ronald S. Bultje | * @param pb context to read the data from
|
43 | 0fd36362 | Ronald S. Bultje | * @param st the stream that the MDPR chunk belongs to and where to store the
|
44 | * parameters read from the chunk into
|
||
45 | 886e89d0 | Ronald S. Bultje | * @param rst real-specific stream information
|
46 | 79d5045d | Ronald S. Bultje | * @param codec_data_size size of the MDPR chunk
|
47 | 0fd36362 | Ronald S. Bultje | * @return 0 on success, errno codes on error
|
48 | */
|
||
49 | fcc995a5 | Ronald S. Bultje | int ff_rm_read_mdpr_codecdata (AVFormatContext *s, ByteIOContext *pb,
|
50 | 886e89d0 | Ronald S. Bultje | AVStream *st, RMStream *rst, |
51 | int codec_data_size);
|
||
52 | 0fd36362 | Ronald S. Bultje | |
53 | /**
|
||
54 | * Parse one rm-stream packet from the input bytestream.
|
||
55 | *
|
||
56 | * @param s context containing RMContext and ByteIOContext for stream reading
|
||
57 | fcc995a5 | Ronald S. Bultje | * @param pb context to read the data from
|
58 | 0fd36362 | Ronald S. Bultje | * @param st stream to which the packet to be read belongs
|
59 | 886e89d0 | Ronald S. Bultje | * @param rst Real-specific stream information
|
60 | 0fd36362 | Ronald S. Bultje | * @param len packet length to read from the input
|
61 | * @param pkt packet location to store the parsed packet data
|
||
62 | * @param seq pointer to an integer containing the sequence number, may be
|
||
63 | * updated
|
||
64 | 34bddc39 | Ronald S. Bultje | * @param flags the packet flags
|
65 | * @param ts timestamp of the current packet
|
||
66 | bf7e799c | Stefano Sabatini | * @return <0 on error, 0 if a packet was placed in the pkt pointer. A
|
67 | * value >0 means that no data was placed in pkt, but that cached
|
||
68 | c5efef7b | Ronald S. Bultje | * data is available by calling ff_rm_retrieve_cache().
|
69 | 0fd36362 | Ronald S. Bultje | */
|
70 | fcc995a5 | Ronald S. Bultje | int ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb,
|
71 | 886e89d0 | Ronald S. Bultje | AVStream *st, RMStream *rst, int len,
|
72 | 34bddc39 | Ronald S. Bultje | AVPacket *pkt, int *seq, int flags, int64_t ts); |
73 | 0fd36362 | Ronald S. Bultje | |
74 | /**
|
||
75 | * Retrieve one cached packet from the rm-context. The real container can
|
||
76 | * store several packets (as interpreted by the codec) in a single container
|
||
77 | * packet, which means the demuxer holds some back when the first container
|
||
78 | * packet is parsed and returned. The result is that rm->audio_pkt_cnt is
|
||
79 | * a positive number, the amount of cached packets. Using this function, each
|
||
80 | * of those packets can be retrieved sequentially.
|
||
81 | *
|
||
82 | * @param s context containing RMContext and ByteIOContext for stream reading
|
||
83 | fcc995a5 | Ronald S. Bultje | * @param pb context to read the data from
|
84 | 0fd36362 | Ronald S. Bultje | * @param st stream that this packet belongs to
|
85 | 886e89d0 | Ronald S. Bultje | * @param rst Real-specific stream information
|
86 | 0fd36362 | Ronald S. Bultje | * @param pkt location to store the packet data
|
87 | a9f84821 | Ronald S. Bultje | * @returns the number of samples left for subsequent calls to this same
|
88 | * function, or 0 if all samples have been retrieved.
|
||
89 | 0fd36362 | Ronald S. Bultje | */
|
90 | a9f84821 | Ronald S. Bultje | int ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
|
91 | ade8fb4d | Ronald S. Bultje | AVStream *st, RMStream *rst, AVPacket *pkt); |
92 | 0fd36362 | Ronald S. Bultje | |
93 | 98790382 | Stefano Sabatini | #endif /* AVFORMAT_RM_H */ |