ffmpeg avformat_open_input与自定义流对象

时间:2017-04-25 21:29:38

标签: c++ ffmpeg

我目前正在尝试使用ffmpeg的库为SFML编写自定义SoundFileReader。我可以与avcodec和avformat一起使用的唯一东西是下面的类InputStream,它是SFML的一部分。我查看了avformat_open_inputAVIOContext,并了解了如何使用带缓冲区的自定义流,但是如何创建一个可以使用自定义读取,搜索和自定义的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
};

1 个答案:

答案 0 :(得分:1)

您需要编写一组回调函数,然后将指针传递给这些回调,并将指向不透明的参数传递给cat。请注意,这些回调不能抛出。

avio_alloc_context