PCR正常跳变的处理
来源:互联网 发布:ubuntu 搜索软件包 编辑:程序博客网 时间:2024/05/08 20:36
在一个TS流之中,不同节目的PCR常常是不同的,也就是不连续的。
比如,在电视剧播放的当中,插播一段广告。由于电视剧和广告的PCR常常是不连续的,并且可能存在巨大跳跃。
于是这个时候,如果当前系统仍然使用PCR进行同步本地STC, 此时,STC会有一次明显的跳跃.
可能产生的后果:
由于电视剧节目一部分原始数据还在TS BUFFER里面,等待和STC时间相等后再进行解码;
还有一部分解码后数据在video显存里面,等待和时间STC时间相等后再进行显示.
根据PCR同步的原理: 将使用PCR直接同步本地STC. 这个时候,一旦用广告的PCR同步本地STC,那么上面提到的两部分数据,所等待的解码和显示的时间将不会来临。
结果就是: 电视剧后面的一点尾巴没有播放出来。至于尾巴具体长度,取决于两个BUFFER中数据量的多少。
当没有其他STB来做对比的情况下,客户没感觉到任何差别;一旦有另外的处理完善的STB作为对比,此问题将浮出水面。
如何解决?
使用两个STC来处理这种case。
当PCR产生突变后,电视剧仍然使用之前的STC,直到所有数据被解码和显示,但广告将使用新的STC来解码和显示。
关于STC的一些说明:
可以只有一个硬件STC,再次基础上,可虚拟出若干逻辑软件STC.
软件STC计数器数值 = 硬件STC计数器数值 + OFFSET
所谓同步本地STC,其实就是修改软件STC的OFFSET的过程。
- PCR正常跳变的处理
- PCR的工作原理
- PCR的物理意义
- PCR的工作原理
- PCR的物理意义
- PCR的工作原理
- PCR
- PCR
- DVB系统中PCR的生成和PCR校正
- DVB系统中PCR的生成和PCR校正
- MPEG2 PCR的物理意义
- 多轴运动出现加速度跳变的平滑处理
- iTunes无法正常启动的处理
- 打印机无法正常打印的处理方法
- 数据库无法正常关闭的处理步骤
- 处理java非正常的线程终止
- DTS和PCR的WrapRound计算方法
- scr,pcr,dts,pts的关系
- gcc-3.4编译google protocol buffer 2.4.0a
- Javascript中string转date
- Android map
- _FILE__,__LINE__,FUNCTION__实现代码跟踪调试
- 安装redmine日志
- PCR正常跳变的处理
- struts2之使用JSON插件实现Ajax(JSON基本知识)
- 殇
- linux 下内核2.6.35 skb_copy_bits 函数和map.c文件
- 用gcrawler进行多级页面并发下载的例子
- 使用Properties读取XML文件
- ADO.NET在三层架构中的测试实例
- C# 无法解析程序集 System.Design
- Telechips 6410 GPU JIT 性能测试对比