使用LibAV读取超时/强制执行cast_interrupt_cb

时间:2018-07-11 15:20:52

标签: c++ c casting libav

我使用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;

可以投射吗?感谢您的帮助。

0 个答案:

没有答案