换台时间过长问题的解决

客户对我们的机顶盒换台时间过长提出抱怨,尤其对从伊朗录回来的码流,换台时间普遍需要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. 进一步的改善,待续...

你可能感兴趣的:(职场,休闲,换台)