Go to the documentation of this file.
19 #ifndef AVFORMAT_AVIO_INTERNAL_H
20 #define AVFORMAT_AVIO_INTERNAL_H
91 int (*
read_packet)(
void *opaque, uint8_t *buf,
int buf_size),
92 int (*
write_packet)(
void *opaque,
const uint8_t *buf,
int buf_size),
164 const unsigned char *ending);
197 unsigned long checksum);
256 const char *whitelist,
const char *blacklist);
void ffio_init_context(FFIOContext *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, const uint8_t *buf, int buf_size), int64_t(*seek)(void *opaque, int64_t offset, int whence))
int ffio_copy_url_options(AVIOContext *pb, AVDictionary **avio_opts)
Read url related dictionary options from the AVIOContext and write to the given dictionary.
int ffio_realloc_buf(AVIOContext *s, int buf_size)
Reallocate a given buffer for AVIOContext.
static av_always_inline void ffio_wfourcc(AVIOContext *pb, const uint8_t *s)
static av_always_inline FFIOContext * ffiocontext(AVIOContext *ctx)
int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data)
Read size bytes from AVIOContext, returning a pointer.
int64_t written_output_size
Written output size is updated each time a successful writeout ends up further position-wise.
int64_t ff_read_line_to_bprint_overwrite(AVIOContext *s, struct AVBPrint *bp)
Read a whole line of text from AVIOContext to an AVBPrint buffer overwriting its contents.
int(* short_seek_get)(void *opaque)
A callback that is used instead of short_seek_threshold.
int ffio_open_whitelist(AVIOContext **s, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options, const char *whitelist, const char *blacklist)
const AVClass ff_avio_class
void ffio_init_read_context(FFIOContext *s, const uint8_t *buffer, int buffer_size)
Wrap a buffer in an AVIOContext for reading.
AVIODataMarkerType
Different data types that can be returned via the AVIO write_data_type callback.
int short_seek_threshold
Threshold to favor readahead over seek.
unsigned long ffio_get_checksum(AVIOContext *s)
static void update_checksum(AVIOContext *s)
Callback for checking whether to abort blocking functions.
int ffio_fdopen(AVIOContext **s, struct URLContext *h)
Create and initialize a AVIOContext for accessing the resource referenced by the URLContext h.
int ffio_open_null_buf(AVIOContext **s)
Open a write-only fake memory stream.
static double val(void *priv, double ch)
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
int64_t bytes_read
Bytes read statistic.
int seek_count
seek statistic
unsigned int ffio_read_leb(AVIOContext *s)
Read a unsigned integer coded as a variable number of up to eight little-endian bytes,...
void ffio_write_leb(AVIOContext *s, unsigned val)
unsigned long ff_crcEDB88320_update(unsigned long checksum, const uint8_t *buf, unsigned int len)
Describe the class of an AVClass context structure.
int ffio_close_null_buf(AVIOContext *s)
Close a null buffer.
int orig_buffer_size
Original buffer size used after probing to ensure seekback and to reset the buffer size.
static void BS_FUNC() seek(BSCTX *bc, unsigned pos)
Seek to the given bit position.
void ffio_fill(AVIOContext *s, int b, int64_t count)
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
int64_t maxsize
max filesize, used to limit allocations
void ffio_reset_dyn_buf(AVIOContext *s)
Reset a dynamic buffer.
int writeout_count
writeout statistic
struct URLContext * ffio_geturlcontext(AVIOContext *s)
Return the URLContext associated with the AVIOContext.
void ffio_init_checksum(AVIOContext *s, unsigned long(*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), unsigned long checksum)
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'.
void avio_wl32(AVIOContext *s, unsigned int val)
int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
Ensures that the requested seekback buffer size will be available.
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
uint64_t ffio_read_varlen(AVIOContext *bc)
unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf, unsigned int len)
int ffio_limit(AVIOContext *s, int size)
unsigned long ff_crcA001_update(unsigned long checksum, const uint8_t *buf, unsigned int len)
const AVIOInterruptCB int_cb
static int write_packet(Muxer *mux, OutputStream *ost, AVPacket *pkt)
int64_t ff_read_string_to_bprint_overwrite(AVIOContext *s, struct AVBPrint *bp, int64_t max_len)
Read a whole null-terminated string of text from AVIOContext to an AVBPrint buffer overwriting its co...
void ffio_free_dyn_buf(AVIOContext **s)
Free a dynamic buffer.
enum AVIODataMarkerType current_type
void ffio_write_lines(AVIOContext *s, const unsigned char *buf, int size, const unsigned char *ending)
Write a sequence of text lines, converting line endings.
void ffio_init_write_context(FFIOContext *s, uint8_t *buffer, int buffer_size)
Wrap a buffer in an AVIOContext for writing.
the frame and frame reference mechanism is intended to as much as expensive copies of that data while still allowing the filters to produce correct results The data is stored in buffers represented by AVFrame structures Several references can point to the same frame 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.
#define flags(name, subs,...)
#define MKTAG(a, b, c, d)
int ffio_read_size(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
int64_t bytes_written
Bytes written statistic.