瀏覽代碼

Z991239-5263 #comment 调整播放器库源码格式为UTF8

80274480 1 年之前
父節點
當前提交
04ff225341
共有 34 個文件被更改,包括 284 次插入285 次删除
  1. 1 1
      Module/mod_interactivecontrol/InteractiveControl_msg_g.h
  2. 13 13
      Module/mod_sipphone/mod_sipphone.h
  3. 1 1
      Other/win/libaudions/dllmain.cpp
  4. 1 1
      Other/win/libaudions/iaudionsinterface.cpp
  5. 1 1
      Other/win/libaudions/iaudionsinterface.h
  6. 12 12
      Other/win/libaudions/libaudions.cpp
  7. 3 3
      Other/win/libaudions/libaudions.h
  8. 1 1
      Other/win/libaudions/stdafx.cpp
  9. 1 1
      Other/win/libaudions/stdafx.h
  10. 1 1
      Other/win/libaudions/targetver.h
  11. 9 9
      Other/win/libfilecryption/filecryption.cpp
  12. 13 13
      Other/win/libfilecryption/rvcfileheader.cpp
  13. 10 10
      Other/win/libfilecryption/rvcfileheader.h
  14. 63 63
      Other/win/libimgplayer/CImgPlayerDlg.cpp
  15. 19 19
      Other/win/libimgplayer/CImgPlayerDlg.h
  16. 6 6
      Other/win/libimgplayer/ClibimgplayerApp.cpp
  17. 4 4
      Other/win/libimgplayer/ClibimgplayerApp.h
  18. 30 30
      Other/win/libimgplayer/ReadMe.txt
  19. 2 3
      Other/win/libimgplayer/libimgplayer.cpp
  20. 13 13
      Other/win/libimgplayer/libimgplayer.h
  21. 二進制
      Other/win/libimgplayer/resource.h
  22. 4 4
      Other/win/libimgplayer/stdafx.cpp
  23. 12 12
      Other/win/libimgplayer/stdafx.h
  24. 4 4
      Other/win/libimgplayer/targetver.h
  25. 3 3
      Other/win/libmediaplayer/libmediaplayer.cpp
  26. 2 2
      Other/win/libvideoframework/congestion_control/estimator/overuse_detector.h
  27. 17 17
      Other/win/libvideoframework/videocap.cpp
  28. 3 3
      Other/win/libvideoframework/videoclock.c
  29. 6 6
      Other/win/libvideoframework/videoplayer.c
  30. 5 5
      Other/win/libvideorecord/WmvWriter.cpp
  31. 6 6
      Other/win/libvideorecord/WmvWriter.h
  32. 6 6
      Other/win/libvideorecord/stdafx.h
  33. 4 4
      Other/win/libvideorecord/targetver.h
  34. 8 8
      Other/win/libwmpplayer/libwmpplayer.cpp

+ 1 - 1
Module/mod_interactivecontrol/InteractiveControl_msg_g.h

@@ -1,4 +1,4 @@
-
+
 #ifndef __INTERACTIVECONTROL_MSG_G_H
 #define __INTERACTIVECONTROL_MSG_G_H
 

+ 13 - 13
Module/mod_sipphone/mod_sipphone.h

@@ -84,15 +84,15 @@ struct CFpsValue
 
 struct stVideoParam
 {
-	int nWindowState;	 //视频窗口显示状态,0:正常大小显示,1:放大一倍显示,2:隐藏全部窗口,3:从隐藏状态恢复为全部显示,4:显示远程窗口,隐藏本地窗口, 5:缩放显示
-	int bShowActiveImg;  //活体检测显示图片
-	int bActiveInspect;  //是否启动活体检测
+	int nWindowState;	 //瑙嗛�绐楀彛鏄剧ず鐘舵€侊紝0锛氭�甯稿ぇ灏忔樉绀猴紝1锛氭斁澶т竴鍊嶆樉绀猴紝2锛氶殣钘忓叏閮ㄧ獥鍙o紝3:浠庨殣钘忕姸鎬佹仮澶嶄负鍏ㄩ儴鏄剧ず锛�4锛氭樉绀鸿繙绋嬬獥鍙o紝闅愯棌鏈�湴绐楀彛, 5锛氱缉鏀炬樉绀�
+	int bShowActiveImg;  //娲讳綋妫€娴嬫樉绀哄浘鐗�
+	int bActiveInspect;  //鏄�惁鍚�姩娲讳綋妫€娴�
 	int iActiveCamera;	 // set by facetracking
 	int iCameraSwitch;	 // set by agent and camerastate
-	int nUpDynamicFps;	 // 当前视频上行的帧频,由后端通知前端更改频率,只有移动版才使用
+	int nUpDynamicFps;	 // 褰撳墠瑙嗛�涓婅�鐨勫抚棰戯紝鐢卞悗绔�€氱煡鍓嶇�鏇存敼棰戠巼,鍙�湁绉诲姩鐗堟墠浣跨敤
 	int iCameraState;	 // set by agent and camerastate
-	int bShowPersonArea; //是否显示人形框
-	int bShowRecordArea; //是否显示录像人形轮廓
+	int bShowPersonArea; //鏄�惁鏄剧ず浜哄舰妗�
+	int bShowRecordArea; //鏄�惁鏄剧ず褰曞儚浜哄舰杞�粨
 };
 
 
@@ -331,9 +331,9 @@ private:
 	void HandleAudioDeviceErrorEvent();
 	ErrorCodeEnum AutoCorrectAudioConfig();
 
-	//载入运行时配置
+	//杞藉叆杩愯�鏃堕厤缃�
 	ErrorCodeEnum LoadRestartRunConfig(unsigned int& utime);
-	//保存运行时
+	//淇濆瓨杩愯�鏃�
 	ErrorCodeEnum SaveRestartRunConfig(unsigned int utime);
 #else
 	void InitFreshTimeConfig();
@@ -343,9 +343,9 @@ private:
 	void ShowBothVideo();
 #endif //RVC_OS_WIN
 	ErrorCodeEnum AudioDspFlagsUseCentersetting(endpoint_conf_t* conf);
-	//载入运行时配置
+	//杞藉叆杩愯�鏃堕厤缃�
 	ErrorCodeEnum LoadAudioRunConfig(int&nHandfreeout,int&nPickupout,int&nHandfreein,int&nPickupin);
-	//保存运行时
+	//淇濆瓨杩愯�鏃�
 	ErrorCodeEnum SaveAudioRunConfig(int nHandfreeout,int nPickupout,int nHandfreein,int nPickupin);
 	// we use root.ini Video section config to decide camera count
 	ErrorCodeEnum DecideScreenCount(int &nCount);
@@ -390,14 +390,14 @@ public:
 #endif
 	
 	CSystemStaticInfo staticInfo;
-	char m_localip[RVC_MAX_IP_LEN];		//本地ip
+	char m_localip[RVC_MAX_IP_LEN];		//鏈�湴ip
 	endpoint_conf_t conf;
 	endpoint_t *m_pEndpoint;
 	int m_iPickupPhoneState;
 	ErrorCodeEnum m_SipErrorCode;
 	DeviceTypeEnum m_eDeviceType;
-	CallingTypeEnum m_nCallType;    //呼叫模式,0:可视柜台正常呼叫,1:PAD主动外呼,2:PAD被动呼叫,来源PAD,3:PAD被动呼叫,来源手机端
-	int m_nSysCallType;				//0:普通模式,1:p2p模式
+	CallingTypeEnum m_nCallType;    //鍛煎彨妯″紡锛�0锛氬彲瑙嗘煖鍙版�甯稿懠鍙�紝1锛歅AD涓诲姩澶栧懠锛�2:PAD琚�姩鍛煎彨锛屾潵婧怭AD,3:PAD琚�姩鍛煎彨锛屾潵婧愭墜鏈虹�顏
+	int m_nSysCallType;				//0:鏅�€氭ā寮忥紝1锛歱2p妯″紡
 	volatile stVideoParam m_stVideoParam;
 	volatile int m_bIsSalesRecord;
 	record_echo_location_t m_RecordVideoLocation;

+ 1 - 1
Other/win/libaudions/dllmain.cpp

