Mercurial > libavformat.hg
annotate rm.h @ 5798:2af44abfbfe8 libavformat
RTSP: Resolve and use the actual IP address of the peer we're connected to,
instead of using the original host name, since the RTP (and UDP) protocols
may choose another IP address if the host name resolves into several different
addresses.
author | mstorsjo |
---|---|
date | Tue, 09 Mar 2010 14:59:40 +0000 |
parents | 17ad184d14be |
children | f8093c5208f6 |
rev | line source |
---|---|
0 | 1 /* |
1415
3b00fb8ef8e4
replace coder/decoder file description in libavformat by muxer/demuxer
aurel
parents:
1358
diff
changeset
|
2 * "Real" compatible muxer and demuxer. |
4251
77e0c7511d41
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
4136
diff
changeset
|
3 * Copyright (c) 2000, 2001 Fabrice Bellard |
0 | 4 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1350
diff
changeset
|
5 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1350
diff
changeset
|
6 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1350
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
0 | 8 * modify it under the terms of the GNU Lesser General Public |
9 * License as published by the Free Software Foundation; either | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1350
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
0 | 11 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1350
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
0 | 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 | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1350
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
896
edbe5c3717f9
Update licensing information: The FSF changed postal address.
diego
parents:
888
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 20 */ |
2103 | 21 |
3852 | 22 #ifndef AVFORMAT_RM_H |
23 #define AVFORMAT_RM_H | |
2103 | 24 |
0 | 25 #include "avformat.h" |
26 | |
5161 | 27 extern const char * const ff_rm_metadata[4]; |
4522 | 28 |
4132
4c732153892b
Implement RMStream stream-specific private data object in the RM demuxer.
rbultje
parents:
4097
diff
changeset
|
29 typedef struct RMStream RMStream; |
4c732153892b
Implement RMStream stream-specific private data object in the RM demuxer.
rbultje
parents:
4097
diff
changeset
|
30 |
4c732153892b
Implement RMStream stream-specific private data object in the RM demuxer.
rbultje
parents:
4097
diff
changeset
|
31 RMStream *ff_rm_alloc_rmstream (void); |
4c732153892b
Implement RMStream stream-specific private data object in the RM demuxer.
rbultje
parents:
4097
diff
changeset
|
32 void ff_rm_free_rmstream (RMStream *rms); |
4c732153892b
Implement RMStream stream-specific private data object in the RM demuxer.
rbultje
parents:
4097
diff
changeset
|
33 |
3902
5f9bec099c69
Add dynamic payload handlers to rdt.c. These follow the same API as the ones
rbultje
parents:
3873
diff
changeset
|
34 /*< input format for Realmedia-style RTSP streams */ |
5f9bec099c69
Add dynamic payload handlers to rdt.c. These follow the same API as the ones
rbultje
parents:
3873
diff
changeset
|
35 extern AVInputFormat rdt_demuxer; |
5f9bec099c69
Add dynamic payload handlers to rdt.c. These follow the same API as the ones
rbultje
parents:
3873
diff
changeset
|
36 |
2889 | 37 /** |
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 | |
4036
1349c277efbd
Add ByteIOContext argument to public ff_rm_* functions so that we can
rbultje
parents:
3902
diff
changeset
|
42 * @param pb context to read the data from |
2889 | 43 * @param st the stream that the MDPR chunk belongs to and where to store the |
44 * parameters read from the chunk into | |
4133
90a12fced519
Add RMStream object as function argument to public functions so that non-.rm
rbultje
parents:
4132
diff
changeset
|
45 * @param rst real-specific stream information |
3873
9a589ae59655
Use chunk-size in function calling mdpr_read_codecdata() rather than in the
rbultje
parents:
3852
diff
changeset
|
46 * @param codec_data_size size of the MDPR chunk |
2889 | 47 * @return 0 on success, errno codes on error |
48 */ | |
4036
1349c277efbd
Add ByteIOContext argument to public ff_rm_* functions so that we can
rbultje
parents:
3902
diff
changeset
|
49 int ff_rm_read_mdpr_codecdata (AVFormatContext *s, ByteIOContext *pb, |
4133
90a12fced519
Add RMStream object as function argument to public functions so that non-.rm
rbultje
parents:
4132
diff
changeset
|
50 AVStream *st, RMStream *rst, |
90a12fced519
Add RMStream object as function argument to public functions so that non-.rm
rbultje
parents:
4132
diff
changeset
|
51 int codec_data_size); |
2889 | 52 |
53 /** | |
54 * Parse one rm-stream packet from the input bytestream. | |
55 * | |
56 * @param s context containing RMContext and ByteIOContext for stream reading | |
4036
1349c277efbd
Add ByteIOContext argument to public ff_rm_* functions so that we can
rbultje
parents:
3902
diff
changeset
|
57 * @param pb context to read the data from |
2889 | 58 * @param st stream to which the packet to be read belongs |
4133
90a12fced519
Add RMStream object as function argument to public functions so that non-.rm
rbultje
parents:
4132
diff
changeset
|
59 * @param rst Real-specific stream information |
2889 | 60 * @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 | |
5119
bb9cdd9ad9de
Don't use a pointer-to-flags/timestamp in ff_rm_parse_packet(); the function
rbultje
parents:
5006
diff
changeset
|
64 * @param flags the packet flags |
bb9cdd9ad9de
Don't use a pointer-to-flags/timestamp in ff_rm_parse_packet(); the function
rbultje
parents:
5006
diff
changeset
|
65 * @param ts timestamp of the current packet |
5006
686de8748c36
Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents:
4734
diff
changeset
|
66 * @return <0 on error, 0 if a packet was placed in the pkt pointer. A |
686de8748c36
Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents:
4734
diff
changeset
|
67 * value >0 means that no data was placed in pkt, but that cached |
4734
dfcf66d4a613
Remove packet returning in ff_rm_parse_packet() if we're using the packet
rbultje
parents:
4522
diff
changeset
|
68 * data is available by calling ff_rm_retrieve_cache(). |
2889 | 69 */ |
4036
1349c277efbd
Add ByteIOContext argument to public ff_rm_* functions so that we can
rbultje
parents:
3902
diff
changeset
|
70 int ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb, |
4133
90a12fced519
Add RMStream object as function argument to public functions so that non-.rm
rbultje
parents:
4132
diff
changeset
|
71 AVStream *st, RMStream *rst, int len, |
5119
bb9cdd9ad9de
Don't use a pointer-to-flags/timestamp in ff_rm_parse_packet(); the function
rbultje
parents:
5006
diff
changeset
|
72 AVPacket *pkt, int *seq, int flags, int64_t ts); |
2889 | 73 |
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 | |
4036
1349c277efbd
Add ByteIOContext argument to public ff_rm_* functions so that we can
rbultje
parents:
3902
diff
changeset
|
83 * @param pb context to read the data from |
2889 | 84 * @param st stream that this packet belongs to |
4133
90a12fced519
Add RMStream object as function argument to public functions so that non-.rm
rbultje
parents:
4132
diff
changeset
|
85 * @param rst Real-specific stream information |
2889 | 86 * @param pkt location to store the packet data |
4135
fd0fc1e26d82
Add audio_pkt_cnt return value to ff_rm_retrieve_cache(). See discussion in
rbultje
parents:
4133
diff
changeset
|
87 * @returns the number of samples left for subsequent calls to this same |
fd0fc1e26d82
Add audio_pkt_cnt return value to ff_rm_retrieve_cache(). See discussion in
rbultje
parents:
4133
diff
changeset
|
88 * function, or 0 if all samples have been retrieved. |
2889 | 89 */ |
4135
fd0fc1e26d82
Add audio_pkt_cnt return value to ff_rm_retrieve_cache(). See discussion in
rbultje
parents:
4133
diff
changeset
|
90 int ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb, |
4136 | 91 AVStream *st, RMStream *rst, AVPacket *pkt); |
2889 | 92 |
3852 | 93 #endif /* AVFORMAT_RM_H */ |