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