非rtsp协议减少一帧延时

This commit is contained in:
ziyue
2021-08-30 18:05:21 +08:00
parent 2242577661
commit 04bf829540
2 changed files with 20 additions and 1 deletions

View File

@@ -342,7 +342,8 @@ public:
virtual ~PacketCache() = default;
void inputPacket(uint64_t stamp, bool is_video, std::shared_ptr<packet> pkt, bool key_pos) {
if (_policy.isFlushAble(is_video, key_pos, stamp, _cache->size())) {
bool flush = flushImmediatelyWhenCloseMerge();
if (!flush && _policy.isFlushAble(is_video, key_pos, stamp, _cache->size())) {
flushAll();
}
@@ -351,6 +352,10 @@ public:
if (key_pos) {
_key_pos = key_pos;
}
if (flush) {
flushAll();
}
}
virtual void clearCache() {
@@ -369,6 +374,12 @@ private:
_key_pos = false;
}
bool flushImmediatelyWhenCloseMerge() {
//一般的协议关闭合并写时立即刷新缓存这样可以减少一帧的延时但是rtp例外请看相应的模板特例化函数
GET_CONFIG(int, mergeWriteMS, General::kMergeWriteMS);
return mergeWriteMS <= 0;
}
private:
bool _key_pos = false;
policy _policy;