今天就对我实现的
linux
下的
tv
播放器进行一个阶段性的总结吧,目前我的这个
tv
测试程序已经能够实现流畅播放电视,在更改视频帧缓冲设置的情况下录制效果也还不错,并且实现了频道调整和电视频道回放的功能;另外,底层电视库中也增加了亮度、对比度、饱和度、色调调整的代码,以便将来在上层
GUI
界面中添加对应的设置功能;
这次我先比较详细的说明电视播放和录制的原理和关键代码的实现,两个部分就不拆开了,算作是晚交文章的一个惩罚吧,录制部分就算作是补偿的那一篇啦。
要想弄清楚电视播放和录制的原理,首先得搞清楚电视播放和录制时,数据帧流的流向和数据的存储是如何完成的。
下面我就先介绍一下电视播放时视频帧流的流向:
从视频设备/dev/video采集到得视频数据帧
-->
送到buffer存储
-->
1、(经过YUV420P到RGB32得转换)显示;
2、如果是录制状态,则对视频帧进行压缩,准备存储;同时要从音频设备中/dev/dsp中读取音频数据,我这里采用得是压缩存储,则需要经过mp3压缩,准备存储;
-->
1、显示部分,RGB32格式得视频帧可以直接使用QT得函数进行显示,如果你是采用SDL进行显示,那前面得RGB32
要想弄清楚电视播放和录制的原理,首先得搞清楚电视播放和录制时,数据帧流的流向和数据的存储是如何完成的。
下面我就先介绍一下电视播放时视频帧流的流向:
从视频设备/dev/video采集到得视频数据帧
-->
送到buffer存储
-->
1、(经过YUV420P到RGB32得转换)显示;
2、如果是录制状态,则对视频帧进行压缩,准备存储;同时要从音频设备中/dev/dsp中读取音频数据,我这里采用得是压缩存储,则需要经过mp3压缩,准备存储;
-->
1、显示部分,RGB32格式得视频帧可以直接使用QT得函数进行显示,如果你是采用SDL进行显示,那前面得RGB32