Welcome 微信登录

首页 / 操作系统 / Linux / Linux DVB api 笔记

Linux DVB interfaceDemux
用途:硬件解复用
设备路径: /dev/dvb/adapter0/demux0数据类型:
dmx_output_ttypedef enum
{
DMX_OUT_DECODER,
DMX_OUT_TAP,
DMX_OUT_TS_TAP
} dmx_output_t;DMX_OUT_TAP:将流输出到调用ioctl的demux设备上
DMX_OUT_TS_TAP:将流输出到逻辑 DVR设备上 /dev/dvb/adapter0/dvr0 。输出一个ts流到该设备。并且复用所有设置了该标志的流。函数调用
open: 在 /dev/dvb/adapter0/demux0 上使用,将会分配以后一个新的filter并返回一个handle用来持续的控制该filter。
该函数的每一次返回的文件描述附,是一个单独filter的引用。/dev/dvb/adapter0/dvr0 是一个逻辑设备用来检索传输流。从该设备读取,将得到一个传输流,该流包含了所有设置了DMX_OUT_TS_TAP标志的filter的PES包。read()
读取filtered中的数据。可能是secion或者PES数据。数据被存储在驱动内部的循环缓冲区中。当返回的是secion数据,驱动则总是返回完整的单独section(即使有足够的空间放入其他数据)。如果数据超过缓冲区大小则在下次调用时继续返回。内部缓冲默认为2*4096bytes(secion的两倍大小)为了能够读取,必须通过ioctl设置要过滤的secion或者PES。并指定DMX_START 或者ioctl时指定DMX_IMMEDIATE_START 标记。write()
仅对/dev/dvb/adapter0/dvr0管用,还是在内部于物理demux设备关联ioctl()
DMX_START 开始filter
DMX_STOP 对应的停止DMX_SET_FILTER
设置filterstruct dmx_sct_filter_params
{
uint16_t pid;
dmx_filter_t filter;
uint32_t timeout;
uint32_t flags;
#define DMX_CHECK_CRC 1
#define DMX_ONESHOT 2
#define DMX_IMMEDIATE_START 4
};timeout:设置读取secion超时,0为永不超时
flags:指定了是否CRC检查,仅读取一次,DMX_SET_FILTER后立即开始filterDMX_SET_PES_FILTER
用来设置一个PES filter。传输流的目标必须设定,一个PES可以直接送入video decoder。如果该filter之前设置过,则会取消当前的filter。并清空缓冲区。DMX_SET_BUFFER_SIZE
设置缓冲区大小,默认2*4096bytesDMX_GET_EVENT
返回一个事件,必须在阻塞模式下。DMX_GET_STC
设置当前系统STC system time counter?
  • 1
  • 2
  • 下一页
Linux重要命令ls详解Linux远程桌面乱码解决及引起的相关问题、字库安装相关资讯      Linux教程 
  • Linux教程:如何在命令行中查看目  (07/28/2014 12:22:23)
  • Linux 修改root密码  (11/03/2012 07:53:38)
  • su - root 与su root的区别  (06/06/2012 00:39:40)
  • Linux进程间通信:消息队列  (01/28/2013 09:43:00)
  • U盘安装Linux开机无法启动解决方法  (10/07/2012 08:55:52)
  • Windows 7/Linux 同步时间  (05/15/2012 06:17:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数