客户对我们的机顶盒换台时间过长提出抱怨,尤其对从伊朗录回来的码流,换台时间普遍需要4s.
要解决这个问题,首先需要准确的换台时间测量方法。
1. 换台时间测量方法
在收到频道加减按键的时候,记录当时的时间:
if(key == xxx_keypress_up || key == xxxE_keypress_down)
{
G_lTime = xxx_Time();
}
sendRemoteControlKeyUpThroughIce(key);
在DirectFBManager.cpp中,收到video provider提供的DVPET_STARTED事件的时候,如果事件类型为DVPEDST_VIDEO,说明视频开始播放,用此时的时间减去之前记录的时间,为换台时间。
2. 改善步骤一
我们上海的同事提出一种改善方案 - "Step Sync",目前换台时间偏长是由于需要等待音视频同步后显示视频,对于某些节目,pts的间隔比较长,使得同步时间偏长。改善方法是,在达到同步之前,已经解码的图像帧按照帧率播出,这样视频出现的时间普遍提前,给用户的感觉换台明显变快。经过测试,基本在1.5s左右。
改善见: tmdlMsvdDtdProgramField.c
3. 进一步的改善,待续...
换台时间过长问题的解决
原创
©著作权归作者所有:来自51CTO博客作者jiangjqian的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Ubuntu: 安装中英文辞典

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
19C 起库/资源重组时间过长
Reconfiguration IpReasmFails osw
oracle Database -
java解决if else过多的问题
java解决if else过多的问题
策略模式 工厂模式 ifelse 枚举 -
Docker 镜像管理,解决下载慢的问题
解决docker镜像下载慢、无法下载的问题
Docker Nginx -
关于getaddrinfo()函数阻塞时间过长的问题
使用select()函数对getaddrinfo()函数进行封装
c 编程实践 DNS #include 服务器 -
解决BIOS检测时间过长问题 主板bios检测
操作系统的系统软件产生,是为了计算机所有硬件系统的资源合理分配。操作系统会控制所有的硬件并且提供核心功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步的读取硬盘内的软件文件与执行该软件来达成各项软件的执行目的。
解决BIOS检测时间过长问题 gpt windows linux 管理程序 -
如何解决服务调用链过长的问题?
可以结合 zipkin 实现分布式服务追踪。
面试题 分布式服务 java 分享