annotate avio.h @ 2433:0c047310f205 libavformat

Write one cluster and SimpleBlocks for the frames. Should now create playable mkv files for some video codecs (H.264 and VP3 checked)
author conrad
date Wed, 05 Sep 2007 00:22:52 +0000
parents a6d6b2b19341
children 89030c7e2fa7
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 * unbuffered io for ffmpeg system
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
3 * copyright (c) 2001 Fabrice Bellard
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
7 * 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
8 * 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
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: 1306
diff changeset
10 * 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
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
12 * 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
13 * 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
14 * 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
15 * 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
16 *
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 1176
diff changeset
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: 1306
diff changeset
18 * 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
19 * 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
20 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21 #ifndef AVIO_H
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
22 #define AVIO_H
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
23
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2165
diff changeset
24 #include <stdint.h>
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2165
diff changeset
25
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 /* output byte stream handling */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
28 typedef int64_t offset_t;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30 /* unbuffered I/O */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
31
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32 struct URLContext {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 struct URLProtocol *prot;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 823
diff changeset
34 int flags;
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
35 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
36 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
37 void *priv_data;
1648
90987914ad57 makes the filename member of the URLContext a pointer, so that the
gpoirier
parents: 1614
diff changeset
38 #if LIBAVFORMAT_VERSION_INT >= (52<<16)
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
39 char *filename; /**< specified filename */
1648
90987914ad57 makes the filename member of the URLContext a pointer, so that the
gpoirier
parents: 1614
diff changeset
40 #else
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
41 char filename[1]; /**< specified filename */
1648
90987914ad57 makes the filename member of the URLContext a pointer, so that the
gpoirier
parents: 1614
diff changeset
42 #endif
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
43 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
44
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
45 typedef struct URLContext URLContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
46
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
47 typedef struct URLPollEntry {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48 URLContext *handle;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49 int events;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 int revents;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
51 } URLPollEntry;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
52
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
53 #define URL_RDONLY 0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
54 #define URL_WRONLY 1
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
55 #define URL_RDWR 2
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
56
177
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
57 typedef int URLInterruptCB(void);
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
58
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
59 int url_open(URLContext **h, const char *filename, int flags);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
60 int url_read(URLContext *h, unsigned char *buf, int size);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
61 int url_write(URLContext *h, unsigned char *buf, int size);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 offset_t url_seek(URLContext *h, offset_t pos, int whence);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
63 int url_close(URLContext *h);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
64 int url_exist(const char *filename);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
65 offset_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
66
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
67 /**
1875
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
68 * Return the maximum packet size associated to packetized file
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
69 * handle. If the file is not packetized (stream like http or file on
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
70 * 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
71 *
84ed710a9adc Move avio.h's url_get_max_packet_size() comment from source to header file.
takis
parents: 1874
diff changeset
72 * @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
73 * @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
74 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
75 int url_get_max_packet_size(URLContext *h);
19
81e87c8de3dc added url_get_filename()
bellard
parents: 0
diff changeset
76 void url_get_filename(URLContext *h, char *buf, int buf_size);
81e87c8de3dc added url_get_filename()
bellard
parents: 0
diff changeset
77
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
78 /**
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
79 * the callback is called in blocking functions to test regulary if
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
80 * 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
81 * in this case by the interrupted function. 'NULL' means no interrupt
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
82 * callback is given. i
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
83 */
177
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
84 void url_set_interrupt_cb(URLInterruptCB *interrupt_cb);
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
85
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
86 /* not implemented */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
87 int url_poll(URLPollEntry *poll_table, int n, int timeout);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
88
1614
72b0e694b2b7 AVSEEK_SIZE doxy
michael
parents: 1612
diff changeset
89 /**
2165
eac986610f47 misc typo fixes
diego
parents: 1876
diff changeset
90 * Passing this as the "whence" parameter to a seek function causes it to
eac986610f47 misc typo fixes
diego
parents: 1876
diff changeset
91 * return the filesize without seeking anywhere. Supporting this is optional.
eac986610f47 misc typo fixes
diego
parents: 1876
diff changeset
92 * If it is not supported then the seek function will return <0.
1614
72b0e694b2b7 AVSEEK_SIZE doxy
michael
parents: 1612
diff changeset
93 */
1612
a6eaa0762191 seekless filesize retrieving support in 7 lines of code, also doesnt break compatibility
michael
parents: 1358
diff changeset
94 #define AVSEEK_SIZE 0x10000
a6eaa0762191 seekless filesize retrieving support in 7 lines of code, also doesnt break compatibility
michael
parents: 1358
diff changeset
95
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
96 typedef struct URLProtocol {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
97 const char *name;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
98 int (*url_open)(URLContext *h, const char *filename, int flags);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
99 int (*url_read)(URLContext *h, unsigned char *buf, int size);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
100 int (*url_write)(URLContext *h, unsigned char *buf, int size);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
101 offset_t (*url_seek)(URLContext *h, offset_t pos, int whence);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
102 int (*url_close)(URLContext *h);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
103 struct URLProtocol *next;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
104 } URLProtocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
105
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
106 extern URLProtocol *first_protocol;
177
16c4e43f34e5 added primitive aborting system
bellard
parents: 65
diff changeset
107 extern URLInterruptCB *url_interrupt_cb;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
108
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
109 int register_protocol(URLProtocol *protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
110
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
111 typedef struct {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
112 unsigned char *buffer;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
113 int buffer_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
114 unsigned char *buf_ptr, *buf_end;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
115 void *opaque;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
116 int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
117 int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
778
4fbe04f998bf Fix url_fsize for large files patch by (Wolfram Gloger: wmglo, dent med uni-muenchen de)
michael
parents: 764
diff changeset
118 offset_t (*seek)(void *opaque, offset_t offset, int whence);
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
119 offset_t pos; /**< position in the file of the current buffer */
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
120 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
121 int eof_reached; /**< true if eof reached */
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
122 int write_flag; /**< true if open for writing */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
123 int is_streamed;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
124 int max_packet_size;
418
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
125 unsigned long checksum;
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
126 unsigned char *checksum_ptr;
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
127 unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size);
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
128 int error; ///< contains the error code or 0 if no error happened
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
129 } ByteIOContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
130
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
131 int init_put_byte(ByteIOContext *s,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
132 unsigned char *buffer,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
133 int buffer_size,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
134 int write_flag,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
135 void *opaque,
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
136 int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
137 int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
778
4fbe04f998bf Fix url_fsize for large files patch by (Wolfram Gloger: wmglo, dent med uni-muenchen de)
michael
parents: 764
diff changeset
138 offset_t (*seek)(void *opaque, offset_t offset, int whence));
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
139
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
140 void put_byte(ByteIOContext *s, int b);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
141 void put_buffer(ByteIOContext *s, const unsigned char *buf, int size);
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
142 void put_le64(ByteIOContext *s, uint64_t val);
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
143 void put_be64(ByteIOContext *s, uint64_t val);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
144 void put_le32(ByteIOContext *s, unsigned int val);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
145 void put_be32(ByteIOContext *s, unsigned int val);
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents: 885
diff changeset
146 void put_le24(ByteIOContext *s, unsigned int val);
822
2614d3c1f415 kill duplicated get/put_be24()
michael
parents: 778
diff changeset
147 void put_be24(ByteIOContext *s, unsigned int val);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
148 void put_le16(ByteIOContext *s, unsigned int val);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
149 void put_be16(ByteIOContext *s, unsigned int val);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
150 void put_tag(ByteIOContext *s, const char *tag);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
151
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
152 void put_strz(ByteIOContext *s, const char *buf);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
153
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
154 offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
155 void url_fskip(ByteIOContext *s, offset_t offset);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
156 offset_t url_ftell(ByteIOContext *s);
764
cdb845a57ae4 drop most url_fileno() calls (allows to use ByteIOContext directly in caller apps instead of URLProtocol)
aurel
parents: 554
diff changeset
157 offset_t url_fsize(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
158 int url_feof(ByteIOContext *s);
554
e1f17fcfb92c write error handling
michael
parents: 418
diff changeset
159 int url_ferror(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
160
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
161 #define URL_EOF (-1)
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
162 /** @note return URL_EOF (-1) if EOF */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
163 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
164
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
165 /** @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
166 #ifdef __GNUC__
265
786e8286ea4a Patch for attribute(printf) by (Michel Bardiaux <mbardiaux at peaktime dot be>)
michaelni
parents: 206
diff changeset
167 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
168 #else
3a493a2e5bba libavformat/avio.h compilation problem in VisualC++ by (lethean at realtime dot ssu dot ac dot kr)
michaelni
parents: 177
diff changeset
169 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
170 #endif
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
171
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
172 /** @note unlike fgets, the EOL character is not returned and a whole
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
173 line is parsed. return NULL if first char read was EOF */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
174 char *url_fgets(ByteIOContext *s, char *buf, int buf_size);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
175
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
176 void put_flush_packet(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
177
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
178 int get_buffer(ByteIOContext *s, unsigned char *buf, int size);
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 265
diff changeset
179 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
180
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
181 /** @note return 0 if EOF, so you cannot use it if EOF handling is
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
182 necessary */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
183 int get_byte(ByteIOContext *s);
937
a887adfe9dc5 add a Creative VOC (de)muxer
aurel
parents: 885
diff changeset
184 unsigned int get_le24(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
185 unsigned int get_le32(ByteIOContext *s);
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
186 uint64_t get_le64(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
187 unsigned int get_le16(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
188
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
189 char *get_strz(ByteIOContext *s, char *buf, int maxlen);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
190 unsigned int get_be16(ByteIOContext *s);
822
2614d3c1f415 kill duplicated get/put_be24()
michael
parents: 778
diff changeset
191 unsigned int get_be24(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
192 unsigned int get_be32(ByteIOContext *s);
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
193 uint64_t get_be64(ByteIOContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
194
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
195 static inline int url_is_streamed(ByteIOContext *s)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
196 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
197 return s->is_streamed;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
198 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
199
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
200 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
201
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
202 /** @warning must be called before any I/O */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
203 int url_setbufsize(ByteIOContext *s, int buf_size);
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
204
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
205 /** @note when opened as read/write, the buffers are only used for
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
206 reading */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
207 int url_fopen(ByteIOContext *s, const char *filename, int flags);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
208 int url_fclose(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
209 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
210
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
211 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
212 * 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
213 * 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
214 * 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
215 *
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
216 * @param h buffered file handle
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
217 * @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
218 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
219 int url_fget_max_packet_size(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
220
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
221 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
222
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
223 /** return the written or read size */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
224 int url_close_buf(ByteIOContext *s);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
225
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
226 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
227 * 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
228 *
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
229 * @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
230 * @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
231 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
232 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
233
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
234 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
235 * 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
236 * 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
237 * 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
238 *
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
239 * @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
240 * @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
241 * @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
242 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
243 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
244
1876
247fdf49ffb8 Convert all the comment sections into Doxygen compatible comments, same for
takis
parents: 1875
diff changeset
245 /**
1874
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
246 * 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
247 * 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
248 * @param s IO context
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
249 * @param pointer to a byte buffer
3328f652d741 Move aviobuf.c comments to avio.h. By moving the aviobuf.c comments to avio.h,
takis
parents: 1787
diff changeset
250 * @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
251 */
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 19
diff changeset
252 int url_close_dyn_buf(ByteIOContext *s, uint8_t **pbuffer);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
253
418
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
254 unsigned long get_checksum(ByteIOContext *s);
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
255 void init_checksum(ByteIOContext *s, unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), unsigned long checksum);
41da3366d341 checksuming for nut & nice checksum API for libavformat
michael
parents: 389
diff changeset
256
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
257 /* file.c */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
258 extern URLProtocol file_protocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
259 extern URLProtocol pipe_protocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
260
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
261 /* udp.c */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
262 extern URLProtocol udp_protocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
263 int udp_set_remote_url(URLContext *h, const char *uri);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
264 int udp_get_local_port(URLContext *h);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
265 int udp_get_file_handle(URLContext *h);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
266
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
267 /* tcp.c */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
268 extern URLProtocol tcp_protocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
269
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
270 /* http.c */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
271 extern URLProtocol http_protocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
272
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
273 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
274