Bladeren bron

修改rtp

NHH 2 jaren geleden
bovenliggende
commit
435a6a2c5d
2 gewijzigde bestanden met toevoegingen van 1003 en 40 verwijderingen
  1. 973 33
      RtpFilesCleaner.cpp
  2. 30 7
      RtpFilesCleaner.h

File diff suppressed because it is too large
+ 973 - 33
RtpFilesCleaner.cpp


+ 30 - 7
RtpFilesCleaner.h

@@ -3,7 +3,7 @@
 #include <thread>
 #include <vector>
 #include <list>
-
+#include "Buffer.h"
 #include "CDiscHelper.h"
 #include "TSysThread.h"
 #include "CAppLife.h"
@@ -11,24 +11,33 @@
 
 #include "AnyCleaner.h"
 
-#define FRAME_CACHESIZE				(3840*2160*16)
+#define FRAME_CACHESIZE  1024*1024*1024
 #define GB(x) ((x.HighPart << 2) + (x.LowPart >> 20) / 1024.0)   // 蛌遙峈GB等弇珆尨
-
+typedef void (*FRAMEDATACALLBACK)(char* frame_data, int frame_size, \
+	unsigned int frame_timesec, unsigned int frame_timeusec, bool is_iframe, \
+	void* user_data);
 
 typedef struct tagRTPFILEDESC {
 
 	char			file_name[256];
 	int				file_size;
-	std::string		name;
+	char			name[256];
 	char			folder[256];
+	ULONGLONG			file_number;
 	unsigned int	start_timesec;			// recording time_sec
 	unsigned int	start_timeusec;
 	unsigned int	end_timesec;
 	unsigned int	end_timeusec;
 	unsigned int	duration_sec;
-
 } RTPFILEDESC;
+typedef struct tagTIME_SPAN {
+	unsigned int	start_timesec;
+	//unsigned int	start_timeusec;
+	unsigned int	end_timesec;
+	//unsigned int	end_timeusec;
+	//unsigned int	duration_sec;
 
+} TIME_SPAN;
 
 class CAppLifeThread : public TSysThreadImpl
 {
@@ -86,21 +95,30 @@ public:
 	int remaining_memory;//郔苤等弇GB趼誹
 	std::string src_path;
 	std::string backup_path;
+	TIME_SPAN src_time_span;
+	TIME_SPAN back_time_span;
 	std::vector<char*> vec_src_foldernames;
 	std::vector<char*> vec_back_foldernames;
 	std::vector<char*> vec_src_date_folder;
 	std::vector<char*> vec_back_date_folder;
 	std::list<RTPFILEDESC*> list_src_rtpfiles;
+	std::list<RTPFILEDESC*> list_localDay_rtpfiles;
+	std::list<RTPFILEDESC*> list_lastDay_rtpfiles;
+	std::list<RTPFILEDESC*> list_nextDay_rtpfiles;
 	std::list<RTPFILEDESC*> list_backup_rtpfiles;
+	void Is_NextSame_Times(std::list<RTPFILEDESC*>* list_rtpfiles, RTPFILEDESC* paramer, unsigned int starttime, unsigned int endtime);
+	void Is_LastSame_Times(std::list<RTPFILEDESC*>* list_rtpfiles, RTPFILEDESC* paramer, unsigned int starttime, unsigned int endtime);
+	void Is_Same_Times(std::list<RTPFILEDESC*>* list_rtpfiles, RTPFILEDESC* paramer,unsigned int starttime, unsigned int endtime,bool &check_last,bool &check_next);
 	void Delete_file(std::string filename);
+	void Check_Channels(std::string src,std::string backup);
 	BOOL SHDeleteFolder(std::string pstrFolder, BOOL bAllowUndo);
 	int Get_Date_List(std::vector<char*>* pVecFolderName, char* folder_name);
 	void Get_DateFiles(std::vector<char*>* vec_foldernames, const char* src_folder);
 	int Identical_file_check();
 	bool LoadDeviceInfo();
 	void Get_Channels(const char* backup_folder, const char* src_folder);
-	void Get_Channel(std::vector<char*>* vec_foldernames, const char* src_folder);
-	int Get_Channel_List(std::vector<char*>* pVecFolderName, char* folder_name);
+	void Get_Folder(std::vector<char*>* vec_foldernames, const char* src_folder);
+	int Get_Folder_List(std::vector<char*>* pVecFolderName, char* folder_name);
 	void init();
 	// find src_folder all *.rtp within [start_time, end_time] to dst_folder with the same file structure
 	int Get_List_File(const char* backup_folder, const char* src_folder);
@@ -108,5 +126,10 @@ public:
 	int rtp_listfile(std::list<RTPFILEDESC*>* list_rtpfiles, const char* src_folder);
 
 	int Get_Disk_Free(std::string serial);
+	//
+	void Get_Rtp_Times(std::list<RTPFILEDESC*>* list_rtpfiles, TIME_SPAN &time_span);
+	void File_Sort(std::list<RTPFILEDESC*>* src_rtpfiles, std::list<RTPFILEDESC*>* dst_rtpfiles);
+	void Folder_Sort(std::vector<char*>* src_folder, std::vector<char*>* dst_folder);
+	std::string get_filename_time(std::string src);
 };
 

Some files were not shown because too many files changed in this diff