我目前正在尝试使用ffmpeg的库为SFML编写自定义SoundFileReader
。我可以与avcodec和avformat一起使用的唯一东西是下面的类InputStream
,它是SFML的一部分。我查看了avformat_open_input
和AVIOContext
,并了解了如何使用带缓冲区的自定义流,但是如何创建一个可以使用自定义读取,搜索和自定义的AVIOContext
lseek功能?
class InputStream {
int64_t getSize()
int64_t read(void* data, int64_t size);
int64_t seek(int64_t position);
int64_t tell(); // Gets the stream position
};
答案 0 :(得分:1)
您需要编写一组回调函数,然后将指针传递给这些回调,并将指向不透明的参数传递给cat
。请注意,这些回调不能抛出。
avio_alloc_context