| |
本文是linux dvb技术的原理分析和实践分析总结,建立在个人的dvb ca的项目实践上。
首先,linuxdvb 的作用,其实就是dvb在linux上的标准化,这点在加密解密的dvb应用里面尤其常见,尤其是在同一个机顶盒需要支持很多第三方的加密方案时候。
linuxdvb作为一个标准的接口,为开发人员分开进行模块设计最终系统集成提供了方便。
本文将介绍ca系统中,linuxdvb的接口和第三方ca模块的配合的工作。
1 概述:
相信DVB这个英文缩写对于数字电视,机顶盒业内人士来说应该是个最熟悉不过的术语了。但是,Linux DVB项目对大多数人来说,应该还是很陌生的。 Linux DVB项目是开源项目LinuxTV的一部分。如同其他开源Linux项目一样,Linux DVB也是由一群DVB的热爱者和开发员,以社区的形式共同参与开发的项目。项目的目标是建立标准化的Linux平台的DVB API。这个标准化的API可以更好的促进Linux平台上的DVB板卡的开发,缩短开发的时间,丰富Linux平台的DVB硬件支持。为了实现这个目标,Linux DVB API必须做到平台,硬件无关性。Linux DVB开始于1998年,到2003年,Linux DVB API V3版本已经被包括进Linux 2.6.x内核中。但是由于V3版本的某些缺陷和不足,V4版本的开发被提上日程。从2004年开始,V4版本的开始一直在进行中。Linux DVB一开始的目标是应用于一些PCI,USB接口的DVB PC扩展卡。后来API的设计也考虑到了一些采用了嵌入式Linux系统的STB, IDTV的应用。 到目前为止,有一系列的硬件被移植到了Linux DVB上面。同时,基于Linux DVB API,开源社区开发了很多应用程序,来提供使用这些硬件,提供各种方便的功能。这些应用程序包括: DVBSnoop, DVBStreamer, MPlayer等。
2 linux dvb 分析
2.1 linux dvb devices
linux dvb api使得应用程序可以控制相关硬件模块通过六个unix风格的字符设备,包括video, audio, frontend, demux, ca, ip-over-dvb networking。video和audio设备控制mpeg2解码的硬件,frontend设备控制tuner和dvb解调器。demux设备用于过滤pes和section,如果不是硬件实现的也可以通过软件来完成。最后,CA设备控制条件接收相关的硬件模块。所有的设备在目录/dev/dvb下面:
/dev/dvb/adapterN/audioM
/dev/dvb/adapterN/videoM
/dev/dvb/adapterN/frontendM
/dev/dvb/adapterN/netM
/dev/dvb/adapterN/demuxM
/dev/dvb/adapterN/caM
其中N值标识第N个适配卡,M用于标识某适配卡下第几个该类型的设备。
3 CA 加密原理和使用
CA 实现中主要是涉及linuxdvb的demux,ca两个模块的标准化接口开发
3.1 linuxdvb - demux
4 项目实施和实践
ref:
1 概述:http://blog.csdn.net/rumbleli/article/details/2357913
2 一些分析:
demux
http://blog.csdn.net/soulxu/article/details/6176505
3 linux dvb v3
4 http://www.linuxtv.org/docs/dvbapi/dvbapi.html
5
本帖原创:by huang.makin@gmail.com