我使用LibAV实现了帧读取超时。我已经找到了一些解决方案,这要归功于 AVFormatContext 中的 AVIOInterruptCB 回调“ decode_interrupt_cb ”。
在没有对象的纯C语言中工作正常,但在C ++中,我有一个编译错误的对象:
错误:无法从类型转换“ AvReadFrame :: decode_interrupt_cb” ‘int(AvReadFrame ::)(void *)’键入‘int()(void )’
我的回叫是:
int AvReadFrame::decode_interrupt_cb(void * ctx)
{
// Do something
}
我的初始化是:
AVFormatContext* format_ctx = avformat_alloc_context();
const AVIOInterruptCB int_cb = { AvReadFrame::decode_interrupt_cb, NULL }; <<<-- ERROR
format_ctx->interrupt_callback = int_cb;
可以投射吗?感谢您的帮助。