@@ -1,4 +1,4 @@
-// dllmain.cpp : Defines the entry point for the DLL application.
+// dllmain.cpp : Defines the entry point for the DLL application.
 #include "stdafx.h"
 
 BOOL APIENTRY DllMain( HMODULE hModule,

+ 1 - 1
Other/win/libaudions/iaudionsinterface.cpp

@@ -1,4 +1,4 @@
-#include "StdAfx.h"
+#include "StdAfx.h"
 
 #include "iaudionsinterface.h"
 #include "libaudions.h"

+ 1 - 1
Other/win/libaudions/iaudionsinterface.h

@@ -1,4 +1,4 @@
-#pragma  once
+#pragma  once
 
 #ifdef _WIN32
 #ifdef LIBAUDIONS_EXPORTS

+ 12 - 12
Other/win/libaudions/libaudions.cpp

@@ -1,4 +1,4 @@
-// libaudions.cpp : Defines the exported functions for the DLL application.
+锘�// libaudions.cpp : Defines the exported functions for the DLL application.
 //
 
 #include "stdafx.h"
@@ -6,7 +6,7 @@
 #include "libaudions.h"
 #include "signal_processing_library.h"
 
-//默认是10ms的帧长度
+//榛樿�鏄�10ms鐨勫抚闀垮害
 #ifndef RVC_NS_AUDIO_FRAME_TIME 
 #define RVC_NS_AUDIO_FRAME_TIME 10
 #endif
@@ -88,7 +88,7 @@ int AudioNsImpl::NsProcess(char* pDst, uint32_t uDstLen, char* pSrc, uint32_t uS
 }
 
 
-//8k采样率,采样间隔20ms,每次传过来音频大小为320字节,10ms缓冲区大小为160字节,WebRtcNs_Process每次处理10ms数据
+//8k閲囨牱鐜囷紝閲囨牱闂撮殧20ms锛屾瘡娆′紶杩囨潵闊抽�澶у皬涓�320瀛楄妭,10ms缂撳啿鍖哄ぇ灏忎负160瀛楄妭,WebRtcNs_Process姣忔�澶勭悊10ms鏁版嵁
 int AudioNsImpl::NsProcess8kAudioSampleRate(char* pDst, uint32_t uDstLen, char* pSrc, uint32_t uSrcLen)
 {
 	int iRet = -1;
@@ -116,7 +116,7 @@ int AudioNsImpl::NsProcess8kAudioSampleRate(char* pDst, uint32_t uDstLen, char*
 }
 
 
-//16k采样率,采样间隔20ms,每次传过来音频大小为640字节,10ms缓冲区大小为320字节,WebRtcNs_Process每次处理10ms数据
+//16k閲囨牱鐜囷紝閲囨牱闂撮殧20ms锛屾瘡娆′紶杩囨潵闊抽�澶у皬涓�640瀛楄妭锛�10ms缂撳啿鍖哄ぇ灏忎负320瀛楄妭,WebRtcNs_Process姣忔�澶勭悊10ms鏁版嵁
 int AudioNsImpl::NsProcess16kAudioSampleRate(char* pDst, uint32_t uDstLen, char* pSrc, uint32_t uSrcLen)
 {
 	int iRet = -1;
@@ -140,7 +140,7 @@ int AudioNsImpl::NsProcess16kAudioSampleRate(char* pDst, uint32_t uDstLen, char*
 }
 
 
-//32k采样率,采样间隔20ms,每次传过来音频大小为1280字节,10ms缓冲区大小为640字节,WebRtcNs_Process每次处理10ms数据
+//32k閲囨牱鐜囷紝閲囨牱闂撮殧20ms锛屾瘡娆′紶杩囨潵闊抽�澶у皬涓�1280瀛楄妭锛�10ms缂撳啿鍖哄ぇ灏忎负640瀛楄妭,WebRtcNs_Process姣忔�澶勭悊10ms鏁版嵁
 int AudioNsImpl::NsProcess32kAudioSampleRate(char* pDst, uint32_t uDstLen, char* pSrc, uint32_t uSrcLen)
 {
 	int iRet = -1;
@@ -159,17 +159,17 @@ int AudioNsImpl::NsProcess32kAudioSampleRate(char* pDst, uint32_t uDstLen, char*
 			short shOutL[160] ={0},shOutH[160] = {0};
 
 			memcpy(shBufferIn, pSrc + i*320*sizeof(short), 320*sizeof(short));
-			//首先需要使用滤波函数将音频数据分高低频,以高频和低频的方式传入降噪函数内部
+			//棣栧厛闇€瑕佷娇鐢ㄦ护娉㈠嚱鏁板皢闊抽�鏁版嵁鍒嗛珮浣庨�锛屼互楂橀�鍜屼綆棰戠殑鏂瑰紡浼犲叆闄嶅櫔鍑芥暟鍐呴儴
 			WebRtcSpl_AnalysisQMF(shBufferIn,320,shInL,shInH,filter_state1,filter_state12);
 
-			//将需要降噪的数据以高频和低频传入对应接口,同时需要注意返回数据也是分高频和低频
+			//灏嗛渶瑕侀檷鍣�殑鏁版嵁浠ラ珮棰戝拰浣庨�浼犲叆瀵瑰簲鎺ュ彛锛屽悓鏃堕渶瑕佹敞鎰忚繑鍥炴暟鎹�篃鏄�垎楂橀�鍜屼綆棰�
 			if (iRet == WebRtcNs_Process(m_NsHandle, shInL, shInH, shOutL, shOutH)){
 				NsLog("Noise_Suppression WebRtcNs_Process 32k input err!");
 			}
 			else
 			{
 				short shBufferOut[320] = {0};
-				//如果降噪成功,则根据降噪后高频和低频数据传入滤波接口,然后用将返回的数据写入文件
+				//濡傛灉闄嶅櫔鎴愬姛锛屽垯鏍规嵁闄嶅櫔鍚庨珮棰戝拰浣庨�鏁版嵁浼犲叆婊ゆ尝鎺ュ彛锛岀劧鍚庣敤灏嗚繑鍥炵殑鏁版嵁鍐欏叆鏂囦欢
 				WebRtcSpl_SynthesisQMF(shOutL,shOutH,160,shBufferOut,Synthesis_state1,Synthesis_state12);
 				memcpy(pDst+i*320*sizeof(short),shBufferOut,320*sizeof(short));
 			}
@@ -179,7 +179,7 @@ int AudioNsImpl::NsProcess32kAudioSampleRate(char* pDst, uint32_t uDstLen, char*
 }
 
 
-//48k采样率,采样间隔20ms,每次传过来音频大小为1920字节,10ms缓冲区大小为960字节,WebRtcNs_Process每次处理10ms数据
+//48k閲囨牱鐜囷紝閲囨牱闂撮殧20ms锛屾瘡娆′紶杩囨潵闊抽�澶у皬涓�1920瀛楄妭锛�10ms缂撳啿鍖哄ぇ灏忎负960瀛楄妭,WebRtcNs_Process姣忔�澶勭悊10ms鏁版嵁
 int AudioNsImpl::NsProcess48kAudioSampleRate(char* pDst, uint32_t uDstLen, char* pSrc, uint32_t uSrcLen)
 {
 	int iRet = -1;
@@ -198,17 +198,17 @@ int AudioNsImpl::NsProcess48kAudioSampleRate(char* pDst, uint32_t uDstLen, char*
 			short shOutL[240] ={0},shOutH[240] = {0};
 
 			memcpy(shBufferIn, pSrc + i*480*sizeof(short), 480*sizeof(short));
-			//首先需要使用滤波函数将音频数据分高低频,以高频和低频的方式传入降噪函数内部
+			//棣栧厛闇€瑕佷娇鐢ㄦ护娉㈠嚱鏁板皢闊抽�鏁版嵁鍒嗛珮浣庨�锛屼互楂橀�鍜屼綆棰戠殑鏂瑰紡浼犲叆闄嶅櫔鍑芥暟鍐呴儴
 			WebRtcSpl_AnalysisQMF(shBufferIn,480,shInL,shInH,filter_state1,filter_state12);
 
-			//将需要降噪的数据以高频和低频传入对应接口,同时需要注意返回数据也是分高频和低频
+			//灏嗛渶瑕侀檷鍣�殑鏁版嵁浠ラ珮棰戝拰浣庨�浼犲叆瀵瑰簲鎺ュ彛锛屽悓鏃堕渶瑕佹敞鎰忚繑鍥炴暟鎹�篃鏄�垎楂橀�鍜屼綆棰�
 			if (iRet == WebRtcNs_Process(m_NsHandle, shInL, shInH, shOutL, shOutH)){
 				NsLog("Noise_Suppression WebRtcNs_Process 48k input err!");
 			}
 			else
 			{
 				short shBufferOut[480] = {0};
-				//如果降噪成功,则根据降噪后高频和低频数据传入滤波接口,然后用将返回的数据写入文件
+				//濡傛灉闄嶅櫔鎴愬姛锛屽垯鏍规嵁闄嶅櫔鍚庨珮棰戝拰浣庨�鏁版嵁浼犲叆婊ゆ尝鎺ュ彛锛岀劧鍚庣敤灏嗚繑鍥炵殑鏁版嵁鍐欏叆鏂囦欢
 				WebRtcSpl_SynthesisQMF(shOutL,shOutH,240,shBufferOut,Synthesis_state1,Synthesis_state12);
 				memcpy(pDst+i*480*sizeof(short),shBufferOut,480*sizeof(short));
 			}

+ 3 - 3
Other/win/libaudions/libaudions.h

@@ -1,4 +1,4 @@
-#ifndef _LIB_AUDIO_NS_H_
+#ifndef _LIB_AUDIO_NS_H_
 #define _LIB_AUDIO_NS_H_
 
 #include <stdio.h>
@@ -26,8 +26,8 @@ private:
 
 private:
 	NsHandle *m_NsHandle;
-	uint32_t m_audio_sample_rate;				//µ¥Î»HZ
-	uint32_t m_audio_capture_peroid;			//µ¥Î»ms
+	uint32_t m_audio_sample_rate;				//��HZ
+	uint32_t m_audio_capture_peroid;			//��ms
 	int m_ns_policy;	
 	audions_callback_t m_nscallback;
 };

+ 1 - 1
Other/win/libaudions/stdafx.cpp

@@ -1,4 +1,4 @@
-// stdafx.cpp : source file that includes just the standard includes
+// stdafx.cpp : source file that includes just the standard includes
 // libaudions.pch will be the pre-compiled header
 // stdafx.obj will contain the pre-compiled type information
 

+ 1 - 1
Other/win/libaudions/stdafx.h

@@ -1,4 +1,4 @@
-// stdafx.h : include file for standard system include files,
+// stdafx.h : include file for standard system include files,
 // or project specific include files that are used frequently, but
 // are changed infrequently
 //

+ 1 - 1
Other/win/libaudions/targetver.h

@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 // Including SDKDDKVer.h defines the highest available Windows platform.
 

+ 9 - 9
Other/win/libfilecryption/filecryption.cpp

@@ -1,4 +1,4 @@
-#include "stdafx.h"
+锘�#include "stdafx.h"
 #include "filecryption.h"
 #include "fileanalysis.h"
 #include "rvcfileheader.h"
@@ -62,10 +62,10 @@ int encryption_file(char* poutfile, size_t uoutlen, const char* pfilename, const
 		return iret;
 	}
 	
-	//1. 新增自定义文件头
+	//1. 鏂板�鑷�畾涔夋枃浠跺ご
 	fwrite(pbuffer, 1, uheaderlen, pDestFile);
 
-	//获取加密前文件头GUID
+	//鑾峰彇鍔犲瘑鍓嶆枃浠跺ごGUID
 	char strGuid[HEADER_OBJECT_GUID_LEN] = {0};
 	fread(strGuid, 1, HEADER_OBJECT_GUID_LEN, pSrcFile);
 	if (0 != memcmp(strGuid, ASF_Header_GUID, HEADER_OBJECT_GUID_LEN)){
@@ -75,7 +75,7 @@ int encryption_file(char* poutfile, size_t uoutlen, const char* pfilename, const
 		return iret;
 	}
 
-	//2. 拷贝原文件头guid
+	//2. 鎷疯礉鍘熸枃浠跺ごguid
 	fwrite(strGuid, 1, HEADER_OBJECT_GUID_LEN, pDestFile);
 
 	char strheadsize[ASF_HEADER_SIZE_LEN] = {0};
@@ -92,10 +92,10 @@ int encryption_file(char* poutfile, size_t uoutlen, const char* pfilename, const
 
 	char strdatalen[ASF_HEADER_SIZE_LEN] = {0};
 	construct_asf_headsize(strdatalen, ASF_HEADER_SIZE_LEN, iencdatalen + HEADER_OBJECT_GUID_LEN + ASF_HEADER_SIZE_LEN);
-	//3. 填充加密后文件头长度
+	//3. 濉�厖鍔犲瘑鍚庢枃浠跺ご闀垮害
 	fwrite(strdatalen, 1, ASF_HEADER_SIZE_LEN, pDestFile);
 
-	//4. 填充加密后文件头内容
+	//4. 濉�厖鍔犲瘑鍚庢枃浠跺ご鍐呭�
 	fwrite(pobjdataenc, 1, iencdatalen, pDestFile);
 
 	char *data_buffer=(char *)malloc(RVC_READ_BUFFER_SIZE);
@@ -233,9 +233,9 @@ bool is_file_encrypted(const char* pfilename, const filecryption_callback_t* pca
 
 
 /*
-文件解密功能;
-	输入:文件路径
-	输出:文件明文头数据,文件明文头长度,加解密前后文件偏移量,自定义头文件头信息
+鏂囦欢瑙e瘑鍔熻兘锛�
+	杈撳叆锛氭枃浠惰矾寰�
+	杈撳嚭锛氭枃浠舵槑鏂囧ご鏁版嵁锛屾枃浠舵槑鏂囧ご闀垮害锛屽姞瑙e瘑鍓嶅悗鏂囦欢鍋忕Щ閲忥紝鑷�畾涔夊ご鏂囦欢澶翠俊鎭�
 */
 int rvc_file_decrypt(unsigned char** pdechead, size_t* udecheadlen, int* ioffset, char** pstrjson, size_t* ujsonlen, const char* pfilename, const filecryption_callback_t* pcallback, eRvcCryptionVersion eversion)
 {

+ 13 - 13
Other/win/libfilecryption/rvcfileheader.cpp

@@ -1,4 +1,4 @@
-#include "stdafx.h"
+锘�#include "stdafx.h"
 #include "rvcfileheader.h"
 #include "fileanalysis.h"
 #include <string.h>
@@ -8,12 +8,12 @@ int constrcut_rvc_file_header(char* pbuffer, size_t* ulen, const char* pfilename
 {
 	int iret = -1;
 
-	//1. 自定义文件头标识16位
+	//1. 鑷�畾涔夋枃浠跺ご鏍囪瘑16浣�
 	size_t udatalen = strlen(rvc_header);
 	memcpy(pbuffer, rvc_header, udatalen);
-	//2. 自定义文件头长度4位
+	//2. 鑷�畾涔夋枃浠跺ご闀垮害4浣�
 	udatalen += sizeof(size_t);
-	//3. 文件加密版本标识
+	//3. 鏂囦欢鍔犲瘑鐗堟湰鏍囪瘑
 	const char* strheader = cryption_ver_flag_table[0];
 	if (eversion < sizeof(cryption_ver_flag_table)/sizeof(char*) && eversion >= 0){
 		strheader = cryption_ver_flag_table[eversion];
@@ -22,7 +22,7 @@ int constrcut_rvc_file_header(char* pbuffer, size_t* ulen, const char* pfilename
 		udatalen += (strlen(strheader) + sizeof(size_t));
 	}
 
-	//4. 源文件hash值
+	//4. 婧愭枃浠秇ash鍊�
 	char strhash[RVC_FILE_HASH_LEN] = {0};
 	if (get_srcfile_hash(strhash, RVC_FILE_HASH_LEN, pfilename)){
 		safe_log(pcallback,"%s","get file hash failed!");
@@ -32,18 +32,18 @@ int constrcut_rvc_file_header(char* pbuffer, size_t* ulen, const char* pfilename
 		udatalen += (RVC_FILE_HASH_LEN + sizeof(size_t));
 	}
 
-	//5. 源文件文件大小
+	//5. 婧愭枃浠舵枃浠跺ぇ灏�
 	unsigned long usize = get_srcfile_size(pfilename);
 	memcpy(pbuffer+udatalen, &usize, sizeof(unsigned long));
 	udatalen += sizeof(unsigned long);
 	safe_log(pcallback,"src file size is %d.",usize)
-	//6. 源文件文件名
+	//6. 婧愭枃浠舵枃浠跺悕
 	char strname[MAX_PATH] = {0};
 	get_srcfile_name(strname, MAX_PATH, pfilename);
 	if (0 == fill_tag_buffer(pbuffer + udatalen, *ulen - udatalen, strname, strlen(strname))){
 		udatalen += (strlen(strname) + sizeof(size_t));
 	}
-	//7. 真实文件格式,后缀名
+	//7. 鐪熷疄鏂囦欢鏍煎紡锛屽悗缂€鍚�
 	char strformat[MAX_PATH] = {0};
 	get_srcfile_format(strformat, MAX_PATH, pfilename);
 	if (0 == fill_tag_buffer(pbuffer + udatalen, *ulen - udatalen, strformat, strlen(strformat))){
@@ -63,7 +63,7 @@ int get_rvc_file_header_info(rvc_fileheader_t* pdata, char* pheadbuffer, size_t
 	if (NULL == pheadbuffer){
 		return iret;
 	}
-	//3. 文件加密版本标识
+	//3. 鏂囦欢鍔犲瘑鐗堟湰鏍囪瘑
 	size_t uindex = 0;
 	if (0 == get_tag_value_from_buffer(pdata->strcryptver, RVC_CRYPTION_VER_FLAG_LEN, pheadbuffer+uindex, ulen - uindex)){
 		uindex += (RVC_CRYPTION_VER_FLAG_LEN + sizeof(size_t));
@@ -71,24 +71,24 @@ int get_rvc_file_header_info(rvc_fileheader_t* pdata, char* pheadbuffer, size_t
 	else{
 		return iret;
 	}
-	//4. 源文件hash值
+	//4. 婧愭枃浠秇ash鍊�
 	if (0 == get_tag_value_from_buffer((char*)pdata->strhash, RVC_FILE_HASH_LEN, pheadbuffer+uindex, ulen - uindex)){
 		uindex += (RVC_FILE_HASH_LEN + sizeof(size_t));
 	}
 	else{
 		return iret;
 	}
-	//5. 源文件文件大小
+	//5. 婧愭枃浠舵枃浠跺ぇ灏�
 	memcpy(&pdata->usrcfilelen, pheadbuffer+uindex, sizeof(unsigned long));
 	uindex += sizeof(unsigned long);
-	//6. 源文件文件名
+	//6. 婧愭枃浠舵枃浠跺悕
 	if (0 == get_tag_value_from_buffer((char*)pdata->strsrcfilename, MAX_PATH, pheadbuffer+uindex, ulen - uindex)){
 		uindex += (strlen(pdata->strsrcfilename) + sizeof(size_t));
 	}
 	else{
 		return iret;
 	}
-	//7. 真实文件格式,后缀名
+	//7. 鐪熷疄鏂囦欢鏍煎紡锛屽悗缂€鍚�
 	if (0 == get_tag_value_from_buffer((char*)pdata->strsrcfileformat, MAX_PATH, pheadbuffer+uindex, ulen - uindex)){
 		iret = 0;
 	}

+ 10 - 10
Other/win/libfilecryption/rvcfileheader.h

@@ -1,4 +1,4 @@
-#pragma once
+锘�#pragma once
 #include <stdio.h>
 #include "filecryption.h"
 
@@ -25,14 +25,14 @@ static const char* cryption_ver_flag_table[] = {
 	"rvcfiled"
 };
 
-/*添加的自定义文件头信息
-1. 自定义文件头标识16位
-2. 自定义文件头长度4位
-3. 文件加密版本标识
-4. 源文件hash值
-5. 源文件文件大小
-6. 源文件文件名
-7. 真实文件格式,后缀名
+/*娣诲姞鐨勮嚜瀹氫箟鏂囦欢澶翠俊鎭�
+1. 鑷�畾涔夋枃浠跺ご鏍囪瘑16浣�
+2. 鑷�畾涔夋枃浠跺ご闀垮害4浣�
+3. 鏂囦欢鍔犲瘑鐗堟湰鏍囪瘑
+4. 婧愭枃浠秇ash鍊�
+5. 婧愭枃浠舵枃浠跺ぇ灏�
+6. 婧愭枃浠舵枃浠跺悕
+7. 鐪熷疄鏂囦欢鏍煎紡锛屽悗缂€鍚�
 */
 
 
@@ -47,7 +47,7 @@ typedef struct rvc_fileheader_s{
 }rvc_fileheader_t;
 
 int constrcut_rvc_file_header(char* pbuffer, size_t* ulen, const char* pfilename, const filecryption_callback_t* pcallback, eRvcCryptionVersion eversion);
-// pheadbuffer从自定义的文件头的字段3,文件加密版本标识初开始
+// pheadbuffer浠庤嚜瀹氫箟鐨勬枃浠跺ご鐨勫瓧娈�3,鏂囦欢鍔犲瘑鐗堟湰鏍囪瘑鍒濆紑濮�
 int get_rvc_file_header_info(rvc_fileheader_t* pdata, char* pheadbuffer, size_t ulen, const filecryption_callback_t* pcallback);
 int fill_tag_buffer(char* pbuffer, size_t ubuffersize, const char* pdata, size_t udatalen);
 int get_tag_value_from_buffer(char* pbuffer, size_t ubuffersize, const char* pdata, size_t udatalen);

+ 63 - 63
Other/win/libimgplayer/CImgPlayerDlg.cpp

@@ -1,5 +1,5 @@
-
-// CImgPlayerDlg.cpp : 实现文件
+锘�
+// CImgPlayerDlg.cpp : 瀹炵幇鏂囦欢
 //
 
 #include "stdafx.h"
@@ -56,27 +56,27 @@ void CImgPlayerDlg::DoDataExchange(CDataExchange* pDX)
 
 void CImgPlayerDlg::ShowImage(CImage& img, UINT ID)
 {	
-	// 获得显示控件的DC
+	// 鑾峰緱鏄剧ず鎺т欢鐨凞C
 	CDC* pDC = m_pMemDC;
-	// 获取HDC(设备句柄)来进行绘图操作
+	// 鑾峰彇HDC(璁惧�鍙ユ焺)鏉ヨ繘琛岀粯鍥炬搷浣�
 	HDC hDC = pDC->GetSafeHdc();
 
 	CRect rect;
 	GetDlgItem(ID)->GetClientRect(&rect);
-	// 读取图片控件的宽和高
+	// 璇诲彇鍥剧墖鎺т欢鐨勫�鍜岄珮
 	int rw = rect.right-rect.left;
 	int rh = rect.bottom-rect.top;
-	// 设置图片控件背景色为黑色
+	// 璁剧疆鍥剧墖鎺т欢鑳屾櫙鑹蹭负榛戣壊
 	CBrush brush(RGB(0,0,0));
 	pDC->FillRect(CRect(0, 0, rw, rh), &brush);
 
-	// 读取图片的宽和高
+	// 璇诲彇鍥剧墖鐨勫�鍜岄珮
 	int iw = img.GetWidth();
 	int ih = img.GetHeight();
-	// 图片左上角在图片控件中的坐标
+	// 鍥剧墖宸︿笂瑙掑湪鍥剧墖鎺т欢涓�殑鍧愭爣
 	int tx = 0;
 	int ty = 0;
-	// 图片绘制时的宽和高
+	// 鍥剧墖缁樺埗鏃剁殑瀹藉拰楂�
 	int nw = iw;
 	int nh = ih;
 
@@ -94,7 +94,7 @@ void CImgPlayerDlg::ShowImage(CImage& img, UINT ID)
 	}
 	else
 	{
-		// 计算横向和纵向缩放因子
+		// 璁$畻妯�悜鍜岀旱鍚戠缉鏀惧洜瀛�
 		float scale_x = (float)iw / rw;
 		float scale_y = (float)ih / rh;
 		float scale;
@@ -103,26 +103,26 @@ void CImgPlayerDlg::ShowImage(CImage& img, UINT ID)
 		else
 			scale = scale_y;
 		
-		// 缩放后图片的宽和高
+		// 缂╂斁鍚庡浘鐗囩殑瀹藉拰楂�
 		nw = (int)(iw/scale);
 		nh = (int)(ih/scale);
 		
-		// 缩放后的图片在m_Image的正中部位绘制,计算图片左上角在m_Image中的坐标
+		// 缂╂斁鍚庣殑鍥剧墖鍦╩_Image鐨勬�涓�儴浣嶇粯鍒讹紝璁$畻鍥剧墖宸︿笂瑙掑湪m_Image涓�殑鍧愭爣
 		tx = (scale_x-scale_y >= 1e-6) ? 0 : (int)(rw-nw)/2;
 		ty = (scale_x-scale_y >= 1e-6) ? (int)(rh-nh)/2 : 0;
 	}
 
 	SetRect(&rect, tx, ty, tx+nw, ty+nh);
-	// 将图片绘制到显示控件的指定区域
-	SetStretchBltMode(hDC, HALFTONE); // 保持原有图片质量
-	SetBrushOrgEx(hDC, 0, 0, NULL);	// 设置刷子的起始点
+	// 灏嗗浘鐗囩粯鍒跺埌鏄剧ず鎺т欢鐨勬寚瀹氬尯鍩�
+	SetStretchBltMode(hDC, HALFTONE); // 淇濇寔鍘熸湁鍥剧墖璐ㄩ噺
+	SetBrushOrgEx(hDC, 0, 0, NULL);	// 璁剧疆鍒峰瓙鐨勮捣濮嬬偣
 	img.Draw(hDC,rect);
 
 	brush.DeleteObject();
 	//ReleaseDC(pDC);
 
 
-	m_Image.Destroy(); //主动释放位图资源 相当于对Detach返回的结果执行DeleteObject
+	m_Image.Destroy(); //涓诲姩閲婃斁浣嶅浘璧勬簮 鐩稿綋浜庡�Detach杩斿洖鐨勭粨鏋滄墽琛孌eleteObject
 
 	pDC = GetDlgItem(ID)->GetDC();
 	GetDlgItem(ID)->GetClientRect(&rect);
@@ -141,28 +141,28 @@ BEGIN_MESSAGE_MAP(CImgPlayerDlg, CDialogEx)
 END_MESSAGE_MAP()
 
 
-// CImgPlayerDlg 消息处理程序
+// CImgPlayerDlg 娑堟伅澶勭悊绋嬪簭
 
 BOOL CImgPlayerDlg::OnInitDialog()
 {
 	CDialogEx::OnInitDialog();
 
-	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
-	//  执行此操作
-	SetIcon(m_hIcon, TRUE);			// 设置大图标
-	SetIcon(m_hIcon, FALSE);		// 设置小图标
+	// 璁剧疆姝ゅ�璇濇�鐨勫浘鏍囥€傚綋搴旂敤绋嬪簭涓荤獥鍙d笉鏄��璇濇�鏃讹紝妗嗘灦灏嗚嚜鍔�
+	//  鎵ц�姝ゆ搷浣�
+	SetIcon(m_hIcon, TRUE);			// 璁剧疆澶у浘鏍�
+	SetIcon(m_hIcon, FALSE);		// 璁剧疆灏忓浘鏍�
 
-	long ScreenWidth = GetSystemMetrics(SM_CXSCREEN);  //主屏幕宽度
-	long ScreenHeight = GetSystemMetrics(SM_CYSCREEN); //主屏幕高度
+	long ScreenWidth = GetSystemMetrics(SM_CXSCREEN);  //涓诲睆骞曞�搴�
+	long ScreenHeight = GetSystemMetrics(SM_CYSCREEN); //涓诲睆骞曢珮搴�
 		
 	MONITORINFOEX mix;
 	mix.cbSize = sizeof(mix);
-	if (m_pConfig->bPrimMonitor == false) // 默认情况,在副屏显示
+	if (m_pConfig->bPrimMonitor == false) // 榛樿�鎯呭喌锛屽湪鍓�睆鏄剧ず
 	{
 		POINT pt;
 		pt.x = ScreenWidth+5;
 		pt.y = 5;
-		m_hMonitor = MonitorFromPoint(pt, MONITOR_DEFAULTTONULL); //尝试获取副屏的句柄
+		m_hMonitor = MonitorFromPoint(pt, MONITOR_DEFAULTTONULL); //灏濊瘯鑾峰彇鍓�睆鐨勫彞鏌�
 		if (m_hMonitor != NULL)
 		{
 			GetMonitorInfo(m_hMonitor, (LPMONITORINFO)&mix);
@@ -174,25 +174,25 @@ BOOL CImgPlayerDlg::OnInitDialog()
 			return FALSE;
 		}
 	}
-	else // 在主屏显示
+	else // 鍦ㄤ富灞忔樉绀�
 	{
 		m_hMonitor = MonitorFromWindow(this->GetSafeHwnd(), MONITOR_DEFAULTTONULL);
 		GetMonitorInfo(m_hMonitor, (LPMONITORINFO)&mix);
 		SetRect(&m_monitorRect, mix.rcMonitor.left, mix.rcMonitor.top, mix.rcMonitor.right, mix.rcMonitor.bottom);
 	}
 
-	// TODO: 在此添加额外的初始化代码
+	// TODO: 鍦ㄦ�娣诲姞棰濆�鐨勫垵濮嬪寲浠g爜
 	m_bInit = true;
 
-	// 去掉标题栏和边框
+	// 鍘绘帀鏍囬�鏍忓拰杈规�
 	ModifyStyle(WS_CAPTION, 0, 0);
 	ModifyStyleEx(WS_EX_DLGMODALFRAME, 0, 0);
 
 	if (m_pConfig->bFullScreen == true)
 	{
-		//ShowWindow(SW_MAXIMIZE);	// 设置窗口最大化
+		//ShowWindow(SW_MAXIMIZE);	// 璁剧疆绐楀彛鏈€澶у寲
 		::SetWindowPos(this->GetSafeHwnd(),HWND_TOP,m_monitorRect.left,m_monitorRect.top,
-			m_monitorRect.Width(),m_monitorRect.Height(),SWP_SHOWWINDOW); //设置窗口的位置和大小
+			m_monitorRect.Width(),m_monitorRect.Height(),SWP_SHOWWINDOW); //璁剧疆绐楀彛鐨勪綅缃�拰澶у皬
 	}
 	else
 	{
@@ -205,37 +205,37 @@ BOOL CImgPlayerDlg::OnInitDialog()
 			m_pConfig->nWndHeight = m_monitorRect.Height();
 		}
 		::SetWindowPos(this->GetSafeHwnd(),HWND_TOP,m_monitorRect.left+m_pConfig->nWndX,m_monitorRect.top+m_pConfig->nWndY,
-			m_pConfig->nWndWidth,m_pConfig->nWndHeight,SWP_SHOWWINDOW); //设置窗口的位置和大小
+			m_pConfig->nWndWidth,m_pConfig->nWndHeight,SWP_SHOWWINDOW); //璁剧疆绐楀彛鐨勪綅缃�拰澶у皬
 	}
 
 	CRect rect;
 
 	this->GetClientRect(&rect);
 	
-	//使PictureControl填充整个窗口,超出窗口并增加宽高各1个像素,以隐藏PictureControl的边框(注意控件是相对于窗口的)
+	//浣縋ictureControl濉�厖鏁翠釜绐楀彛锛岃秴鍑虹獥鍙e苟澧炲姞瀹介珮鍚�1涓�儚绱狅紝浠ラ殣钘廝ictureControl鐨勮竟妗嗭紙娉ㄦ剰鎺т欢鏄�浉瀵逛簬绐楀彛鐨勶級
 	::SetWindowPos(GetDlgItem(IDC_ShowImg)->GetSafeHwnd(),HWND_TOP,-1,-1,
 		rect.Width()+2,rect.Height()+2,SWP_SHOWWINDOW);
 	
-	::GetWindowRect(GetDlgItem(IDC_ShowImg)->GetSafeHwnd(), &rect); // 计算PictureControl的屏幕坐标
-	//this->ScreenToClient(&rect); // 转换到相对于Dialog客户区的坐标
-	//int borderWidth = -rect.left; // 计算边框的厚度
+	::GetWindowRect(GetDlgItem(IDC_ShowImg)->GetSafeHwnd(), &rect); // 璁$畻PictureControl鐨勫睆骞曞潗鏍�
+	//this->ScreenToClient(&rect); // 杞�崲鍒扮浉瀵逛簬Dialog瀹㈡埛鍖虹殑鍧愭爣
+	//int borderWidth = -rect.left; // 璁$畻杈规�鐨勫帤搴�
 
-	// 双缓冲机制
+	// 鍙岀紦鍐叉満鍒�
 	int x = rect.Width();
 	int y = rect.Height();
 	CDC *pDC = GetDlgItem(IDC_ShowImg)->GetDC();
-	m_pMemDC->CreateCompatibleDC(pDC); // 依附图片控件DC创建兼容内存DC
-	m_pMemBitmap->CreateCompatibleBitmap(pDC, x, y); // 创建兼容位图
-	m_pOldBitmap = m_pMemDC->SelectObject(m_pMemBitmap); // 将位图选进内存DC,原位图保存到m_pOldBitmap
+	m_pMemDC->CreateCompatibleDC(pDC); // 渚濋檮鍥剧墖鎺т欢DC鍒涘缓鍏煎�鍐呭瓨DC
+	m_pMemBitmap->CreateCompatibleBitmap(pDC, x, y); // 鍒涘缓鍏煎�浣嶅浘
+	m_pOldBitmap = m_pMemDC->SelectObject(m_pMemBitmap); // 灏嗕綅鍥鹃€夎繘鍐呭瓨DC锛屽師浣嶅浘淇濆瓨鍒癿_pOldBitmap
 	ReleaseDC(pDC);
 	DeleteObject(m_pOldBitmap);
 
-	// 加载并显示第一张图片
+	// 鍔犺浇骞舵樉绀虹�涓€寮犲浘鐗�
 	if (m_pConfig->nFileCnt > 0)
 	{
 		CString imgPath;
 		imgPath.Format(_T("%s%s"),m_pConfig->strRootPath,m_pConfig->strFileNames[0]);
-		// 判断文件是否存在
+		// 鍒ゆ柇鏂囦欢鏄�惁瀛樺湪
 		if (_access(LPCTSTR(imgPath), 0) != -1)
 		{
 			HRESULT hRet = m_Image.Load(LPCTSTR(imgPath));
@@ -245,7 +245,7 @@ BOOL CImgPlayerDlg::OnInitDialog()
 		}
 	}
 
-	// 每m_nPlayInterval毫秒显示下一张图片
+	// 姣弇_nPlayInterval姣��鏄剧ず涓嬩竴寮犲浘鐗�
 	if (m_pConfig->nFileCnt > 1)
 	{
 		if (m_pConfig->nPlayInterval <= 1000)
@@ -256,22 +256,22 @@ BOOL CImgPlayerDlg::OnInitDialog()
 		m_bTimer = true;
 	}
 
-	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
+	return TRUE;  // 闄ら潪灏嗙劍鐐硅�缃�埌鎺т欢锛屽惁鍒欒繑鍥� TRUE
 }
 
-// 如果向对话框添加最小化按钮,则需要下面的代码
-//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
-//  这将由框架自动完成。
+// 濡傛灉鍚戝�璇濇�娣诲姞鏈€灏忓寲鎸夐挳锛屽垯闇€瑕佷笅闈㈢殑浠g爜
+//  鏉ョ粯鍒惰�鍥炬爣銆傚�浜庝娇鐢ㄦ枃妗�/瑙嗗浘妯″瀷鐨� MFC 搴旂敤绋嬪簭锛�
+//  杩欏皢鐢辨�鏋惰嚜鍔ㄥ畬鎴愩€�
 
 void CImgPlayerDlg::OnPaint()
 {
 	if (IsIconic())
 	{
-		CPaintDC dc(this); // 用于绘制的设备上下文
+		CPaintDC dc(this); // 鐢ㄤ簬缁樺埗鐨勮�澶囦笂涓嬫枃
 
 		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
 
-		// 使图标在工作区矩形中居中
+		// 浣垮浘鏍囧湪宸ヤ綔鍖虹煩褰�腑灞呬腑
 		int cxIcon = GetSystemMetrics(SM_CXICON);
 		int cyIcon = GetSystemMetrics(SM_CYICON);
 		CRect rect;
@@ -279,7 +279,7 @@ void CImgPlayerDlg::OnPaint()
 		int x = (rect.Width() - cxIcon + 1) / 2;
 		int y = (rect.Height() - cyIcon + 1) / 2;
 
-		// 绘制图标
+		// 缁樺埗鍥炬爣
 		dc.DrawIcon(x, y, m_hIcon);
 	}
 	else
@@ -288,8 +288,8 @@ void CImgPlayerDlg::OnPaint()
 	}
 }
 
-//当用户拖动最小化窗口时系统调用此函数取得光标
-//显示。
+//褰撶敤鎴锋嫋鍔ㄦ渶灏忓寲绐楀彛鏃剁郴缁熻皟鐢ㄦ�鍑芥暟鍙栧緱鍏夋爣
+//鏄剧ず銆�
 HCURSOR CImgPlayerDlg::OnQueryDragIcon()
 {
 	return static_cast<HCURSOR>(m_hIcon);
@@ -301,13 +301,13 @@ void CImgPlayerDlg::OnSize(UINT nType, int cx, int cy)
 		return;
 	CDialogEx::OnSize(nType, cx, cy);
 
-	// TODO: 在此处添加消息处理程序代码
+	// TODO: 鍦ㄦ�澶勬坊鍔犳秷鎭��鐞嗙▼搴忎唬鐮�
 	GetDlgItem(IDC_ShowImg)->MoveWindow(0, 0, cx, cy);
 }
 
 void CImgPlayerDlg::OnClose()
 {
-	// TODO: 在此添加消息处理程序代码和/或调用默认值	
+	// TODO: 鍦ㄦ�娣诲姞娑堟伅澶勭悊绋嬪簭浠g爜鍜�/鎴栬皟鐢ㄩ粯璁ゅ€�	
 	CDialogEx::OnClose();
 	EndPlay();
 }
@@ -315,26 +315,26 @@ void CImgPlayerDlg::OnClose()
 
 void CImgPlayerDlg::OnTimer(UINT_PTR nIDEvent)
 {
-	// TODO: 在此添加消息处理程序代码和/或调用默认值
+	// TODO: 鍦ㄦ�娣诲姞娑堟伅澶勭悊绋嬪簭浠g爜鍜�/鎴栬皟鐢ㄩ粯璁ゅ€�
 	if (nIDEvent == TIMERID)
 	{
 		m_nPicInx = (m_nPicInx+1)%m_pConfig->nFileCnt;
-		if (m_pConfig->nPlayCnt != 0) // 非循环播放
+		if (m_pConfig->nPlayCnt != 0) // 闈炲惊鐜�挱鏀�
 		{
 			if (m_nPicInx == 0)
 			{
 				m_nPlayCnt++;
 			}
-			if (m_nPlayCnt == m_pConfig->nPlayCnt)//播放次数到了
+			if (m_nPlayCnt == m_pConfig->nPlayCnt)//鎾�斁娆℃暟鍒颁簡
 			{
-				// 结束播放
+				// 缁撴潫鎾�斁
 				EndPlay();
 				return;
 			}
 		}
 		CString imgPath;
 		imgPath.Format(_T("%s%s"),m_pConfig->strRootPath,m_pConfig->strFileNames[m_nPicInx]);
-		// 判断文件是否存在
+		// 鍒ゆ柇鏂囦欢鏄�惁瀛樺湪
 		if (_access((LPCTSTR)imgPath, 0) != -1)
 		{
 			HRESULT hRet = m_Image.Load(LPCTSTR(imgPath));
@@ -346,29 +346,29 @@ void CImgPlayerDlg::OnTimer(UINT_PTR nIDEvent)
 	CDialogEx::OnTimer(nIDEvent);
 }
 
-// 屏蔽背景刷新
+// 灞忚斀鑳屾櫙鍒锋柊
 BOOL CImgPlayerDlg::OnEraseBkgnd(CDC* pDC)
 {
-	// TODO: 在此添加消息处理程序代码和/或调用默认值
+	// TODO: 鍦ㄦ�娣诲姞娑堟伅澶勭悊绋嬪簭浠g爜鍜�/鎴栬皟鐢ㄩ粯璁ゅ€�
 	return TRUE;
 	//return CDialogEx::OnEraseBkgnd(pDC);
 }
 
 BOOL CImgPlayerDlg::EndPlay()
 {
-	// 停止定时器
+	// 鍋滄�瀹氭椂鍣�
 	if (m_bTimer)
 	{
 		KillTimer(TIMERID);
 		m_bTimer = false;
 
-		// 释放绘图对象
+		// 閲婃斁缁樺浘瀵硅薄
 		DeleteObject(m_pMemBitmap);
 		ReleaseDC(m_pMemDC);
 
 	}
 
-	// 关闭窗口
+	// 鍏抽棴绐楀彛
 	EndDialog(IDCANCEL);
 
 	return TRUE;

+ 19 - 19
Other/win/libimgplayer/CImgPlayerDlg.h

@@ -1,49 +1,49 @@
-
-// CImgPlayerDlg.h : Í·Îļþ
+
+// CImgPlayerDlg.h : 头文件
 //
 
 #pragma once
 #include "libimgplayer.h"
 #include "resource.h"
 
-// CImgPlayerDlg ¶Ô»°¿ò
+// CImgPlayerDlg 对�框
 class CImgPlayerDlg : public CDialogEx
 {
-// ¹¹Ôì
+// 构造
 public:
-	CImgPlayerDlg(CWnd* pParent = NULL);	// ±ê×¼¹¹Ô캯Êý
+	CImgPlayerDlg(CWnd* pParent = NULL);	// 标准构造函数
 	CImgPlayerDlg(CImgPlayConfig *pConfig, CWnd* pParent = NULL);
 	~CImgPlayerDlg();
 private:
 	BOOL EndPlay();
 
-// ¶Ô»°¿òÊý¾Ý
+// 对�框数�
 	enum { IDD = IDD_IMGPLAYER_DIALOG };
 
 protected:
-	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV Ö§³Ö
+	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支�
 	void ShowImage(CImage& img, UINT ID);
 
 
-// ʵÏÖ
+// 实现
 protected:
 	HICON m_hIcon;
-	bool m_bInit;//OnInitDialogÊÇ·ñÖ´ÐнáÊø
-	bool m_bTimer;//¼ÆÊ±Æ÷ÊÇ·ñÔÚÖ´ÐÐ
-	CImage m_Image;//ͼÏñ¹¤¾ß
-	HMONITOR m_hMonitor;//ͼƬÏÔʾËùÔ򵀮ÁÄ»¾ä±ú
-	CRect m_monitorRect;//ͼƬÏÔʾËùÔ򵀮ÁĻλÖúʹóС
+	bool m_bInit;//OnInitDialog是�执行结�
+	bool m_bTimer;//计时器是�在执行
+	CImage m_Image;//图�工具
+	HMONITOR m_hMonitor;//图片显示所在的�幕�柄
+	CRect m_monitorRect;//图片显示所在的�幕�置和大�
 	CImgPlayConfig *m_pConfig;
 	
-	int m_nPlayCnt; // ÒÑÖØ¸´²¥·Å´ÎÊý£¨¶àÕÅͼƬ˳Ðò²¥ÍêÒ»´ÎËãÖØ¸´²¥Ò»´Î£©
-	int m_nPicInx; // µ±Ç°Í¼Æ¬ÐòºÅ	
+	int m_nPlayCnt; // 已��播放次数(多张图片顺�播完一次算��播一次)
+	int m_nPicInx; // 当�图片��	
 
-	// Ë«»º³å»úÖÆ
+	// �缓冲机制
 	CBitmap* m_pOldBitmap;
-	CBitmap* m_pMemBitmap; //ÉùÃ÷ÄÚ´æÖгÐÔØÁÙʱͼÏóµÄλͼ
-	CDC* m_pMemDC;   //ÉùÃ÷ÓÃÓÚ»º³å×÷ͼµÄÄÚ´æDC
+	CBitmap* m_pMemBitmap; //声明内存中承载临时图象的�图
+	CDC* m_pMemDC;   //声明用于缓冲作图的内存DC
 
-	// Éú³ÉµÄÏûÏ¢Ó³É亯Êý
+	// 生�的消�映射函数
 	virtual BOOL OnInitDialog();
 	afx_msg void OnPaint();
 	afx_msg HCURSOR OnQueryDragIcon();

+ 6 - 6
Other/win/libimgplayer/ClibimgplayerApp.cpp

@@ -1,4 +1,4 @@
-#include "stdafx.h"
+#include "stdafx.h"
 #include "ClibimgplayerApp.h"
 
 #ifdef _DEBUG
@@ -13,21 +13,21 @@ BEGIN_MESSAGE_MAP(ClibimgplayerApp, CWinApp)
 END_MESSAGE_MAP()
 
 
-// ClibimgplayerApp ¹¹Ôì
+// ClibimgplayerApp 构造
 
 ClibimgplayerApp::ClibimgplayerApp()
 {
-	// TODO: ÔÚ´Ë´¦Ìí¼Ó¹¹Ôì´úÂ룬
-	// ½«ËùÓÐÖØÒªµÄ³õʼ»¯·ÅÖÃÔÚ InitInstance ÖÐ
+	// TODO: 在此处添加构造代�,
+	// 将所有��的�始化放置在 InitInstance 中
 }
 
 
-// ΨһµÄÒ»¸ö ClibimgplayerApp ¶ÔÏó
+// 唯一的一个 ClibimgplayerApp 对象
 
 ClibimgplayerApp theApp;
 
 
-// ClibimgplayerApp ³õʼ»¯
+// ClibimgplayerApp �始化
 
 BOOL ClibimgplayerApp::InitInstance()
 {

+ 4 - 4
Other/win/libimgplayer/ClibimgplayerApp.h

@@ -1,11 +1,11 @@
-// ClibimgplayerApp.h : PROJECT_NAME 应用程序的主头文件
+锘�// ClibimgplayerApp.h : PROJECT_NAME 搴旂敤绋嬪簭鐨勪富澶存枃浠�
 //
 
 
 #pragma once
 
 #ifndef __AFXWIN_H__
-#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
+#error "鍦ㄥ寘鍚��鏂囦欢涔嬪墠鍖呭惈鈥渟tdafx.h鈥濅互鐢熸垚 PCH 鏂囦欢"
 #endif
 
 class ClibimgplayerApp : public CWinApp
@@ -13,11 +13,11 @@ class ClibimgplayerApp : public CWinApp
 public:
 	ClibimgplayerApp();
 
-	// 重写
+	// 閲嶅啓
 public:
 	virtual BOOL InitInstance();
 
-	// 实现
+	// 瀹炵幇
 
 	DECLARE_MESSAGE_MAP()
 };

+ 30 - 30
Other/win/libimgplayer/ReadMe.txt

@@ -1,67 +1,67 @@
-================================================================================
-MICROSOFT 基础类库: PicturePlayer 项目概述
+锘�================================================================================
+MICROSOFT 鍩虹�绫诲簱: PicturePlayer 椤圭洰姒傝堪
 ===============================================================================
 
-应用程序向导已为您创建了这个 PicturePlayer 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。
+搴旂敤绋嬪簭鍚戝�宸蹭负鎮ㄥ垱寤轰簡杩欎釜 PicturePlayer 搴旂敤绋嬪簭銆傛�搴旂敤绋嬪簭涓嶄粎婕旂ず Microsoft 鍩虹�绫荤殑鍩烘湰浣跨敤鏂规硶锛岃繕鍙�綔涓烘偍缂栧啓搴旂敤绋嬪簭鐨勮捣鐐广€�
 
-本文件概要介绍组成 PicturePlayer 应用程序的每个文件的内容。
+鏈�枃浠舵�瑕佷粙缁嶇粍鎴� PicturePlayer 搴旂敤绋嬪簭鐨勬瘡涓�枃浠剁殑鍐呭�銆�
 
 PicturePlayer.vcxproj
-这是使用应用程序向导生成的 VC++ 项目的主项目文件。 
-它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
+杩欐槸浣跨敤搴旂敤绋嬪簭鍚戝�鐢熸垚鐨� VC++ 椤圭洰鐨勪富椤圭洰鏂囦欢銆� 
+瀹冨寘鍚�敓鎴愯�鏂囦欢鐨� Visual C++ 鐨勭増鏈�俊鎭�紝浠ュ強鏈夊叧浣跨敤搴旂敤绋嬪簭鍚戝�閫夋嫨鐨勫钩鍙般€侀厤缃�拰椤圭洰鍔熻兘鐨勪俊鎭�€�
 
 PicturePlayer.vcxproj.filters
-    这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。
-    它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
+    杩欐槸浣跨敤鈥滃簲鐢ㄧ▼搴忓悜瀵尖€濈敓鎴愮殑 VC++ 椤圭洰绛涢€夊櫒鏂囦欢銆�
+    瀹冨寘鍚�湁鍏抽」鐩�枃浠朵笌绛涢€夊櫒涔嬮棿鐨勫叧鑱斾俊鎭�€傚湪 IDE 涓�紝閫氳繃杩欑�鍏宠仈锛屽湪鐗瑰畾鑺傜偣涓嬩互鍒嗙粍褰㈠紡鏄剧ず鍏锋湁鐩镐技鎵╁睍鍚嶇殑鏂囦欢銆備緥濡傦紝鈥�.cpp鈥濇枃浠朵笌鈥滄簮鏂囦欢鈥濈瓫閫夊櫒鍏宠仈銆�
 
 PicturePlayer.h
-这是应用程序的主要头文件。它包括其他项目特定的头文件(包括 Resource.h),并声明 CPicturePlayerApp 应用程序类。
+杩欐槸搴旂敤绋嬪簭鐨勪富瑕佸ご鏂囦欢銆傚畠鍖呮嫭鍏朵粬椤圭洰鐗瑰畾鐨勫ご鏂囦欢(鍖呮嫭 Resource.h)锛屽苟澹版槑 CPicturePlayerApp 搴旂敤绋嬪簭绫汇€�
 
 PicturePlayer.cpp
-这是包含应用程序类 CPicturePlayerApp 的主要应用程序源文件。
+杩欐槸鍖呭惈搴旂敤绋嬪簭绫� CPicturePlayerApp 鐨勪富瑕佸簲鐢ㄧ▼搴忔簮鏂囦欢銆�
 
 PicturePlayer.rc
-这是程序使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录中存储的图标、位图和光标。此文件可以直接在 Microsoft Visual C++ 中进行编辑。项目资源位于 2052 中。
+杩欐槸绋嬪簭浣跨敤鐨勬墍鏈� Microsoft Windows 璧勬簮鐨勫垪琛ㄣ€傚畠鍖呮嫭 RES 瀛愮洰褰曚腑瀛樺偍鐨勫浘鏍囥€佷綅鍥惧拰鍏夋爣銆傛�鏂囦欢鍙�互鐩存帴鍦� Microsoft Visual C++ 涓�繘琛岀紪杈戙€傞」鐩�祫婧愪綅浜� 2052 涓�€�
 
 res\PicturePlayer.ico
-这是用作应用程序图标的图标文件。此图标包括在主要资源文件 PicturePlayer.rc 中。
+杩欐槸鐢ㄤ綔搴旂敤绋嬪簭鍥炬爣鐨勫浘鏍囨枃浠躲€傛�鍥炬爣鍖呮嫭鍦ㄤ富瑕佽祫婧愭枃浠� PicturePlayer.rc 涓�€�
 
 res\PicturePlayer.rc2
-此文件包含不在 Microsoft Visual C++ 中进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此文件中。
+姝ゆ枃浠跺寘鍚�笉鍦� Microsoft Visual C++ 涓�繘琛岀紪杈戠殑璧勬簮銆傛偍搴旇�灏嗕笉鍙�敱璧勬簮缂栬緫鍣ㄧ紪杈戠殑鎵€鏈夎祫婧愭斁鍦ㄦ�鏂囦欢涓�€�
 
 
 /////////////////////////////////////////////////////////////////////////////
 
-应用程序向导创建一个对话框类:
+搴旂敤绋嬪簭鍚戝�鍒涘缓涓€涓��璇濇�绫�:
 
-PicturePlayerDlg.h,PicturePlayerDlg.cpp - 对话框
-这些文件包含 CPicturePlayerDlg 类。该类定义应用程序主对话框的行为。该对话框的模板位于 PicturePlayer.rc 中,该文件可以在 Microsoft Visual C++ 中进行编辑。
+PicturePlayerDlg.h锛孭icturePlayerDlg.cpp - 瀵硅瘽妗�
+杩欎簺鏂囦欢鍖呭惈 CPicturePlayerDlg 绫汇€傝�绫诲畾涔夊簲鐢ㄧ▼搴忎富瀵硅瘽妗嗙殑琛屼负銆傝�瀵硅瘽妗嗙殑妯℃澘浣嶄簬 PicturePlayer.rc 涓�紝璇ユ枃浠跺彲浠ュ湪 Microsoft Visual C++ 涓�繘琛岀紪杈戙€�
 
 
 /////////////////////////////////////////////////////////////////////////////
 
-其他标准文件:
+鍏朵粬鏍囧噯鏂囦欢:
 
-StdAfx.h,StdAfx.cpp
-这些文件用于生成名为 PicturePlayer.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
+StdAfx.h锛孲tdAfx.cpp
+杩欎簺鏂囦欢鐢ㄤ簬鐢熸垚鍚嶄负 PicturePlayer.pch 鐨勯�缂栬瘧澶� (PCH) 鏂囦欢鍜屽悕涓� StdAfx.obj 鐨勯�缂栬瘧绫诲瀷鏂囦欢銆�
 
 Resource.h
-这是标准头文件,它定义新的资源 ID。
-Microsoft Visual C++ 读取并更新此文件。
+杩欐槸鏍囧噯澶存枃浠讹紝瀹冨畾涔夋柊鐨勮祫婧� ID銆�
+Microsoft Visual C++ 璇诲彇骞舵洿鏂版�鏂囦欢銆�
 
 PicturePlayer.manifest
-	应用程序清单文件供 Windows XP 用来描述应用程序
-	对特定版本并行程序集的依赖性。加载程序使用此
-	信息从程序集缓存加载适当的程序集或
-	从应用程序加载私有信息。应用程序清单可能为了重新分发而作为
-	与应用程序可执行文件安装在相同文件夹中的外部 .manifest 文件包括,
-	也可能以资源的形式包括在该可执行文件中。 
+	搴旂敤绋嬪簭娓呭崟鏂囦欢渚� Windows XP 鐢ㄦ潵鎻忚堪搴旂敤绋嬪簭
+	瀵圭壒瀹氱増鏈�苟琛岀▼搴忛泦鐨勪緷璧栨€с€傚姞杞界▼搴忎娇鐢ㄦ�
+	淇℃伅浠庣▼搴忛泦缂撳瓨鍔犺浇閫傚綋鐨勭▼搴忛泦鎴�
+	浠庡簲鐢ㄧ▼搴忓姞杞界�鏈変俊鎭�€傚簲鐢ㄧ▼搴忔竻鍗曞彲鑳戒负浜嗛噸鏂板垎鍙戣€屼綔涓�
+	涓庡簲鐢ㄧ▼搴忓彲鎵ц�鏂囦欢瀹夎�鍦ㄧ浉鍚屾枃浠跺す涓�殑澶栭儴 .manifest 鏂囦欢鍖呮嫭锛�
+	涔熷彲鑳戒互璧勬簮鐨勫舰寮忓寘鎷�湪璇ュ彲鎵ц�鏂囦欢涓�€� 
 /////////////////////////////////////////////////////////////////////////////
 
-其他注释:
+鍏朵粬娉ㄩ噴:
 
-应用程序向导使用“TODO:”指示应添加或自定义的源代码部分。
+搴旂敤绋嬪簭鍚戝�浣跨敤鈥淭ODO:鈥濇寚绀哄簲娣诲姞鎴栬嚜瀹氫箟鐨勬簮浠g爜閮ㄥ垎銆�
 
-如果应用程序在共享的 DLL 中使用 MFC,则需要重新发布这些 MFC DLL;如果应用程序所用的语言与操作系统的当前区域设置不同,则还需要重新发布对应的本地化资源 MFC100XXX.DLL。有关这两个主题的更多信息,请参见 MSDN 文档中有关 Redistributing Visual C++ applications (重新发布 Visual C++ 应用程序)的章节。
+濡傛灉搴旂敤绋嬪簭鍦ㄥ叡浜�殑 DLL 涓�娇鐢� MFC锛屽垯闇€瑕侀噸鏂板彂甯冭繖浜� MFC DLL锛涘�鏋滃簲鐢ㄧ▼搴忔墍鐢ㄧ殑璇�█涓庢搷浣滅郴缁熺殑褰撳墠鍖哄煙璁剧疆涓嶅悓锛屽垯杩橀渶瑕侀噸鏂板彂甯冨�搴旂殑鏈�湴鍖栬祫婧� MFC100XXX.DLL銆傛湁鍏宠繖涓や釜涓婚�鐨勬洿澶氫俊鎭�紝璇峰弬瑙� MSDN 鏂囨。涓�湁鍏� Redistributing Visual C++ applications (閲嶆柊鍙戝竷 Visual C++ 搴旂敤绋嬪簭)鐨勭珷鑺傘€�
 
 /////////////////////////////////////////////////////////////////////////////

+ 2 - 3
Other/win/libimgplayer/libimgplayer.cpp

@@ -1,5 +1,4 @@
-
-// libimgplayer.cpp : ¶¨ÒåÓ¦ÓóÌÐòµÄÀàÐÐΪ¡£
+// libimgplayer.cpp : 定义应用程�的类行为。
 //
 
 #include "stdafx.h"
@@ -34,7 +33,7 @@ private:
 		m_pDlg = NULL;
 
 		if (nResponse == IDCANCEL){
-			// ±íʾÊÇÖ´ÐÐOnCancel»òOnClose»òStopPlay¹Ø±ÕµÄ
+			// 表示是执行OnCancel或OnClose或StopPlay关闭的
 			CloseHandle(m_hPlayThread);
 			m_hPlayThread = NULL;
 		}

+ 13 - 13
Other/win/libimgplayer/libimgplayer.h

@@ -1,4 +1,4 @@
-#pragma once
+锘�#pragma once
 
 #ifdef LIBIMGPLAYER_EXPORTS
 #define LIBIMGPLAYER_API __declspec(dllexport)
@@ -10,17 +10,17 @@
 
 struct CImgPlayConfig
 {	
-	bool bFullScreen;                           // 是否全屏
-	bool bPrimMonitor;                          // 是否主屏显示
-	int nWndX;                                  // 窗口X坐标
-	int nWndY;                                  // 窗口Y坐标
-	int nWndWidth;                              // 窗口宽度
-	int nWndHeight;                             // 窗口高度
-	int nFileCnt;		                        // 文件个数
-	int nPlayCnt;		                        // 播放次数
-	int nPlayInterval;		                    // 播放时间间隔
-	char strRootPath[MAX_PATH];		            // 根目录
-	char strFileNames[MAX_FILECOUNT][MAX_PATH]; // 文件名数组
+	bool bFullScreen;                           // 鏄�惁鍏ㄥ睆
+	bool bPrimMonitor;                          // 鏄�惁涓诲睆鏄剧ず
+	int nWndX;                                  // 绐楀彛X鍧愭爣
+	int nWndY;                                  // 绐楀彛Y鍧愭爣
+	int nWndWidth;                              // 绐楀彛瀹藉害
+	int nWndHeight;                             // 绐楀彛楂樺害
+	int nFileCnt;		                        // 鏂囦欢涓�暟
+	int nPlayCnt;		                        // 鎾�斁娆℃暟
+	int nPlayInterval;		                    // 鎾�斁鏃堕棿闂撮殧
+	char strRootPath[MAX_PATH];		            // 鏍圭洰褰�
+	char strFileNames[MAX_FILECOUNT][MAX_PATH]; // 鏂囦欢鍚嶆暟缁�
 };
 
 struct __declspec(novtable) CImgHostApi
@@ -29,7 +29,7 @@ struct __declspec(novtable) CImgHostApi
 	virtual void ImgDebug(const char *fmt, ...) = 0;
 };
 
-class libimgplayer_impl; // 桥接
+class libimgplayer_impl; // 妗ユ帴
 
 class LIBIMGPLAYER_API Clibimgplayer
 {

二進制
Other/win/libimgplayer/resource.h


+ 4 - 4
Other/win/libimgplayer/stdafx.cpp

@@ -1,7 +1,7 @@
-
-// stdafx.cpp : 只包括标准包含文件的源文件
-// PicturePlayer.pch 将作为预编译头
-// stdafx.obj 将包含预编译类型信息
+锘�
+// stdafx.cpp : 鍙�寘鎷�爣鍑嗗寘鍚�枃浠剁殑婧愭枃浠�
+// PicturePlayer.pch 灏嗕綔涓洪�缂栬瘧澶�
+// stdafx.obj 灏嗗寘鍚��缂栬瘧绫诲瀷淇℃伅
 
 #include "stdafx.h"
 

+ 12 - 12
Other/win/libimgplayer/stdafx.h

@@ -1,7 +1,7 @@
-
-// stdafx.h : 标准系统包含文件的包含文件,
-// 或是经常使用但不常更改的
-// 特定于项目的包含文件
+锘�
+// stdafx.h : 鏍囧噯绯荤粺鍖呭惈鏂囦欢鐨勫寘鍚�枃浠讹紝
+// 鎴栨槸缁忓父浣跨敤浣嗕笉甯告洿鏀圭殑
+// 鐗瑰畾浜庨」鐩�殑鍖呭惈鏂囦欢
 
 #pragma once
 
@@ -10,31 +10,31 @@
 #endif
 
 #ifndef VC_EXTRALEAN
-#define VC_EXTRALEAN            // 从 Windows 头中排除极少使用的资料
+#define VC_EXTRALEAN            // 浠� Windows 澶翠腑鎺掗櫎鏋佸皯浣跨敤鐨勮祫鏂�
 #endif
 
 #include "targetver.h"
 
-#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 某些 CString 构造函数将是显式的
+#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 鏌愪簺 CString 鏋勯€犲嚱鏁板皢鏄�樉寮忕殑
 
-// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
+// 鍏抽棴 MFC 瀵规煇浜涘父瑙佷絾缁忓父鍙�斁蹇冨拷鐣ョ殑璀﹀憡娑堟伅鐨勯殣钘�
 #define _AFX_ALL_WARNINGS
 
-#include <afxwin.h>         // MFC 核心组件和标准组件
-#include <afxext.h>         // MFC 扩展
+#include <afxwin.h>         // MFC 鏍稿績缁勪欢鍜屾爣鍑嗙粍浠�
+#include <afxext.h>         // MFC 鎵╁睍
 
 
 
 
 
 #ifndef _AFX_NO_OLE_SUPPORT
-#include <afxdtctl.h>           // MFC 对 Internet Explorer 4 公共控件的支持
+#include <afxdtctl.h>           // MFC 瀵� Internet Explorer 4 鍏�叡鎺т欢鐨勬敮鎸�
 #endif
 #ifndef _AFX_NO_AFXCMN_SUPPORT
-#include <afxcmn.h>             // MFC 对 Windows 公共控件的支持
+#include <afxcmn.h>             // MFC 瀵� Windows 鍏�叡鎺т欢鐨勬敮鎸�
 #endif // _AFX_NO_AFXCMN_SUPPORT
 
-#include <afxcontrolbars.h>     // 功能区和控件条的 MFC 支持
+#include <afxcontrolbars.h>     // 鍔熻兘鍖哄拰鎺т欢鏉$殑 MFC 鏀�寔
 
 
 

+ 4 - 4
Other/win/libimgplayer/targetver.h

@@ -1,8 +1,8 @@
-#pragma once
+锘�#pragma once
 
-// 包括 SDKDDKVer.h 将定义最高版本的可用 Windows 平台。
+// 鍖呮嫭 SDKDDKVer.h 灏嗗畾涔夋渶楂樼増鏈�殑鍙�敤 Windows 骞冲彴銆�
 
-// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
-// WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
+// 濡傛灉瑕佷负浠ュ墠鐨� Windows 骞冲彴鐢熸垚搴旂敤绋嬪簭锛岃�鍖呮嫭 WinSDKVer.h锛屽苟灏�
+// WIN32_WINNT 瀹忚�缃�负瑕佹敮鎸佺殑骞冲彴锛岀劧鍚庡啀鍖呮嫭 SDKDDKVer.h銆�
 
 #include <SDKDDKVer.h>

+ 3 - 3
Other/win/libmediaplayer/libmediaplayer.cpp

@@ -1,4 +1,4 @@
-#include "libmediaplayer.h"
+锘�#include "libmediaplayer.h"
 #include "player.h"
 #include <stdlib.h>
 #include <string.h>
@@ -135,8 +135,8 @@ bool libmediaplayer_impl::IsFileValid(const char* pVideoName)
 		return bret;
 	}
 	
-	// 1. 构建AVFormatContext
-	// 1.1 打开视频文件:读取文件头,将文件格式信息存储在"fmt context"中
+	// 1. 鏋勫缓AVFormatContext
+	// 1.1 鎵撳紑瑙嗛�鏂囦欢锛氳�鍙栨枃浠跺ご锛屽皢鏂囦欢鏍煎紡淇℃伅瀛樺偍鍦�"fmt context"涓�
 	err = avformat_open_input(&p_fmt_ctx, pVideoName, NULL, NULL);
 	if (0 == err){
 		err = avformat_find_stream_info(p_fmt_ctx, NULL);

+ 2 - 2
Other/win/libvideoframework/congestion_control/estimator/overuse_detector.h

@@ -1,10 +1,10 @@
-#ifndef __overuse_detector_h_
+锘�#ifndef __overuse_detector_h_
 #define __overuse_detector_h_
 
 #include "estimator_common.h"
 #include <stdint.h>
 
-/*网络过载检测器,移植于webRTC*/
+/*缃戠粶杩囪浇妫€娴嬪櫒锛岀Щ妞嶄簬webRTC*/
 
 typedef struct
 {

+ 17 - 17
Other/win/libvideoframework/videocap.cpp

@@ -1,4 +1,4 @@
-#include "precompile.h"
+锘�#include "precompile.h"
 #include "videocap.h"
 #include "ListEntry.h"
 #include "qedit.h"
@@ -467,13 +467,13 @@ static HRESULT Handle_BGR_Frame_CallBack(videocap *vcap, BYTE *pBuffer, long Buf
 
 	if (BufferLen != oriLen)
 	{
-		//计算目标图像比例
+		//璁$畻鐩�爣鍥惧儚姣斾緥
 		int srcH;
 		float fDstScale = (float)mode_width[vcap->param.cap_mode]/(float)mode_height[vcap->param.cap_mode];
 		float fSrcScale = (float)g_width/(float)g_height;
 		if (fSrcScale != fDstScale)
 		{
-			//计算偏移量
+			//璁$畻鍋忕Щ閲�
 			int nWidth,nHeight,nOffset=0;
 			if (fSrcScale > fDstScale)
 			{  
@@ -481,12 +481,12 @@ static HRESULT Handle_BGR_Frame_CallBack(videocap *vcap, BYTE *pBuffer, long Buf
 			}
 			else if (fSrcScale < fDstScale)
 			{
-				//高度过长
+				//楂樺害杩囬暱
 				nWidth = g_width;
 				nHeight = (int)ceil(g_width/fDstScale);
 				nOffset = (g_height-nHeight)/2*nWidth*3;
 			}
-			//计算等比例变换需要的SWS
+			//璁$畻绛夋瘮渚嬪彉鎹㈤渶瑕佺殑SWS
 			sws=sws_getContext(nWidth,nHeight,AV_PIX_FMT_BGR24, mode_width[vcap->param.cap_mode], mode_height[vcap->param.cap_mode], AV_PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL);
 			av_image_alloc(src_data, src_linesize,g_width,g_height, AV_PIX_FMT_BGR24, 1);
 			memcpy(src_data[0],pBuffer+nOffset,nWidth*nHeight*3);                    //Y
@@ -494,14 +494,14 @@ static HRESULT Handle_BGR_Frame_CallBack(videocap *vcap, BYTE *pBuffer, long Buf
 		}
 		else
 		{
-			//计算等比例变换需要的SWS
+			//璁$畻绛夋瘮渚嬪彉鎹㈤渶瑕佺殑SWS
 			sws=sws_getContext(g_width,g_height,AV_PIX_FMT_BGR24, mode_width[vcap->param.cap_mode], mode_height[vcap->param.cap_mode], AV_PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL);
 			av_image_alloc(src_data, src_linesize,g_width,g_height, AV_PIX_FMT_BGR24, 1);
 			memcpy(src_data[0],pBuffer,BufferLen);                    //Y
 			srcH = g_height;
 		}
 
-		//分辨率转换
+		//鍒嗚鲸鐜囪浆鎹�
 		sws_scale(sws, src_data, src_linesize, 0, srcH, dst, dst_linesize);
 		sws_freeContext(sws);
 		av_freep(&src_data[0]); 
@@ -662,7 +662,7 @@ static HRESULT Handle_YUY2_Frame_CallBack(videocap *vcap, BYTE *pBuffer, long Bu
 	char*buffertmp=(char*)malloc(mode_width[vcap->param.cap_mode]*mode_height[vcap->param.cap_mode]*3);
 	char*buffer = NULL;
 
-	//是否需要做分辨率转换
+	//鏄�惁闇€瑕佸仛鍒嗚鲸鐜囪浆鎹�
 	if (used_width == mode_width[vcap->param.cap_mode]){
 		conversionResult = libyuv::ConvertFromI420(m_i420,
 			stride_y,
@@ -888,13 +888,13 @@ static HRESULT STDMETHODCALLTYPE BufferCB(ISampleGrabberCB * This, double Sample
 
 	if (BufferLen != oriLen)
 	{
-		//计算目标图像比例
+		//璁$畻鐩�爣鍥惧儚姣斾緥
 		int srcH;
 		float fDstScale = (float)mode_width[vcap->param.cap_mode]/(float)mode_height[vcap->param.cap_mode];
 		float fSrcScale = (float)g_width/(float)g_height;
 		if (fSrcScale != fDstScale)
 		{
-			//计算偏移量
+			//璁$畻鍋忕Щ閲�
 			int nWidth,nHeight,nOffset=0;
 			if (fSrcScale > fDstScale)
 			{  
@@ -902,12 +902,12 @@ static HRESULT STDMETHODCALLTYPE BufferCB(ISampleGrabberCB * This, double Sample
 			}
 			else if (fSrcScale < fDstScale)
 			{
-				//高度过长
+				//楂樺害杩囬暱
 				nWidth = g_width;
 				nHeight = (int)ceil(g_width/fDstScale);
 				nOffset = (g_height-nHeight)/2*nWidth*3;
 			}
-			//计算等比例变换需要的SWS
+			//璁$畻绛夋瘮渚嬪彉鎹㈤渶瑕佺殑SWS
 			sws=sws_getContext(nWidth,nHeight,AV_PIX_FMT_BGR24, mode_width[vcap->param.cap_mode], mode_height[vcap->param.cap_mode], AV_PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL);
 			av_image_alloc(src_data, src_linesize,g_width,g_height, AV_PIX_FMT_BGR24, 1);
 			memcpy(src_data[0],pBuffer+nOffset,nWidth*nHeight*3);                    //Y
@@ -915,14 +915,14 @@ static HRESULT STDMETHODCALLTYPE BufferCB(ISampleGrabberCB * This, double Sample
 		}
 		else
 		{
-			//计算等比例变换需要的SWS
+			//璁$畻绛夋瘮渚嬪彉鎹㈤渶瑕佺殑SWS
 			sws=sws_getContext(g_width,g_height,AV_PIX_FMT_BGR24, mode_width[vcap->param.cap_mode], mode_height[vcap->param.cap_mode], AV_PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL);
 			av_image_alloc(src_data, src_linesize,g_width,g_height, AV_PIX_FMT_BGR24, 1);
 			memcpy(src_data[0],pBuffer,BufferLen);                    //Y
 			srcH = g_height;
 		}
 
-		//分辨率转换
+		//鍒嗚鲸鐜囪浆鎹�
 		sws_scale(sws, src_data, src_linesize, 0, srcH, dst, dst_linesize);
 		sws_freeContext(sws);
 		av_freep(&src_data[0]); 
@@ -1247,7 +1247,7 @@ int videocap_adj_brightness(videocap_t h, int nValue)
 	if(SUCCEEDED(hr))
 	{
 		long Min, Max, Step, Default, Flags, Val;
-		// 亮度. 
+		// 浜�害. 
 		if(( nValue > 0 )&&(nValue < 100 ))
 		{
 			hr = pProcAmp->GetRange(VideoProcAmp_Brightness, &Min, &Max, &Step,
@@ -1283,7 +1283,7 @@ int videocap_set_autobrightness(videocap_t h)
 	if(SUCCEEDED(hr))
 	{
 		long Min, Max, Step, Default, Flags, Val;
-		// 亮度. 
+		// 浜�害. 
 		hr = pProcAmp->GetRange(VideoProcAmp_Brightness, &Min, &Max, &Step,
 			&Default, &Flags);
 		if(SUCCEEDED(hr))
@@ -1303,7 +1303,7 @@ int videocap_get_brightness(videocap_t h,int*nValue)
 	if(SUCCEEDED(hr))
 	{
 		long Min, Max, Step, Default, Flags, Val;
-		// 亮度. 
+		// 浜�害. 
 		hr = pProcAmp->GetRange(VideoProcAmp_Brightness, &Min, &Max, &Step,
 			&Default, &Flags);
 		if(SUCCEEDED(hr))

+ 3 - 3
Other/win/libvideoframework/videoclock.c

@@ -1,4 +1,4 @@
-#include "precompile.h"
+#include "precompile.h"
 #include "videoclock.h"
 
 #define TIMER_RESOLUTION 1
@@ -86,7 +86,7 @@ static unsigned int __stdcall worker_thread_proc(void* param)
 				seq.HighPart ++;
 			}
 			GetTick(&tick, &tick);
-//no support VideoSendFreq£¨req dynamics fps£©
+//no support VideoSendFreq(req dynamics fps)
 #if 1
 			if (seq.QuadPart * clock->fps_den * 1000 / clock->fps_num < tick.QuadPart - start_tick.QuadPart) {
 				dwTimeout = 0;
@@ -104,7 +104,7 @@ static unsigned int __stdcall worker_thread_proc(void* param)
 			}
 			else if(*clock->nVideoSendFreq== -1)
 			{
-				//ÔÝÍ£·¢ËÍÊÓÆµ
+				//暂���视频
 				dwTimeout = 200000;
 			}
 			else if(*clock->nVideoSendFreq== 0)

+ 6 - 6
Other/win/libvideoframework/videoplayer.c

@@ -1,4 +1,4 @@
-#include "precompile.h"
+锘�#include "precompile.h"
 #include "videoplayer.h"
 
 #define WIN32_LEAN_AND_MEAN
@@ -361,7 +361,7 @@ static void OnMsgTimer_PushMode(videoplayer_t *player, HWND hWnd, UINT msg, WPAR
 {
 	DWORD dwNow = GetTickCount();
 	EnterCriticalSection(&player->q_lock);
-	//获取窗口显示状态
+	//鑾峰彇绐楀彛鏄剧ず鐘舵€�
 	nWindowState = player->on_pull(player, player->user_data,NULL);
 	if (player->q_caching) {
 		OutputDebugStringA("caching\n");
@@ -557,7 +557,7 @@ static LRESULT VideoWndProc(videoplayer_t *player, HWND hWnd, UINT msg, WPARAM w
 		OnMsgClear(player, hWnd, msg, wParam, lParam);
 		break;
 	case WM_TIMER:
-		//是否隐藏本地视频窗口
+		//鏄�惁闅愯棌鏈�湴瑙嗛�绐楀彛
 		if (player->flags & VIDEOPLAYER_FLAG_PULL)
 		{
 			if ((nWindowState == 2)||(nWindowState == 4))
@@ -577,7 +577,7 @@ static LRESULT VideoWndProc(videoplayer_t *player, HWND hWnd, UINT msg, WPARAM w
 				}
 			}
 		}
-		//是否隐藏远端视频窗口
+		//鏄�惁闅愯棌杩滅�瑙嗛�绐楀彛
 		if (player->flags & VIDEOPLAYER_FLAG_PUSH)
 		{
 			if (nWindowState == 2)
@@ -597,7 +597,7 @@ static LRESULT VideoWndProc(videoplayer_t *player, HWND hWnd, UINT msg, WPARAM w
 				}
 			}
 		}
-		//是否将本地窗口放大显示
+		//鏄�惁灏嗘湰鍦扮獥鍙f斁澶ф樉绀�
 		if (((nWindowState==1 && player->cx != 960)&&(bMove==0))&&(player->flags & VIDEOPLAYER_FLAG_PULL)&&(player->flags & VIDEOPLAYER_FLAG_DOUBLESIZE)&&(IsHideLocalWin==0))
 		{
 			GetWindowRect(hWnd, &g_Rect);
@@ -932,7 +932,7 @@ int videoplayer_create(HWND hWndVideo,
 	} else {
 		return -1;
 	}
-	//初始化窗口状态
+	//鍒濆�鍖栫獥鍙g姸鎬�
 	nWindowState = 0;
 	bMove = 0;
 	IsHideRemoteWin = 0;

+ 5 - 5
Other/win/libvideorecord/WmvWriter.cpp

@@ -1,4 +1,4 @@
-// WmvWriter.cpp: implementation of the WmvWriter class.
+锘�// WmvWriter.cpp: implementation of the WmvWriter class.
 //
 //////////////////////////////////////////////////////////////////////
 #include "stdafx.h"
@@ -34,7 +34,7 @@ CWmvWriter::~CWmvWriter()
 	SAFE_RELEASE(m_pTextSample);
 }
 
-//////公共调用接口
+//////鍏�叡璋冪敤鎺ュ彛
 
 HRESULT CWmvWriter::InitWriter(int width,int height,int nfps,int nSanplePsec,int nchannels,int nBitPerSample,
 								int nmaxspacing,int nquality,int nOutBitRate, int iAudioType)
@@ -104,7 +104,7 @@ HRESULT CWmvWriter::SetInfo(BSTR filename,int width,int height,int colorbit,int
 HRESULT CWmvWriter::Start()
 {
 	HRESULT hr = S_OK;
-	//设置开始时间戳
+	//璁剧疆寮€濮嬫椂闂存埑
 	SYSTEMTIME st;
 	FILETIME ft;
 	GetSystemTime(&st);
@@ -194,7 +194,7 @@ HRESULT CWmvWriter::ReceiveText(char*text,DWORD len)
 	RETURN_IF_FAILED(hr);
 	return hr;
 }
-//////内部成员函数
+//////鍐呴儴鎴愬憳鍑芥暟
 
 HRESULT CWmvWriter::SetSysProfile(REFGUID guid)
 {
@@ -479,7 +479,7 @@ HRESULT CWmvWriter::CreateProfile(int width,int height,int nfps,int nSanplePsec,
 				(BYTE*) &level, dwSize);
 
 #ifdef _ENABLE_VBR_
-			//使用VBR
+			//浣跨敤VBR
 			BOOL vbrEnabled = TRUE;
 			dwSize = sizeof(BOOL);
 			hr2 = pVault->SetProperty(g_wszVBREnabled, WMT_TYPE_BOOL,

+ 6 - 6
Other/win/libvideorecord/WmvWriter.h

@@ -1,4 +1,4 @@
-// WmvWriter.h: interface for the WmvWriter class.
+锘�// WmvWriter.h: interface for the WmvWriter class.
 //
 //////////////////////////////////////////////////////////////////////
 
@@ -18,7 +18,7 @@ class CWmvWriter
 public:
 	CWmvWriter();
 	virtual ~CWmvWriter();
-private://内部成员变量
+private://鍐呴儴鎴愬憳鍙橀噺
 	IWMProfileManager *	mProfileManager;
 	IWMProfile *		mProfile;
 	IWMWriter *m_pWriter;
@@ -36,7 +36,7 @@ private://
 	DWORD m_AudioInputNum;
 	DWORD m_ScriptInputNum;
 	//CLogFile*log;
-private: //公共调用接口
+private: //鍏�叡璋冪敤鎺ュ彛
 	HRESULT InitWriter(int width,int height,int nfps,int nSanplePsec,int nchannels,int nBitPerSample,
 		               int nmaxspacing,int nquality,int nOutBitRate, int iAudioType);
 	HRESULT SetInfo(BSTR filename,int width,int height,int colorbit,int nSanplePsec,int nchannels,int nBitPerSample);
@@ -45,8 +45,8 @@ private: //
 	HRESULT ReceiveVideo(BYTE*pData,DWORD len);
 	HRESULT ReceiveAudio(BYTE*pData,DWORD len);
 	HRESULT ReceiveText(char*text,DWORD len);
-private://内部成员函数
-	HRESULT SetSysProfile(REFGUID guid);//设置系统生成器配置
+private://鍐呴儴鎴愬憳鍑芥暟
+	HRESULT SetSysProfile(REFGUID guid);//璁剧疆绯荤粺鐢熸垚鍣ㄩ厤缃�
 	HRESULT SetProfile(IWMProfile*pProfile);
 	HRESULT ConfigAudioInput();
 	HRESULT ConfigAudioInput(GUID guidSubType, WAVEFORMATEX * inWave);
@@ -60,7 +60,7 @@ private://
 	BOOL IsCodecAvailable(GUID inMajortype, GUID inSubtype, BYTE ** outMt);
 	HRESULT GetMediaTypeDetails(IWMMediaProps * pProps, BYTE** outDetails);
 	HRESULT wmCopyMediaType(WM_MEDIA_TYPE** ppmtDest, WM_MEDIA_TYPE* pmtSrc);
-	QWORD GetTimeStamp();//得到当前时间戳
+	QWORD GetTimeStamp();//寰楀埌褰撳墠鏃堕棿鎴�
 	HRESULT ConnectionStreamType(WCHAR * inConnectionName, GUID* outType);
 public:
 	bool InitWmvWriter(char* filename,int width,int height,int colorbit,int nfps,

+ 6 - 6
Other/win/libvideorecord/stdafx.h

@@ -1,17 +1,17 @@
-// stdafx.h : 标准系统包含文件的包含文件,
-// 或是经常使用但不常更改的
-// 特定于项目的包含文件
+锘�// stdafx.h : 鏍囧噯绯荤粺鍖呭惈鏂囦欢鐨勫寘鍚�枃浠讹紝
+// 鎴栨槸缁忓父浣跨敤浣嗕笉甯告洿鏀圭殑
+// 鐗瑰畾浜庨」鐩�殑鍖呭惈鏂囦欢
 //
 
 #pragma once
 
 #include "targetver.h"
 #ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN             //  从 Windows 头文件中排除极少使用的信息
+#define WIN32_LEAN_AND_MEAN             //  浠� Windows 澶存枃浠朵腑鎺掗櫎鏋佸皯浣跨敤鐨勪俊鎭�
 #endif //WIN32_LEAN_AND_MEAN
-// Windows 头文件:
+// Windows 澶存枃浠�:
 #include <windows.h>
 
 
 
-// TODO: 在此处引用程序需要的其他头文件
+// TODO: 鍦ㄦ�澶勫紩鐢ㄧ▼搴忛渶瑕佺殑鍏朵粬澶存枃浠�

+ 4 - 4
Other/win/libvideorecord/targetver.h

@@ -1,8 +1,8 @@
-#pragma once
+锘�#pragma once
 
-// 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
+// 鍖呮嫭 SDKDDKVer.h 灏嗗畾涔夊彲鐢ㄧ殑鏈€楂樼増鏈�殑 Windows 骞冲彴銆�
 
-// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
-// WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
+// 濡傛灉瑕佷负浠ュ墠鐨� Windows 骞冲彴鐢熸垚搴旂敤绋嬪簭锛岃�鍖呮嫭 WinSDKVer.h锛屽苟灏�
+// WIN32_WINNT 瀹忚�缃�负瑕佹敮鎸佺殑骞冲彴锛岀劧鍚庡啀鍖呮嫭 SDKDDKVer.h銆�
 
 #include <SDKDDKVer.h>

+ 8 - 8
Other/win/libwmpplayer/libwmpplayer.cpp

@@ -1,4 +1,4 @@
-#include "stdafx.h"
+锘�#include "stdafx.h"
 #include "libwmpplayer.h"
 #include "CPlayerDlg.h"
 #include <Windows.h>
@@ -16,14 +16,14 @@ private:
 	CWmpHostApi *m_pHostApi;
 	BOOL m_bIsPlay;
 
-	HANDLE h_WMPCreateEvent;	// 播放器创建事件
+	HANDLE h_WMPCreateEvent;	// 鎾�斁鍣ㄥ垱寤轰簨浠�
 	HANDLE h_WMPPlayEndEvent;
-	bool m_bWMPCreating;		// 是否播放器正在创建中
+	bool m_bWMPCreating;		// 鏄�惁鎾�斁鍣ㄦ�鍦ㄥ垱寤轰腑
 
 
 	VOID PlayDlg()
 	{
-		// 参数检查
+		// 鍙傛暟妫€鏌�
 		if (!_stricmp(m_stPlayConfig.strRootPath, ""))
 			return;
 		switch (m_stPlayConfig.eMode)
@@ -74,7 +74,7 @@ private:
 		m_pDlg = NULL;
 		if (nResponse == IDCANCEL)
 		{
-			// 表示是执行OnCancel或OnClose或StopPlay关闭的
+			// 琛ㄧず鏄�墽琛孫nCancel鎴朞nClose鎴朣topPlay鍏抽棴鐨�
 			CloseHandle(m_hPlayThread);
 			m_hPlayThread = NULL;
 		}
@@ -122,7 +122,7 @@ public:
 		}
 	}
 
-	// 按分隔符分隔字符串
+	// 鎸夊垎闅旂�鍒嗛殧瀛楃�涓�
 	void CStringSplit(char *str, char **result, const char *del)
 	{
 		char *p = strtok(str, del);
@@ -272,7 +272,7 @@ public:
 			//m_pHostApi->WmpDebug("Load WmpConfiguration succeeded while play local audio!");
 			//m_pHostApi->WmpDebug("m_stPlayConfig.strRootPath: %s", m_stPlayConfig.strRootPath);
 		}
-		// 切分音频文件名
+		// 鍒囧垎闊抽�鏂囦欢鍚�
 		char *Tmp = new char[strlen(pAudioNames)+1];
 		strcpy(Tmp, pAudioNames);
 		char *Result[MAX_FILECOUNT] = { NULL };
@@ -344,7 +344,7 @@ public:
 			//m_pHostApi->WmpDebug("m_stPlayConfig.strRootPath: %s", m_stPlayConfig.strRootPath);
 		}
 
-		// 判断当前时间是否允许播放
+		// 鍒ゆ柇褰撳墠鏃堕棿鏄�惁鍏佽�鎾�斁
 		SYSTEMTIME st;
 		GetLocalTime(&st);
 		TCHAR strNow[TIME_LEN];