diff --git a/compress/libavcodec_x64.lib b/compress/libavcodec_x64.lib new file mode 100644 index 0000000..01ca008 Binary files /dev/null and b/compress/libavcodec_x64.lib differ diff --git a/compress/libavcodec_x64d.lib b/compress/libavcodec_x64d.lib new file mode 100644 index 0000000..c4d80db Binary files /dev/null and b/compress/libavcodec_x64d.lib differ diff --git a/compress/libavutil_x64.lib b/compress/libavutil_x64.lib new file mode 100644 index 0000000..31b5d81 Binary files /dev/null and b/compress/libavutil_x64.lib differ diff --git a/compress/libavutil_x64d.lib b/compress/libavutil_x64d.lib new file mode 100644 index 0000000..48d644a Binary files /dev/null and b/compress/libavutil_x64d.lib differ diff --git a/compress/libswresample_x64.lib b/compress/libswresample_x64.lib new file mode 100644 index 0000000..c7faeed Binary files /dev/null and b/compress/libswresample_x64.lib differ diff --git a/compress/libswresample_x64d.lib b/compress/libswresample_x64d.lib new file mode 100644 index 0000000..a88948a Binary files /dev/null and b/compress/libswresample_x64d.lib differ diff --git a/server/2015Remote/ScreenSpyDlg.cpp b/server/2015Remote/ScreenSpyDlg.cpp index 30632ac..38d4b1a 100644 --- a/server/2015Remote/ScreenSpyDlg.cpp +++ b/server/2015Remote/ScreenSpyDlg.cpp @@ -27,10 +27,13 @@ IMPLEMENT_DYNAMIC(CScreenSpyDlg, CDialog) #define ALGORITHM_DIFF 1 +extern "C" void* x265_api_get_192() { return nullptr; } + +extern "C" char* __imp_strtok(char* str, const char* delim) { return strtok(str, delim); } + CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJECT* ContextObject) : CDialog(CScreenSpyDlg::IDD, Parent) { -#ifndef _WIN64 m_pCodec = nullptr; m_pCodecContext = nullptr; memset(&m_AVPacket, 0, sizeof(AVPacket)); @@ -45,7 +48,6 @@ CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJEC succeed = (0 == avcodec_open2(m_pCodecContext, m_pCodec, 0)); } } -#endif m_FrameID = 0; ImmDisableIME(0);// 禁用输入法 m_bFullScreen = FALSE; @@ -102,7 +104,6 @@ CScreenSpyDlg::~CScreenSpyDlg() { m_BitmapData_Full = NULL; } -#ifndef _WIN64 if (m_pCodecContext) { avcodec_free_context(&m_pCodecContext); @@ -112,7 +113,6 @@ CScreenSpyDlg::~CScreenSpyDlg() m_pCodec = 0; // AVFrame需要清除 av_frame_unref(&m_AVFrame); -#endif } void CScreenSpyDlg::DoDataExchange(CDataExchange* pDX) @@ -364,7 +364,6 @@ VOID CScreenSpyDlg::DrawNextScreenDiff(bool keyFrame) bool CScreenSpyDlg::Decode(LPBYTE Buffer, int size) { -#ifndef _WIN64 // 解码数据. av_init_packet(&m_AVPacket); @@ -404,7 +403,6 @@ bool CScreenSpyDlg::Decode(LPBYTE Buffer, int size) { else { Mprintf("avcodec_send_packet failed with error: %d\n", err); } -#endif return false; } diff --git a/server/2015Remote/ScreenSpyDlg.h b/server/2015Remote/ScreenSpyDlg.h index db151a5..cac0508 100644 --- a/server/2015Remote/ScreenSpyDlg.h +++ b/server/2015Remote/ScreenSpyDlg.h @@ -17,7 +17,18 @@ extern "C" #pragma comment(lib,"libyuv/libyuv.lib") #else -// ȱ`FFMPEG`̬⣬ʱ޷64λ! +#pragma comment(lib,"x264/libx264_x64.lib") +#pragma comment(lib,"libyuv/libyuv_x64.lib") +// https://github.com/ShiftMediaProject/FFmpeg +#ifdef _DEBUG +#pragma comment(lib,"libavcodec_x64d.lib") +#pragma comment(lib,"libavutil_x64d.lib") +#pragma comment(lib,"libswresample_x64d.lib") +#else +#pragma comment(lib,"libavcodec_x64.lib") +#pragma comment(lib,"libavutil_x64.lib") +#pragma comment(lib,"libswresample_x64.lib") +#endif #endif #pragma comment(lib, "Mfplat.lib") @@ -78,12 +89,10 @@ public: WINDOWPLACEMENT m_struOldWndpl; -#ifndef _WIN64 AVCodec* m_pCodec; AVCodecContext* m_pCodecContext; AVPacket m_AVPacket; AVFrame m_AVFrame; -#endif bool Decode(LPBYTE Buffer, int size); void EnterFullScreen();