FFMpeg av_packet_ref 引起软件crash问题

av_packet_ref 引起软件crash问题

ffmpeg在多线程编程中,相信大家必然会用到av_packet_ref来解决大量复制内存的问题,这里有个坑,多线程中,每个线程应该去管理自己的AVPacket,不要跨线程管理/释放AVPacket…如果有遇到类似问题的,希望能解决大家的疑惑

我项目中的做法:
解封装线程取出AVPacket 发送到 解码线程 同时也发送到 录像线程
我之前的做法是 解码线程使用解封装线程的AVPacket,而录像线程引用(av_packet_ref )解封装的AVPacket…这种做法看似使用起来没什么大问题,异常情况也很小,连续运行一天,有可能都不出问题…但有在录像线程的时候还是很容易出问题,引起软crash

解决方法其实很简单,解码线程也使用(av_packet_ref)去引用解封装线程的AVPacket…这样就可以解决问题

你可能感兴趣的:(ffmpeg)