当前位置:   article > 正文

Qt/C++音视频开发64-共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步

Qt/C++音视频开发64-共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步

一、前言

共享解码线程主要是为了降低CPU占用,重复利用解码,毕竟在一个监控系统中,很可能打开了同一个地址,需要在多个不同的窗口中播放,形成多屏渲染的效果,做到真正的完全的画面同步,在主解码线程中切换了播放进度,所有关联的同一个解码线程的播放窗体也会立即同步画面,使得感官上看起来非常的舒服。

无论何种内核的解码线程,除了句柄不能重复利用以外(除非厂家提供的api接口就支持多个窗口渲染),只要是能够解码拿到的yuv数据或者image图片数据,都会以信号的形式发出来,这就给共享解码线程提供了极大的便利性,视频控件只管拿到数据绘制即可,至于源头数据,谁发信号过来就行,所以思路就是,搞一个线程队列记住新建过的解码线程,在视频控件中打开播放的时候,判断是否和之前已经打开过的线程的地址相同,如果相同,只需要增加一个关联信号槽就行,也就是同一个解码线程后面对应的信号会发给多个不同的视频控件,这就实现了解耦。可以大幅度降低资源的占用。很多著名的或者行业做的比较好的软件都是这样设计。

公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发。

公众号:Qt入门和进阶,专门介绍Qt/C++相关知识点学习,帮助Qt开发者更好的深入学习Qt。多位Qt元婴期大神,一步步带你从入门到进阶,走上财务自由之路。

二、效果图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/491838
推荐阅读
相关标签
  

闽ICP备14008679号