From a2ea58c567a078bb97a9e45a56fe50df41438d22 Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期一, 15 四月 2019 10:37:31 +0800 Subject: [PATCH] 整合c++ver1.3的修改代码进入该分支 --- QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.cpp index a6871d4..299ec03 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 { @@ -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++; @@ -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