Ios硬解码出现kVTInvalidSessionErr = -12903Session失效的问题

        最近要使用Ios端H264解码功能,参考了webrtc中使用videoToolBox的硬解部分,在真机调试的时候,从后台切换到前台后,出现画面卡死不能恢复的情况,本以为渲染出问题,查看日志后发现为解码失败,查看底层发现解码方法

        OSStatus status = VTDecompressionSessionDecodeFrame( decompression_session_, sample_buffer, decode_flags,

                                                                                                           frame_decode_params.release(), nullptr);

        返回错误吗-12903,然后查询后发现该错误吗为kVTInvalidSessionErr,为解码器session失效错误,原来从后台切换到前台后原来的解码器Decoder的VTDecompressionSession失效,导致解码失败,经查看webrtc中h264_video_toolbox_decoder.cc中代码,发现程序没有对解码失败的情况进行处理:

   

发现整个代码中有重置session的操作,因此可以在此根据status的错误码进行操作 ResetDecompressionSession();


经过实际测试完美解决该问题。

同样该问题存在于webrtc使用H264编解码传输的视频通话中,因此有问题的朋友可以使用该方式解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值