Merge pull request #83 from yuanyuanxiang/dev

Add static ffmpeg libraries to build Win64 master
This commit is contained in:
yuanyuanxiang
2025-04-19 21:07:01 +08:00
committed by GitHub
8 changed files with 16 additions and 9 deletions

BIN
compress/libavcodec_x64.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
compress/libavutil_x64.lib Normal file

Binary file not shown.

BIN
compress/libavutil_x64d.lib Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -27,10 +27,13 @@ IMPLEMENT_DYNAMIC(CScreenSpyDlg, CDialog)
#define ALGORITHM_DIFF 1 #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) CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJECT* ContextObject)
: CDialog(CScreenSpyDlg::IDD, Parent) : CDialog(CScreenSpyDlg::IDD, Parent)
{ {
#ifndef _WIN64
m_pCodec = nullptr; m_pCodec = nullptr;
m_pCodecContext = nullptr; m_pCodecContext = nullptr;
memset(&m_AVPacket, 0, sizeof(AVPacket)); 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)); succeed = (0 == avcodec_open2(m_pCodecContext, m_pCodec, 0));
} }
} }
#endif
m_FrameID = 0; m_FrameID = 0;
ImmDisableIME(0);// 禁用输入法 ImmDisableIME(0);// 禁用输入法
m_bFullScreen = FALSE; m_bFullScreen = FALSE;
@@ -102,7 +104,6 @@ CScreenSpyDlg::~CScreenSpyDlg()
{ {
m_BitmapData_Full = NULL; m_BitmapData_Full = NULL;
} }
#ifndef _WIN64
if (m_pCodecContext) if (m_pCodecContext)
{ {
avcodec_free_context(&m_pCodecContext); avcodec_free_context(&m_pCodecContext);
@@ -112,7 +113,6 @@ CScreenSpyDlg::~CScreenSpyDlg()
m_pCodec = 0; m_pCodec = 0;
// AVFrame需要清除 // AVFrame需要清除
av_frame_unref(&m_AVFrame); av_frame_unref(&m_AVFrame);
#endif
} }
void CScreenSpyDlg::DoDataExchange(CDataExchange* pDX) void CScreenSpyDlg::DoDataExchange(CDataExchange* pDX)
@@ -364,7 +364,6 @@ VOID CScreenSpyDlg::DrawNextScreenDiff(bool keyFrame)
bool CScreenSpyDlg::Decode(LPBYTE Buffer, int size) { bool CScreenSpyDlg::Decode(LPBYTE Buffer, int size) {
#ifndef _WIN64
// 解码数据. // 解码数据.
av_init_packet(&m_AVPacket); av_init_packet(&m_AVPacket);
@@ -404,7 +403,6 @@ bool CScreenSpyDlg::Decode(LPBYTE Buffer, int size) {
else { else {
Mprintf("avcodec_send_packet failed with error: %d\n", err); Mprintf("avcodec_send_packet failed with error: %d\n", err);
} }
#endif
return false; return false;
} }

View File

@@ -17,7 +17,18 @@ extern "C"
#pragma comment(lib,"libyuv/libyuv.lib") #pragma comment(lib,"libyuv/libyuv.lib")
#else #else
// ȱ<><C8B1>`FFMPEG`<60><>̬<EFBFBD><EFBFBD><E2A3AC>ʱ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>64λ<34><CEBB><EFBFBD><EFBFBD>! #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 #endif
#pragma comment(lib, "Mfplat.lib") #pragma comment(lib, "Mfplat.lib")
@@ -78,12 +89,10 @@ public:
WINDOWPLACEMENT m_struOldWndpl; WINDOWPLACEMENT m_struOldWndpl;
#ifndef _WIN64
AVCodec* m_pCodec; AVCodec* m_pCodec;
AVCodecContext* m_pCodecContext; AVCodecContext* m_pCodecContext;
AVPacket m_AVPacket; AVPacket m_AVPacket;
AVFrame m_AVFrame; AVFrame m_AVFrame;
#endif
bool Decode(LPBYTE Buffer, int size); bool Decode(LPBYTE Buffer, int size);
void EnterFullScreen(); void EnterFullScreen();