00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AVFORMAT_AVIO_INTERNAL_H
00021 #define AVFORMAT_AVIO_INTERNAL_H
00022
00023 #include "avio.h"
00024 #include "url.h"
00025
00026 #include "libavutil/log.h"
00027
00028 extern const AVClass ffio_url_class;
00029
00030 int ffio_init_context(AVIOContext *s,
00031 unsigned char *buffer,
00032 int buffer_size,
00033 int write_flag,
00034 void *opaque,
00035 int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
00036 int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
00037 int64_t (*seek)(void *opaque, int64_t offset, int whence));
00038
00039
00046 int ffio_read_partial(AVIOContext *s, unsigned char *buf, int size);
00047
00048 void ffio_fill(AVIOContext *s, int b, int count);
00049
00050 static av_always_inline void ffio_wfourcc(AVIOContext *pb, const uint8_t *s)
00051 {
00052 avio_wl32(pb, MKTAG(s[0], s[1], s[2], s[3]));
00053 }
00054
00067 int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size);
00068
00069 uint64_t ffio_read_varlen(AVIOContext *bc);
00070
00072 int ffio_set_buf_size(AVIOContext *s, int buf_size);
00073
00074 int ffio_limit(AVIOContext *s, int size);
00075
00076 void ffio_init_checksum(AVIOContext *s,
00077 unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),
00078 unsigned long checksum);
00079 unsigned long ffio_get_checksum(AVIOContext *s);
00080 unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf,
00081 unsigned int len);
00082
00092 int ffio_open_dyn_packet_buf(AVIOContext **s, int max_packet_size);
00093
00105 int ffio_fdopen(AVIOContext **s, URLContext *h);
00106
00107 #endif