annotate avio.h @ 6193:da9998b48dff libavformat

rtpdec: Malloc the fmtp value buffer This allows very large value strings, needed for xiph extradata. Patch by Josh Allmann, joshua dot allmann at gmail
author mstorsjo
date Mon, 28 Jun 2010 20:27:25 +0000
parents 48548659926c
children fa244b4fe683
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
1 /*
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
2 * copyright (c) 2001 Fabrice Bellard
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
3 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
4 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
5 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
8 * 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: 1306
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
10 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
14 * Lesser General Public License for more details.
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
15 *
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
16 * 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: 1306
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
19 */
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3744
diff changeset
20 #ifndef AVFORMAT_AVIO_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3744
diff changeset
21 #define AVFORMAT_AVIO_H
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
22
4594
ac9bab4919a2 Add a @file notice to avio.h.
stefano
parents: 4524
diff changeset
23 /**
5969
178de7695c6c Remove explicit filename from Doxygen @file commands.
diego
parents: 5941
diff changeset
24 * @file
4594
ac9bab4919a2 Add a @file notice to avio.h.
stefano
parents: 4524
diff changeset
25 * unbuffered I/O operations
4595
af7b24671b7d Mark as "internal but installed" the avio.h file.
stefano
parents: 4594
diff changeset
26 *
af7b24671b7d Mark as "internal but installed" the avio.h file.
stefano
parents: 4594
diff changeset
27 * @warning This file has to be considered an internal but installed
af7b24671b7d Mark as "internal but installed" the avio.h file.
stefano
parents: 4594
diff changeset
28 * header, so it should not be directly included in your projects.
4594
ac9bab4919a2 Add a @file notice to avio.h.
stefano
parents: 4524
diff changeset
29 */
ac9bab4919a2 Add a @file notice to avio.h.
stefano
parents: 4524
diff changeset
30
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2165
diff changeset
31 #include <stdint.h>
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2165
diff changeset
32
4524
e2abb4e5017c Add missing #includes to fix 'make checkheaders'.
diego
parents: 4499
diff changeset
33 #include "libavutil/common.h"
6168
48548659926c Add all required includes to avio.h
mstorsjo
parents: 6161
diff changeset
34 #include "libavutil/log.h"
4524
e2abb4e5017c Add missing #includes to fix 'make checkheaders'.
diego
parents: 4499
diff changeset
35
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
36 /* unbuffered I/O */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
37
2849
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
38 /**
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
39 * URL Context.
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
40 * New fields can be added to the end with minor version bumps.
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
41 * Removal, reordering and changes to existing fields require a major
2849
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
42 * version bump.
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
43 * sizeof(URLContext) must not be used outside libav*.
2849
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
44 */
4959
089a36c3c0db Define struct URLContext and typedef it to URLContext in one step.
stefano
parents: 4640
diff changeset
45 typedef struct URLContext {
3136
e38d5357f0d0 Add AVClass to URLContext at next major version bump
superdump
parents: 2853
diff changeset
46 #if LIBAVFORMAT_VERSION_MAJOR >= 53
e38d5357f0d0 Add AVClass to URLContext at next major version bump
superdump
parents: 2853
diff changeset
47 const AVClass *av_class; ///< information for av_log(). Set by url_open().
e38d5357f0d0 Add AVClass to URLContext at next major version bump
superdump
parents: 2853
diff changeset
48 #endif
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49 struct URLProtocol *prot;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 823
diff changeset
50 int flags;
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
51 int is_streamed; /**< true if streamed (no seek possible), default = false */
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
52 int max_packet_size; /**< if non zero, the stream is packetized with this max packet size */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
53 void *priv_data;
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
54 char *filename; /**< specified URL */
6160
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
55 int is_connected;
4959
089a36c3c0db Define struct URLContext and typedef it to URLContext in one step.
stefano
parents: 4640
diff changeset
56 } URLContext;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
57
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
58 typedef struct URLPollEntry {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
59 URLContext *handle;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
60 int events;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
61 int revents;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 } URLPollEntry;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
63
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
64 #define URL_RDONLY 0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
65 #define URL_WRONLY 1
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
66 #define URL_RDWR 2
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
67
177
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
68 typedef int URLInterruptCB(void);
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
69
5582
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
70 /**
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
71 * Creates an URLContext for accessing to the resource indicated by
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
72 * url, and opens it using the URLProtocol up.
5582
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
73 *
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
74 * @param puc pointer to the location where, in case of success, the
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
75 * function puts the pointer to the created URLContext
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
76 * @param flags flags which control how the resource indicated by url
5582
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
77 * is to be opened
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
78 * @return 0 in case of success, a negative value corresponding to an
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
79 * AVERROR code in case of failure
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
80 */
3744
b140b68a3747 Implement url_open_protocol(), which is basiclly the former url_open()
rbultje
parents: 3198
diff changeset
81 int url_open_protocol (URLContext **puc, struct URLProtocol *up,
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
82 const char *url, int flags);
5582
ef37cc286c01 Doxument url_open_protocol().
stefano
parents: 5581
diff changeset
83
5587
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
84 /**
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
85 * Creates an URLContext for accessing to the resource indicated by
6160
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
86 * url, but doesn't initiate the connection yet.
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
87 *
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
88 * @param puc pointer to the location where, in case of success, the
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
89 * function puts the pointer to the created URLContext
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
90 * @param flags flags which control how the resource indicated by url
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
91 * is to be opened
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
92 * @return 0 in case of success, a negative value corresponding to an
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
93 * AVERROR code in case of failure
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
94 */
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
95 int url_alloc(URLContext **h, const char *url, int flags);
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
96
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
97 /**
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
98 * Connect an URLContext that has been allocated by url_alloc
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
99 */
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
100 int url_connect(URLContext *h);
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
101
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
102 /**
1b4be334ef89 Split url_open and url_open_protocol into url_alloc and url_connect
mstorsjo
parents: 6159
diff changeset
103 * Creates an URLContext for accessing to the resource indicated by
5587
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
104 * url, and opens it.
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
105 *
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
106 * @param puc pointer to the location where, in case of success, the
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
107 * function puts the pointer to the created URLContext
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
108 * @param flags flags which control how the resource indicated by url
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
109 * is to be opened
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
110 * @return 0 in case of success, a negative value corresponding to an
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
111 * AVERROR code in case of failure
0ab98b4a3778 Doxument url_open().
stefano
parents: 5585
diff changeset
112 */
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
113 int url_open(URLContext **h, const char *url, int flags);
5581
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
114
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
115 /**
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
116 * Reads up to size bytes from the resource accessed by h, and stores
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
117 * the read bytes in buf.
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
118 *
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
119 * @return The number of bytes actually read, or a negative value
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
120 * corresponding to an AVERROR code in case of error. A value of zero
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
121 * indicates that it is not possible to read more from the accessed
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
122 * resource (except if the value of the size argument is also zero).
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
123 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
124 int url_read(URLContext *h, unsigned char *buf, int size);
5581
d205fac9f807 Doxument url_read().
stefano
parents: 5580
diff changeset
125
5580
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
126 /**
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
127 * Read as many bytes as possible (up to size), calling the
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
128 * read function multiple times if necessary.
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
129 * Will also retry if the read function returns AVERROR(EAGAIN).
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
130 * This makes special short-read handling in applications
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
131 * unnecessary, if the return value is < size then it is
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
132 * certain there was either an error or the end of file was reached.
07ce73fed19f Make url_read_complete retry on EAGAIN and return how much data it read
reimar
parents: 5320
diff changeset
133 */
5004
84a7b7a2f252 Move function for reading whole specified amount of data from RTSP
kostya
parents: 4959
diff changeset
134 int url_read_complete(URLContext *h, unsigned char *buf, int size);
6068
7fdda2416684 Declare the url_write buffer parameter as const
mstorsjo
parents: 5969
diff changeset
135 int url_write(URLContext *h, const unsigned char *buf, int size);
5903
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
136
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
137 /**
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
138 * Changes the position that will be used by the next read/write
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
139 * operation on the resource accessed by h.
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
140 *
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
141 * @param pos specifies the new position to set
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
142 * @param whence specifies how pos should be interpreted, it must be
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
143 * one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
144 * current position), SEEK_END (seek from the end), or AVSEEK_SIZE
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
145 * (return the filesize of the requested resource, pos is ignored).
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
146 * @return a negative value corresponding to an AVERROR code in case
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
147 * of failure, or the resulting file position, measured in bytes from
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
148 * the beginning of the file. You can use this feature together with
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
149 * SEEK_CUR to read the current file position.
c520016533ed Document url_seek().
stefano
parents: 5850
diff changeset
150 */
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
151 int64_t url_seek(URLContext *h, int64_t pos, int whence);
5583
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
152
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
153 /**
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
154 * Closes the resource accessed by the URLContext h, and frees the
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
155 * memory used by it.
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
156 *
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
157 * @return a negative value if an error condition occurred, 0
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
158 * otherwise
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
159 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
160 int url_close(URLContext *h);
5583
b862bba5a321 Doxument url_close().
stefano
parents: 5582
diff changeset
161
5908
e0e34711fc2e Document url_exist().
stefano
parents: 5903
diff changeset
162 /**
e0e34711fc2e Document url_exist().
stefano
parents: 5903
diff changeset
163 * Returns a non-zero value if the resource indicated by url
e0e34711fc2e Document url_exist().
stefano
parents: 5903
diff changeset
164 * exists, 0 otherwise.
e0e34711fc2e Document url_exist().
stefano
parents: 5903
diff changeset
165 */
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
166 int url_exist(const char *url);
5908
e0e34711fc2e Document url_exist().
stefano
parents: 5903
diff changeset
167
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
168 int64_t url_filesize(URLContext *h);
1875
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
169
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
170 /**
4640
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
171 * Return the file descriptor associated with this URL. For RTP, this
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
172 * will return only the RTP file descriptor, not the RTCP file descriptor.
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
173 * To get both, use rtp_get_file_handles().
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
174 *
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
175 * @return the file descriptor associated with this URL, or <0 on error.
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
176 */
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
177 int url_get_file_handle(URLContext *h);
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
178
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
179 /**
1875
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
180 * Return the maximum packet size associated to packetized file
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
181 * handle. If the file is not packetized (stream like HTTP or file on
1875
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
182 * disk), then 0 is returned.
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
183 *
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
184 * @param h file handle
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
185 * @return maximum packet size in bytes
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
186 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
187 int url_get_max_packet_size(URLContext *h);
19
81e87c8de3dc added url_get_filename()
bellard
parents: 0
diff changeset
188 void url_get_filename(URLContext *h, char *buf, int buf_size);
81e87c8de3dc added url_get_filename()
bellard
parents: 0
diff changeset
189
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
190 /**
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
191 * The callback is called in blocking functions to test regulary if
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
192 * asynchronous interruption is needed. AVERROR(EINTR) is returned
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
193 * in this case by the interrupted function. 'NULL' means no interrupt
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
194 * callback is given.
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
195 */
177
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
196 void url_set_interrupt_cb(URLInterruptCB *interrupt_cb);
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
197
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
198 /* not implemented */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
199 int url_poll(URLPollEntry *poll_table, int n, int timeout);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
200
2839
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
201 /**
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
202 * Pause and resume playing - only meaningful if using a network streaming
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
203 * protocol (e.g. MMS).
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
204 * @param pause 1 for pause, 0 for resume
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
205 */
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
206 int av_url_read_pause(URLContext *h, int pause);
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
207
2778
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
208 /**
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
209 * Seek to a given timestamp relative to some component stream.
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
210 * Only meaningful if using a network streaming protocol (e.g. MMS.).
2778
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
211 * @param stream_index The stream index that the timestamp is relative to.
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
212 * If stream_index is (-1) the timestamp should be in AV_TIME_BASE
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
213 * units from the beginning of the presentation.
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
214 * If a stream_index >= 0 is used and the protocol does not support
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
215 * seeking based on component streams, the call will fail with ENOTSUP.
2852
5f2ec0e202b0 Fix Doxygen function parameter name.
diego
parents: 2851
diff changeset
216 * @param timestamp timestamp in AVStream.time_base units
2778
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
217 * or if there is no stream specified then in AV_TIME_BASE units.
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
218 * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
219 * and AVSEEK_FLAG_ANY. The protocol may silently ignore
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
220 * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
221 * fail with ENOTSUP if used and not supported.
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
222 * @return >= 0 on success
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
223 * @see AVInputFormat::read_seek
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
224 */
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
225 int64_t av_url_read_seek(URLContext *h, int stream_index,
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
226 int64_t timestamp, int flags);
2778
50e2307414ee Extend URLProtocol with new function pointers and api functions for
andoma
parents: 2771
diff changeset
227
1614
72b0e694b2b7 AVSEEK_SIZE doxy
michael
parents: 1612
diff changeset
228 /**
2165
eac986610f47 misc typo fixes
diego
parents: 1876
diff changeset
229 * Passing this as the "whence" parameter to a seek function causes it to
eac986610f47 misc typo fixes
diego
parents: 1876
diff changeset
230 * return the filesize without seeking anywhere. Supporting this is optional.
eac986610f47 misc typo fixes
diego
parents: 1876
diff changeset
231 * If it is not supported then the seek function will return <0.
1614
72b0e694b2b7 AVSEEK_SIZE doxy
michael
parents: 1612
diff changeset
232 */
1612
a6eaa0762191 seekless filesize retrieving support in 7 lines of code, also doesnt break compatibility
michael
parents: 1358
diff changeset
233 #define AVSEEK_SIZE 0x10000
a6eaa0762191 seekless filesize retrieving support in 7 lines of code, also doesnt break compatibility
michael
parents: 1358
diff changeset
234
5850
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
235 /**
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
236 * Oring this flag as into the "whence" parameter to a seek function causes it to
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
237 * seek by any means (like reopening and linear reading) or other normally unreasonble
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
238 * means that can be extreemly slow.
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
239 * This may be ignored by the seek code.
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
240 */
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
241 #define AVSEEK_FORCE 0x20000
a9a36b4f83a2 Add AVSEEK_FORCE flag to indicate that the code should attempt to seek
michael
parents: 5640
diff changeset
242
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
243 typedef struct URLProtocol {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
244 const char *name;
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
245 int (*url_open)(URLContext *h, const char *url, int flags);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
246 int (*url_read)(URLContext *h, unsigned char *buf, int size);
6068
7fdda2416684 Declare the url_write buffer parameter as const
mstorsjo
parents: 5969
diff changeset
247 int (*url_write)(URLContext *h, const unsigned char *buf, int size);
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
248 int64_t (*url_seek)(URLContext *h, int64_t pos, int whence);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
249 int (*url_close)(URLContext *h);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
250 struct URLProtocol *next;
2839
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
251 int (*url_read_pause)(URLContext *h, int pause);
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
252 int64_t (*url_read_seek)(URLContext *h, int stream_index,
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
253 int64_t timestamp, int flags);
4640
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
254 int (*url_get_file_handle)(URLContext *h);
6161
f7090c70ed34 Add priv_data_size and priv_data_class to URLProtocol
mstorsjo
parents: 6160
diff changeset
255 int priv_data_size;
f7090c70ed34 Add priv_data_size and priv_data_class to URLProtocol
mstorsjo
parents: 6160
diff changeset
256 const AVClass *priv_data_class;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
257 } URLProtocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
258
4491
673107cf7fe6 Do not export to the public the first_protocol symbol at the next
stefano
parents: 4490
diff changeset
259 #if LIBAVFORMAT_VERSION_MAJOR < 53
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
260 extern URLProtocol *first_protocol;
4491
673107cf7fe6 Do not export to the public the first_protocol symbol at the next
stefano
parents: 4490
diff changeset
261 #endif
673107cf7fe6 Do not export to the public the first_protocol symbol at the next
stefano
parents: 4490
diff changeset
262
177
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
263 extern URLInterruptCB *url_interrupt_cb;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
264
4490
59e1aa351b77 Document av_protocol_next().
stefano
parents: 4488
diff changeset
265 /**
59e1aa351b77 Document av_protocol_next().
stefano
parents: 4488
diff changeset
266 * If protocol is NULL, returns the first registered protocol,
4499
dee012239d99 Improve grammar: "X next after Y" -> "next X after Y".
stefano
parents: 4491
diff changeset
267 * if protocol is non-NULL, returns the next registered protocol after protocol,
4490
59e1aa351b77 Document av_protocol_next().
stefano
parents: 4488
diff changeset
268 * or NULL if protocol is the last one.
59e1aa351b77 Document av_protocol_next().
stefano
parents: 4488
diff changeset
269 */
2812
173b5cb7efde av_*_next() API for libavformat
michael
parents: 2783
diff changeset
270 URLProtocol *av_protocol_next(URLProtocol *p);
173b5cb7efde av_*_next() API for libavformat
michael
parents: 2783
diff changeset
271
4488
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
272 #if LIBAVFORMAT_VERSION_MAJOR < 53
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
273 /**
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
274 * @deprecated Use av_register_protocol() instead.
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
275 */
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
276 attribute_deprecated int register_protocol(URLProtocol *protocol);
6159
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
277
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
278 /**
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
279 * @deprecated Use av_register_protocol2() instead.
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
280 */
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
281 attribute_deprecated int av_register_protocol(URLProtocol *protocol);
4488
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
282 #endif
724c0f6a52dc Rename register_protocol() to av_register_protocol() and deprecate
stefano
parents: 4091
diff changeset
283
5590
da4b8a105fd3 Document av_register_protocol(), not that it really needs to be
stefano
parents: 5587
diff changeset
284 /**
da4b8a105fd3 Document av_register_protocol(), not that it really needs to be
stefano
parents: 5587
diff changeset
285 * Registers the URLProtocol protocol.
6159
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
286 *
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
287 * @param size the size of the URLProtocol struct referenced
5590
da4b8a105fd3 Document av_register_protocol(), not that it really needs to be
stefano
parents: 5587
diff changeset
288 */
6159
3fcaee5cf416 Add an av_register_protocol2 function that takes a size parameter
mstorsjo
parents: 6068
diff changeset
289 int av_register_protocol2(URLProtocol *protocol, int size);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
290
2849
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
291 /**
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
292 * Bytestream IO Context.
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
293 * New fields can be added to the end with minor version bumps.
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
294 * Removal, reordering and changes to existing fields require a major
2849
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
295 * version bump.
2851
979a885a7686 comment typo fixes
diego
parents: 2850
diff changeset
296 * sizeof(ByteIOContext) must not be used outside libav*.
2849
0182bdddc45e Document ByteIOContext and URLContext change rules.
michael
parents: 2840
diff changeset
297 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
298 typedef struct {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
299 unsigned char *buffer;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
300 int buffer_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
301 unsigned char *buf_ptr, *buf_end;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
302 void *opaque;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
303 int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
304 int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
305 int64_t (*seek)(void *opaque, int64_t offset, int whence);
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
306 int64_t pos; /**< position in the file of the current buffer */
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
307 int must_flush; /**< true if the next seek should flush */
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
308 int eof_reached; /**< true if eof reached */
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
309 int write_flag; /**< true if open for writing */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
310 int is_streamed;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
311 int max_packet_size;
418
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
312 unsigned long checksum;
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
313 unsigned char *checksum_ptr;
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
314 unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size);
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
315 int error; ///< contains the error code or 0 if no error happened
2839
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
316 int (*read_pause)(void *opaque, int pause);
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
317 int64_t (*read_seek)(void *opaque, int stream_index,
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
318 int64_t timestamp, int flags);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
319 } ByteIOContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
320
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
321 int init_put_byte(ByteIOContext *s,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
322 unsigned char *buffer,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
323 int buffer_size,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
324 int write_flag,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
325 void *opaque,
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
326 int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
327 int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
328 int64_t (*seek)(void *opaque, int64_t offset, int whence));
2853
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
329 ByteIOContext *av_alloc_put_byte(
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
330 unsigned char *buffer,
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
331 int buffer_size,
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
332 int write_flag,
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
333 void *opaque,
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
334 int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
7ad207078047 Add a av_alloc_put_byte function.
reimar
parents: 2852
diff changeset
335 int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
336 int64_t (*seek)(void *opaque, int64_t offset, int whence));
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
337
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
338 void put_byte(ByteIOContext *s, int b);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
339 void put_buffer(ByteIOContext *s, const unsigned char *buf, int size);
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
340 void put_le64(ByteIOContext *s, uint64_t val);
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
341 void put_be64(ByteIOContext *s, uint64_t val);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
342 void put_le32(ByteIOContext *s, unsigned int val);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
343 void put_be32(ByteIOContext *s, unsigned int val);
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents: 885
diff changeset
344 void put_le24(ByteIOContext *s, unsigned int val);
822
2614d3c1f415 kill duplicated get/put_be24()
michael
parents: 778
diff changeset
345 void put_be24(ByteIOContext *s, unsigned int val);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
346 void put_le16(ByteIOContext *s, unsigned int val);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
347 void put_be16(ByteIOContext *s, unsigned int val);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
348 void put_tag(ByteIOContext *s, const char *tag);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
349
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
350 void put_strz(ByteIOContext *s, const char *buf);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
351
3168
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
352 /**
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
353 * fseek() equivalent for ByteIOContext.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
354 * @return new position or AVERROR.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
355 */
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
356 int64_t url_fseek(ByteIOContext *s, int64_t offset, int whence);
3168
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
357
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
358 /**
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
359 * Skip given number of bytes forward.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
360 * @param offset number of bytes
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
361 */
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
362 void url_fskip(ByteIOContext *s, int64_t offset);
3168
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
363
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
364 /**
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
365 * ftell() equivalent for ByteIOContext.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
366 * @return position or AVERROR.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
367 */
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
368 int64_t url_ftell(ByteIOContext *s);
3168
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
369
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
370 /**
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
371 * Gets the filesize.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
372 * @return filesize or AVERROR
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
373 */
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
374 int64_t url_fsize(ByteIOContext *s);
3168
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
375
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
376 /**
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
377 * feof() equivalent for ByteIOContext.
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
378 * @return non zero if and only if end of file
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
379 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
380 int url_feof(ByteIOContext *s);
3168
103f156dd8cc Document a few url_* functions.
michael
parents: 3136
diff changeset
381
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
382 int url_ferror(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
383
2839
b51319dd86e5 Merge recently added and still unused play and pause functions.
michael
parents: 2834
diff changeset
384 int av_url_read_fpause(ByteIOContext *h, int pause);
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
385 int64_t av_url_read_fseek(ByteIOContext *h, int stream_index,
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
386 int64_t timestamp, int flags);
2783
1a9db30c1d1c Extend ByteIOContext and add the buffered IO functions:
andoma
parents: 2778
diff changeset
387
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
388 #define URL_EOF (-1)
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
389 /** @note return URL_EOF (-1) if EOF */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
390 int url_fgetc(ByteIOContext *s);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
391
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
392 /** @warning currently size is limited */
206
3a493a2e5bba libavformat/avio.h compilation problem in VisualC++ by (lethean at realtime dot ssu dot ac dot kr)
michaelni
parents: 177
diff changeset
393 #ifdef __GNUC__
265
786e8286ea4a Patch for attribute(printf) by (Michel Bardiaux <mbardiaux at peaktime dot be>)
michaelni
parents: 206
diff changeset
394 int url_fprintf(ByteIOContext *s, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
206
3a493a2e5bba libavformat/avio.h compilation problem in VisualC++ by (lethean at realtime dot ssu dot ac dot kr)
michaelni
parents: 177
diff changeset
395 #else
3a493a2e5bba libavformat/avio.h compilation problem in VisualC++ by (lethean at realtime dot ssu dot ac dot kr)
michaelni
parents: 177
diff changeset
396 int url_fprintf(ByteIOContext *s, const char *fmt, ...);
3a493a2e5bba libavformat/avio.h compilation problem in VisualC++ by (lethean at realtime dot ssu dot ac dot kr)
michaelni
parents: 177
diff changeset
397 #endif
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
398
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
399 /** @note unlike fgets, the EOL character is not returned and a whole
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
400 line is parsed. return NULL if first char read was EOF */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
401 char *url_fgets(ByteIOContext *s, char *buf, int buf_size);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
402
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
403 void put_flush_packet(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
404
3174
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
405
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
406 /**
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
407 * Reads size bytes from ByteIOContext into buf.
5909
b8041f85c327 Replace @returns by @return.
benoit
parents: 5908
diff changeset
408 * @return number of bytes read or AVERROR
3174
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
409 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
410 int get_buffer(ByteIOContext *s, unsigned char *buf, int size);
3174
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
411
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
412 /**
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
413 * Reads size bytes from ByteIOContext into buf.
3198
814a32de9ec7 minor typo fixes
diego
parents: 3176
diff changeset
414 * This reads at most 1 packet. If that is not enough fewer bytes will be
3174
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
415 * returned.
5909
b8041f85c327 Replace @returns by @return.
benoit
parents: 5908
diff changeset
416 * @return number of bytes read or AVERROR
3174
e5c7e9eac774 Document get_*_buffer()
michael
parents: 3168
diff changeset
417 */
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 265
diff changeset
418 int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
419
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
420 /** @note return 0 if EOF, so you cannot use it if EOF handling is
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
421 necessary */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
422 int get_byte(ByteIOContext *s);
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents: 885
diff changeset
423 unsigned int get_le24(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
424 unsigned int get_le32(ByteIOContext *s);
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
425 uint64_t get_le64(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
426 unsigned int get_le16(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
427
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
428 char *get_strz(ByteIOContext *s, char *buf, int maxlen);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
429 unsigned int get_be16(ByteIOContext *s);
822
2614d3c1f415 kill duplicated get/put_be24()
michael
parents: 778
diff changeset
430 unsigned int get_be24(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
431 unsigned int get_be32(ByteIOContext *s);
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
432 uint64_t get_be64(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
433
2700
dfcac0102c34 Add ff_ prefix to get_v()
kostya
parents: 2699
diff changeset
434 uint64_t ff_get_v(ByteIOContext *bc);
2699
49c540731133 Make get_v() available to the other demuxers
kostya
parents: 2683
diff changeset
435
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
436 static inline int url_is_streamed(ByteIOContext *s)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
437 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
438 return s->is_streamed;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
439 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
440
5632
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
441 /**
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
442 * Creates and initializes a ByteIOContext for accessing the
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
443 * resource referenced by the URLContext h.
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
444 * @note When the URLContext h has been opened in read+write mode, the
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
445 * ByteIOContext can be used only for writing.
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
446 *
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
447 * @param s Used to return the pointer to the created ByteIOContext.
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
448 * In case of failure the pointed to value is set to NULL.
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
449 * @return 0 in case of success, a negative value corresponding to an
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
450 * AVERROR code in case of failure
4c2b20d0233c Doxument url_fdopen().
stefano
parents: 5590
diff changeset
451 */
2771
d52c718e83f9 Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents: 2748
diff changeset
452 int url_fdopen(ByteIOContext **s, URLContext *h);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
453
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
454 /** @warning must be called before any I/O */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
455 int url_setbufsize(ByteIOContext *s, int buf_size);
5320
db1e4c61789a Make url_resetbuf() assert on wrong flags passed and make it static on next
benoit
parents: 5004
diff changeset
456 #if LIBAVFORMAT_VERSION_MAJOR < 53
2598
fc7f8ee4700b Add functionality to set the direction of a ByteIOContext buffer.
benoit
parents: 2582
diff changeset
457 /** Reset the buffer for reading or writing.
fc7f8ee4700b Add functionality to set the direction of a ByteIOContext buffer.
benoit
parents: 2582
diff changeset
458 * @note Will drop any data currently in the buffer without transmitting it.
fc7f8ee4700b Add functionality to set the direction of a ByteIOContext buffer.
benoit
parents: 2582
diff changeset
459 * @param flags URL_RDONLY to set up the buffer for reading, or URL_WRONLY
fc7f8ee4700b Add functionality to set the direction of a ByteIOContext buffer.
benoit
parents: 2582
diff changeset
460 * to set up the buffer for writing. */
fc7f8ee4700b Add functionality to set the direction of a ByteIOContext buffer.
benoit
parents: 2582
diff changeset
461 int url_resetbuf(ByteIOContext *s, int flags);
5320
db1e4c61789a Make url_resetbuf() assert on wrong flags passed and make it static on next
benoit
parents: 5004
diff changeset
462 #endif
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
463
5640
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
464 /**
5941
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
465 * Rewinds the ByteIOContext using the specified buffer containing the first buf_size bytes of the file.
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
466 * Used after probing to avoid seeking.
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
467 * Joins buf and s->buffer, taking any overlap into consideration.
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
468 * @note s->buffer must overlap with buf or they can't be joined and the function fails
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
469 * @note This function is NOT part of the public API
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
470 *
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
471 * @param s The read-only ByteIOContext to rewind
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
472 * @param buf The probe buffer containing the first buf_size bytes of the file
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
473 * @param buf_size The size of buf
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
474 * @return 0 in case of success, a negative value corresponding to an
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
475 * AVERROR code in case of failure
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
476 */
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
477 int ff_rewind_with_probe_data(ByteIOContext *s, unsigned char *buf, int buf_size);
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
478
bde9a4b67f86 Reusing the probe buffer to rewind the ByteIOContext in ff_probe_input_buffer() instead of seeking back to the start of the file. Once exhausted, the size of the buffer is reduced.
thardin
parents: 5909
diff changeset
479 /**
5640
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
480 * Creates and initializes a ByteIOContext for accessing the
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
481 * resource indicated by url.
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
482 * @note When the resource indicated by url has been opened in
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
483 * read+write mode, the ByteIOContext can be used only for writing.
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
484 *
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
485 * @param s Used to return the pointer to the created ByteIOContext.
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
486 * In case of failure the pointed to value is set to NULL.
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
487 * @param flags flags which control how the resource indicated by url
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
488 * is to be opened
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
489 * @return 0 in case of success, a negative value corresponding to an
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
490 * AVERROR code in case of failure
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
491 */
5585
333f55aab3a2 Favor the term "URL" over "filename", as the API deals with URLs
stefano
parents: 5583
diff changeset
492 int url_fopen(ByteIOContext **s, const char *url, int flags);
5640
60f12d6e951c Doxument url_fopen().
stefano
parents: 5632
diff changeset
493
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
494 int url_fclose(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
495 URLContext *url_fileno(ByteIOContext *s);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
496
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
497 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
498 * Return the maximum packet size associated to packetized buffered file
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
499 * handle. If the file is not packetized (stream like http or file on
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
500 * disk), then 0 is returned.
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
501 *
2747
2291661e6097 Fix Doxygen parameter name
takis
parents: 2700
diff changeset
502 * @param s buffered file handle
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
503 * @return maximum packet size in bytes
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
504 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
505 int url_fget_max_packet_size(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
506
2771
d52c718e83f9 Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents: 2748
diff changeset
507 int url_open_buf(ByteIOContext **s, uint8_t *buf, int buf_size, int flags);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
508
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
509 /** return the written or read size */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
510 int url_close_buf(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
511
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
512 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
513 * Open a write only memory stream.
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
514 *
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
515 * @param s new IO context
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
516 * @return zero if no error.
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
517 */
2771
d52c718e83f9 Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents: 2748
diff changeset
518 int url_open_dyn_buf(ByteIOContext **s);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
519
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
520 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
521 * Open a write only packetized memory stream with a maximum packet
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
522 * size of 'max_packet_size'. The stream is stored in a memory buffer
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
523 * with a big endian 4 byte header giving the packet size in bytes.
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
524 *
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
525 * @param s new IO context
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
526 * @param max_packet_size maximum packet size (must be > 0)
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
527 * @return zero if no error.
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
528 */
2771
d52c718e83f9 Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents: 2748
diff changeset
529 int url_open_dyn_packet_buf(ByteIOContext **s, int max_packet_size);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
530
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
531 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
532 * Return the written size and a pointer to the buffer. The buffer
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
533 * must be freed with av_free().
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
534 * @param s IO context
2748
fdeb230c8ced Fix Doxygen parameter name
takis
parents: 2747
diff changeset
535 * @param pbuffer pointer to a byte buffer
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
536 * @return the length of the byte buffer
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
537 */
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
538 int url_close_dyn_buf(ByteIOContext *s, uint8_t **pbuffer);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
539
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
540 unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf,
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
541 unsigned int len);
418
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
542 unsigned long get_checksum(ByteIOContext *s);
4091
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
543 void init_checksum(ByteIOContext *s,
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
544 unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),
626b5bfb5aef whitespace cosmetics
diego
parents: 3973
diff changeset
545 unsigned long checksum);
418
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
546
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
547 /* udp.c */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
548 int udp_set_remote_url(URLContext *h, const char *uri);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
549 int udp_get_local_port(URLContext *h);
4640
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
550 #if (LIBAVFORMAT_VERSION_MAJOR <= 52)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
551 int udp_get_file_handle(URLContext *h);
4640
b34d9614b887 Add url_get_file_handle(), which is used to get the file descriptor
rbultje
parents: 4595
diff changeset
552 #endif
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
553
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3744
diff changeset
554 #endif /* AVFORMAT_AVIO_H */