19 #ifndef AVFORMAT_AVIO_INTERNAL_H 20 #define AVFORMAT_AVIO_INTERNAL_H 36 int64_t (*seek)(
void *opaque, int64_t
offset,
int whence));
166 const char *whitelist,
const char *blacklist);
static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int unqueue)
uint64_t ffio_read_varlen(AVIOContext *bc)
static void update_checksum(AVIOContext *s)
ptrdiff_t const GLvoid * data
int ffio_close_null_buf(AVIOContext *s)
Close a null buffer.
int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char **buf, int buf_size)
Rewind the AVIOContext using the specified buffer containing the first buf_size bytes of the file...
int ffio_read_size(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
int ffio_realloc_buf(AVIOContext *s, int buf_size)
Reallocate a given buffer for AVIOContext.
int ffio_limit(AVIOContext *s, int size)
void avio_wl32(AVIOContext *s, unsigned int val)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
unsigned long ff_crcEDB88320_update(unsigned long checksum, const uint8_t *buf, unsigned int len)
int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data)
Read size bytes from AVIOContext, returning a pointer.
const AVClass ff_avio_class
static av_always_inline void ffio_wfourcc(AVIOContext *pb, const uint8_t *s)
Callback for checking whether to abort blocking functions.
const AVIOInterruptCB int_cb
int ffio_set_buf_size(AVIOContext *s, int buf_size)
void ffio_reset_dyn_buf(AVIOContext *s)
Reset a dynamic buffer.
void ffio_init_checksum(AVIOContext *s, unsigned long(*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), unsigned long checksum)
void ffio_fill(AVIOContext *s, int b, int count)
int ffio_open_dyn_packet_buf(AVIOContext **s, int max_packet_size)
Open a write only packetized memory stream with a maximum packet size of 'max_packet_size'.
unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf, unsigned int len)
unsigned long ff_crcA001_update(unsigned long checksum, const uint8_t *buf, unsigned int len)
static volatile int checksum
void ffio_free_dyn_buf(AVIOContext **s)
Free a dynamic buffer.
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Describe the class of an AVClass context structure.
unsigned long ffio_get_checksum(AVIOContext *s)
int ffio_open_null_buf(AVIOContext **s)
Open a write-only fake memory stream.
int ffio_open_whitelist(AVIOContext **s, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options, const char *whitelist, const char *blacklist)
URLContext * ffio_geturlcontext(AVIOContext *s)
Return the URLContext associated with the AVIOContext.
#define flags(name, subs,...)
int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
Ensures that the requested seekback buffer size will be available.
const OptionDef options[]
int ffio_init_context(AVIOContext *s, unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int(*read_packet)(void *opaque, uint8_t *buf, int buf_size), int(*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t(*seek)(void *opaque, int64_t offset, int whence))
int ffio_fdopen(AVIOContext **s, URLContext *h)
Create and initialize a AVIOContext for accessing the resource referenced by the URLContext h...
unbuffered private I/O API
#define MKTAG(a, b, c, d)