libdvbpsi 源代码学习(二)
来源:互联网 发布:淘宝猜你喜欢在哪里 编辑:程序博客网 时间:2024/05/09 11:05
刚开始学习MPEG-2 TS流解析时,看ISO/IEC13818-1的文档上面的PAT,PMT表:program_association_section()和TS_program_map_section()时,很容易就以为可以直接从188字节的TS packet中取数据填到各个字段中,网上也可以搜到这样类似的程序:
这样在解析PAT和PMT表时往往也能得到正确的答案,这是因为PAT,PMT表数据量比较小的缘故。其实在TS流中还有一个重要的概念——section。文档中program_association_section()和TS_program_map_section()指的就是PAT section和PMT section。它们中都有一个字段:section_length,文档告诉我们这个字段值的是此字段之后section的字节数,除了EIT section的最大字节数是4096外,其他section最大字节数是1024字节。 而TS packet最大只有188字节,因此这里需要考虑section到packet的映射问题,基本上存在三种情况:
1、section对应一个packet
2、section太长,在几个连续的packet中
3、在一个packet的负载中结束上一个section之后马上开始了一个新的section。
这三种情况可以在libdvbpsi源码的void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data)函数中找到。明白了这三种情况,再对照函数的注释,应该就不难看懂这个函数了。
- libdvbpsi 源代码学习(二)
- libdvbpsi 源代码学习(一)
- libdvbpsi的例子解析(二)
- libdvbpsi库简单学习心得(二):PAT表
- libdvbpsi的例子解析(一)
- shark工作流源代码学习(二)
- shark工作流源代码学习(二)
- shark工作流源代码学习(二)
- shark工作流源代码学习(二)
- shark工作流源代码学习(二)
- 超级玛丽HTML5源代码学习------(二)
- libdvbpsi库简单学习心得(一):使用和编辑库
- 学习httpbin源代码记录(二)
- 2006CSS世界大赛获奖作品源代码学习(二)
- Berkeley DB 1.8.6源代码学习(二)
- MyBatis学习(二)分析源代码-总配置相关
- 学习android(二)如何调试android应用源代码
- ios学习开源代码系列(二)ifengNewsOrderDemo
- DELETE和TRUNCATE
- dropdownlist 绑定
- linux下mysql 安装 笔记:
- 1201 Intervals 差分约束系统
- struts中的logic:present标签 用于实现分页功能(转)
- libdvbpsi 源代码学习(二)
- redhat smb 配置
- TCPMP源代码分析
- 学习笔记之maven2学习总结(1,入门起步与实践)
- 查找一段文字中最长的重复字串 - 编程珠玑(排过序的后缀数组的应用)
- 卖猪男和农家女是如何引发经济危机的
- 单例模式(Singleton)
- SMP/E指南阅读日志zz
- Tomcat6配置Oracle数据库JNDI