Commit 1067c5a2 by xiongziliang

再优化dts获取

parent 9d9f6e30
...@@ -91,27 +91,29 @@ int64_t Stamp::getRelativeStamp() const { ...@@ -91,27 +91,29 @@ int64_t Stamp::getRelativeStamp() const {
return _relativeStamp; return _relativeStamp;
} }
bool DtsGenerator::getDts(uint32_t pts, uint32_t &dts){ bool DtsGenerator::getDts(uint32_t pts, uint32_t &dts){
bool ret = false; bool ret = false;
if(pts == _last_pts){ if (pts == _last_pts) {
//pts未变,说明dts也不会变,返回上次dts //pts未变,说明dts也不会变,返回上次dts
if(_last_dts){ if (_last_dts) {
dts = _last_dts; dts = _last_dts;
ret = true; ret = true;
} }
return ret; } else {
} //pts变了,尝试计算dts
ret = getDts_l(pts, dts);
ret = getDts_l(pts,dts); if (ret) {
if(ret){
//获取到了dts,保存本次结果 //获取到了dts,保存本次结果
_last_dts = dts; _last_dts = dts;
}else{ }
}
if (!ret) {
//pts排序列队长度还不知道,也就是不知道有没有B帧, //pts排序列队长度还不知道,也就是不知道有没有B帧,
//那么先强制dts == pts,这样可能导致有B帧的情况下,起始画面有几帧回退 //那么先强制dts == pts,这样可能导致有B帧的情况下,起始画面有几帧回退
dts = pts; dts = pts;
} }
//记录上次pts //记录上次pts
_last_pts = pts; _last_pts = pts;
return ret; return ret;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论