From 8f44600c2e5d6141aebf49536a6ddbafc6c18d75 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 30 七月 2021 10:55:25 +0800
Subject: [PATCH] bug fixed gb28181
---
csrc/thirdparty/gb28181/include/PsToEs.hpp | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/csrc/thirdparty/gb28181/include/PsToEs.hpp b/csrc/thirdparty/gb28181/include/PsToEs.hpp
index 21c10d9..2a6cb6f 100644
--- a/csrc/thirdparty/gb28181/include/PsToEs.hpp
+++ b/csrc/thirdparty/gb28181/include/PsToEs.hpp
@@ -109,13 +109,23 @@
printf("GB28181API end!\n");
// m_rtpQueue.clearAll();
m_rtpQueue.clearAll([](frameBuffInfo *info){
- delete[] info->buff;
- delete info;
+ if (info){
+ delete[] info->buff;
+ delete info;
+ }
});
deleteCamera();
}
bool pushInfo(unsigned char *data, int datalen) {
+
+ while(m_rtpQueue.count_queue() > 120){
+ auto p = m_rtpQueue.popNotWait();
+ if (p){
+ delete[] p->buff;
+ delete p;
+ }
+ }
frameBuffInfo *info = new frameBuffInfo();
info->buff = new unsigned char[datalen];
@@ -155,6 +165,13 @@
info->buff = new unsigned char[buffinfo->buffLen - len]{};
memcpy(info->buff, buffinfo->buff + len, buffinfo->buffLen - len);
+ while(_this->m_rtpQueue.count_queue() > 120){
+ auto p = _this->m_rtpQueue.popNotWait();
+ if (p){
+ delete[] p->buff;
+ delete p;
+ }
+ }
// printf("/甯ч暱澶т簬info->buffLen:%d\n", info->buffLen);
_this->m_rtpQueue.push_front_one(info);
// printf("/甯ч暱澶т簬info->buffLen\n");
--
Gitblit v1.8.0