From db043cb402515837303880cb0948d060e9d76490 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期一, 15 四月 2019 17:13:16 +0800
Subject: [PATCH] 整合代码
---
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
index 1f495fc..a7dbb3f 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
+++ b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
@@ -13,13 +13,12 @@
#include <iostream>
#include <unistd.h>
#include <MyQueue.h>
-#include <Debug.h>
#include <atomic>
-#include "GlobalSignalWaitLock.hpp"
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include <list>
+#include "GlobalSignalWaitLock.hpp"
#include "basic_struct_for_video_image.h"
extern "C"
@@ -38,6 +37,7 @@
}
#include <mutex>
+#include <basic/pipe/TimerElement.h>
namespace BASICGB28181 {
@@ -49,6 +49,11 @@
static void initFFmpeg();
+ /***
+ * AVframe杞琧vmat
+ * @param frame
+ * @return
+ */
static cv::Mat avframe_to_cvmat(AVFrame *frame);
typedef struct _buffInfo {
@@ -57,6 +62,7 @@
std::string camIdx;
} frameBuffInfo;
+ //************褰曞儚妯″潡浣跨敤鐨勭粨鏋勪綋********************//
struct FrameIdPackage_s_t {
int64_t m_frameId;
AVPacket m_packet;
@@ -83,6 +89,7 @@
RECORDING_VIDEO,
STOP_RECORD,
};
+ //********************************//
// std::map<std::string, MyQueue<frameBuffInfo *> > MapMyQueue;
static std::mutex g_mutex;
@@ -167,7 +174,18 @@
//瀵规敹鍒扮殑甯ц繘琛岃鏁�
int64_t m_frameIndex = 0;
+//*******************************************
+ AVFormatContext *ic;
+ unsigned char *iobuffer;
+ AVIOContext *avio;
+ AVStream *stream;
+ AVCodecContext *ctx;
+ AVCodec *codec;
+ AVCodec *codec_cuvid;
+ AVPacket pkt;
+ AVFrame *frame;
+ //*******************************************
//灏嗗抚淇濆瓨鍒板抚鏁扮粍
void SaveToPacketVector(AVPacket &packet);
@@ -189,7 +207,8 @@
int stopWrite();
//瀵筽acket鍋氳浆鎹�
- void conversion(void *packet, const long int &firstKeyPts, const long int &firstKeyDts, void *inVideoStream);
+ void conversion(void *packet, const long int &firstKeyPts, const long int &firstKeyDts, void *inVideoStream,
+ unsigned long int frame_index = 0);
bool m_bstartWrite = {false};
bool m_bFirstKeyFrame = {false};
@@ -216,6 +235,7 @@
int m_gpuIdx;
int m_fps;
bool m_PackageState;
+ bool m_SnapshotNotSaveRet{true};
std::string m_camIdx;
MyQueue<frameBuffInfo *> m_rtpQueue;
--
Gitblit v1.8.0