ffio_read_indirect函数定义在源文件libavformat/aviobuf.c中:
int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data)
{
if (s->buf_end - s->buf_ptr >= size && !s->write_flag) {
*data = s->buf_ptr;
s->buf_ptr += size;
return size;
} else {
*data = buf;
return avio_read(s, buf, size);
}
}
可以看到该函数内部调用了avio_read函数,可以看作是对avio_read函数的封装。