AVIOContext结构体

来源:互联网 发布:头发怎么做酱油知乎 编辑:程序博客网 时间:2024/06/05 19:31

typedef struct ByteIOContext

{

//数据缓冲区

unsigned char *buffer;

    

//数据缓冲size

int buffer_size;

//数据读取标记指针

unsigned char *buf_ptr, *buf_end;

//该指针指向相应的URLContext,关联URLContext

void *opaque;

int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);

int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);

offset_t(*seek)(void *opaque, offset_t offset, int whence);

//当前buffer在文件中的位置

offset_t pos;  

//表示要进行seek,冲刷数据

int must_flush;  

//是否到达了文件末尾

int eof_reached; // true if eof reached

int write_flag;

int max_packet_size;

int error; // contains the error code or 0 if no error happened

} ByteIOContext;

说明:

ByteIOContext 结构扩展URLProtocol结构成内部有缓冲机制的广泛意义上的文件,改善广义输入文件的IO性能。由其数据结构定义的字段可知,主要是缓冲区相关字段,标记字段,和一个关联字段opaque来完成广义文件读写操作。opaque关联字段用于关联URLContext结构,间接关联并扩展URLProtocol结构。

0 0