Commit fd773982 by xiongziliang

修复dts计算可能导致不同步的问题:#369

parent f67e9fce
...@@ -176,6 +176,8 @@ bool DtsGenerator::getDts_l(uint32_t pts, uint32_t &dts){ ...@@ -176,6 +176,8 @@ bool DtsGenerator::getDts_l(uint32_t pts, uint32_t &dts){
_sorter_max_size = _frames_since_last_max_pts; _sorter_max_size = _frames_since_last_max_pts;
//我们记录P帧间时间间隔(也就是多个B帧时间戳增量累计) //我们记录P帧间时间间隔(也就是多个B帧时间戳增量累计)
_dts_pts_offset = (pts - _last_max_pts); _dts_pts_offset = (pts - _last_max_pts);
//除以2,防止dts大于pts
_dts_pts_offset /= 2;
} }
//遇到P帧或关键帧,连续B帧计数清零 //遇到P帧或关键帧,连续B帧计数清零
_frames_since_last_max_pts = 0; _frames_since_last_max_pts = 0;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论