From 4d1c2ee860222138fc7932225ea6d91e7483646a Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期一, 22 四月 2019 11:18:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.3nsq' into 1.3nsq
---
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
index af7f598..7787821 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
+++ b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp
@@ -278,6 +278,10 @@
// BASICGB28181::avframe_to_cvmat(frame).copyTo(p_this->m_image);
p_this->m_image = std::move(BASICGB28181::avframe_to_cvmat(p_this->frame));
+ if(p_this->m_image.empty()) {
+ ERR("camID:" << p_this->m_camIdx << " frameW:" << p_this->frame->width);
+ continue;
+ }
// 灏唅甯т繚瀛樹负蹇収
if (p_this->m_SnapshotNotSaveRet && (p_this->pkt.flags & AV_PKT_FLAG_KEY)) {
try {
@@ -369,7 +373,7 @@
bool BASICGB28181::FFmpegDecoderJPG::stopThd() {
TryCath(
- DBG(m_camIdx << " FFmpegDecoderJPG stopThd ... " << m_camIdx);
+ DBG("FFmpegDecoderJPG stopThd ... " << m_camIdx);
m_running = false;
);
return true;
@@ -434,7 +438,7 @@
if (!m_packetsVec.empty()) {
auto iter = m_packetsVec.begin();
while (iter->m_frameId < lastFrameId) {
- INFO("DropFrame: " << iter->m_frameId);
+// INFO("DropFrame: " << iter->m_frameId);
delete iter->m_packet.data;
iter = m_packetsVec.erase(iter);
}
@@ -464,7 +468,7 @@
bool BASICGB28181::FFmpegDecoderJPG::SaveVideo(std::string path, int64_t lastFrameId) {
std::lock_guard<std::mutex> lock(g_mutex);
- INFO("SaveVideo: " << path << "m_packetsVec.size : " << m_packetsVec.size());
+// INFO("SaveVideo: " << path << "m_packetsVec.size : " << m_packetsVec.size());
if (!m_packetsVec.empty()) {
startWrite(path.c_str());
int64_t firstKeyFramePts = m_packetsVec[0].m_packet.pts;
@@ -472,7 +476,7 @@
unsigned long int frame_index = 0;
for (const auto &item:m_packetsVec) {
if (item.m_frameId < lastFrameId) {
- DBG("item.m_frameId < lastFrameId " << item.m_frameId << " " << lastFrameId);
+// DBG("item.m_frameId < lastFrameId " << item.m_frameId << " " << lastFrameId);
conversion(const_cast<AVPacket *> (&item.m_packet), firstKeyFramePts, firstKeyFrameDts, video_st,
frame_index);
frame_index++;
@@ -536,7 +540,7 @@
m_frameIndex++;
m_packetsVec.push_back({m_frameIndex, newPacket});
if (newPacket.flags & AV_PKT_FLAG_KEY) {
- DBG("newPacket.flags & AV_PKT_FLAG_KEY ");
+// DBG("newPacket.flags & AV_PKT_FLAG_KEY ");
m_last_I_FrameId = m_frameIndex;
}
}
@@ -618,7 +622,7 @@
AVPacket *pkg = static_cast<AVPacket *>(packet);
- DBG("frame_index==%d\n" << frame_index);
+// DBG("frame_index==\n" << frame_index);
//Write PTS
AVRational time_base1 = inStream->time_base;
//Duration between 2 frames (us)
--
Gitblit v1.8.0