【webrtc】传递sink共享指针 std::shared_ptr<rtc::VideoSinkInterface<webrtc::VideoFrame>

  • 实际使用中,有这样的一种情形,sink 需要最后被释放,比如render一直传递给多个对象,
  • 解码器 需要 render 渲染视频,而player 管理render ,提前释放了render, 就会让decoder异常
  • 这种情况下,可以自己管理时序,也许可以使用共享指针来解决,即一路传递render的共享指针
  • webrtc中,render 是一个消费者,是sink对象,即传递如下:
    std::shared_ptr<rtc::VideoSinkInterfacewebrtc::VideoFrame

如何赋值给共享指针

  • 实际使用中,可以用 std::make_shared 里面传递一个new的对象
  • 或者使用 reset ,里面传递 new 对象,
  • 实测,reset 更实用,
  • 因为看报错,std::make_shared 时, VideoFrame有个复制拷贝的过程,会报错,
  • TODO FIMXE 这块要记下来,有机会 深入看下c++标注库的实现。
    -

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值