From 439a23896bda9c4e954092816354914e645579b6 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 10 六月 2019 09:37:13 +0800
Subject: [PATCH] 替换这个文件

---
 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