style: Change files encoding format to UTF8-BOM

This commit is contained in:
yuanyuanxiang
2026-01-02 20:00:18 +01:00
parent ba9be08411
commit b6af9ce615
356 changed files with 2819 additions and 2819 deletions

View File

@@ -1,4 +1,4 @@
// CaptureVideo.cpp: implementation of the CCaptureVideo class.
// CaptureVideo.cpp: implementation of the CCaptureVideo class.
//
//////////////////////////////////////////////////////////////////////
@@ -57,13 +57,13 @@ HRESULT CCaptureVideo::Open(int iDeviceID,int iPress)
hResult = m_pGB->AddFilter(m_pBF, L"Capture Filter");
hResult = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
IID_ISampleGrabber, (void**)&m_pGrabber); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
IID_ISampleGrabber, (void**)&m_pGrabber); //引脚内存
if(FAILED(hResult))
break;
//m_pGrabber <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD>ʽ 2 <EFBFBD>ڴ滺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
CComQIPtr<IBaseFilter, &IID_IBaseFilter> pGrabBase(m_pGrabber);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ʽ
AM_MEDIA_TYPE mt; //<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ʽ
//m_pGrabber 属性设置 1 格式 2 内存缓冲形式
CComQIPtr<IBaseFilter, &IID_IBaseFilter> pGrabBase(m_pGrabber);//设置视频格式
AM_MEDIA_TYPE mt; //视频格式
ZeroMemory(&mt, sizeof(AM_MEDIA_TYPE));
mt.majortype = MEDIATYPE_Video;
mt.subtype = MEDIASUBTYPE_RGB24; // MEDIASUBTYPE_RGB24
@@ -77,10 +77,10 @@ HRESULT CCaptureVideo::Open(int iDeviceID,int iPress)
if(FAILED(hResult))
break;
hResult = m_pCapture->RenderStream(&PIN_CATEGORY_PREVIEW, //<EFBFBD><EFBFBD>̬
hResult = m_pCapture->RenderStream(&PIN_CATEGORY_PREVIEW, //静态
&MEDIATYPE_Video,m_pBF,pGrabBase,NULL);
if(FAILED(hResult)) {
//<EFBFBD><EFBFBD>׽
//扑捉
hResult = m_pCapture->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,m_pBF,pGrabBase,NULL);
break;
}
@@ -93,28 +93,28 @@ HRESULT CCaptureVideo::Open(int iDeviceID,int iPress)
if (FAILED(hResult))
break;
//3 <EFBFBD><EFBFBD>׽<EFBFBD><EFBFBD><EFBFBD><EFBFBD> FDO һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݾͽ<DDBE><CDBD><EFBFBD> <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
//3 扑捉数据 FDO 一旦有数据就进行 回调函数调用 属于一个类
VIDEOINFOHEADER * vih = (VIDEOINFOHEADER*) mt.pbFormat;
//mCB <EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> <20>и<EFBFBD><D0B8>ص<EFBFBD>
//mCB 是个另外一个类 并且全局变量 有个回调
mCB.m_ulFullWidth = vih->bmiHeader.biWidth;
mCB.m_ulFullHeight = vih->bmiHeader.biHeight;
FreeMediaType(mt);
hResult = m_pGrabber->SetBufferSamples( FALSE ); //<EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
hResult = m_pGrabber->SetBufferSamples( FALSE ); //回调函数
hResult = m_pGrabber->SetOneShot( FALSE );
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ҳ<><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ʱ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BufferCB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//设置视频捕获回调函数 也就是如果有视频数据时就会调用这个类的BufferCB函数
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>OnTimer
//返回OnTimer
hResult = m_pGrabber->SetCallback(&mCB, 1);
m_hWnd = CreateWindow("#32770", "", WS_POPUP, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
SetupVideoWindow(); //<EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>
SetupVideoWindow(); //屏蔽窗口
hResult = m_pMC->Run(); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
hResult = m_pMC->Run(); //开灯
if(FAILED(hResult))
break;
@@ -129,19 +129,19 @@ HRESULT CCaptureVideo::Open(int iDeviceID,int iPress)
HRESULT CCaptureVideo::InitCaptureGraphBuilder()
{
HRESULT hResult = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC,
IID_ICaptureGraphBuilder2, (void**)&m_pCapture); //<EFBFBD><EFBFBD>ʵ<EFBFBD>
IID_ICaptureGraphBuilder2, (void**)&m_pCapture); //真实设备
if (FAILED(hResult)) {
return hResult;
}
hResult=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void**)&m_pGB); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IID_IGraphBuilder, (void**)&m_pGB); //虚拟设备
if (FAILED(hResult)) {
return hResult;
}
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰󶨵<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//将过滤绑定到真实设备上面
m_pCapture->SetFiltergraph(m_pGB);
hResult = m_pGB->QueryInterface(IID_IMediaControl,(LPVOID*)&m_pMC);
if (FAILED(hResult)) {
@@ -157,7 +157,7 @@ HRESULT CCaptureVideo::InitCaptureGraphBuilder()
LPBITMAPINFO CCaptureVideo::GetBmpInfor()
{
return mCB.GetBmpInfor(); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λͼ<EFBFBD>ڴ<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return mCB.GetBmpInfor(); //构建位图内存头和数据
}
BOOL CCaptureVideo::BindVideoFilter(int deviceId, IBaseFilter **pFilter)
@@ -181,7 +181,7 @@ BOOL CCaptureVideo::BindVideoFilter(int deviceId, IBaseFilter **pFilter)
int index = 0;
while(hr = pEm->Next(1, &pM, &cFetched), hr==S_OK, index <= deviceId) {
IPropertyBag *pBag;
//ͨ<EFBFBD><EFBFBD>BindToStorage <EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ʶ<EFBFBD><EFBFBD>
//通过BindToStorage 可以访问该设备的标识集
hr = pM->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
if(SUCCEEDED(hr)) {
VARIANT var;
@@ -193,7 +193,7 @@ BOOL CCaptureVideo::BindVideoFilter(int deviceId, IBaseFilter **pFilter)
}
SysFreeString(var.bstrVal);
}
pBag->Release(); //<EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>--
pBag->Release(); //引用计数--
}
pM->Release();
index++;
@@ -233,11 +233,11 @@ void CCaptureVideo::ResizeVideoWindow()
if (m_pVW) {
RECT rc;
::GetClientRect(m_hWnd,&rc);
m_pVW->SetWindowPosition(0, 0, rc.right, rc.bottom); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>0 0 0 0 <EFBFBD><EFBFBD>
m_pVW->SetWindowPosition(0, 0, rc.right, rc.bottom); //将窗口设置到0 0 0 0
}
}
void CCaptureVideo::SendEnd() //<EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
void CCaptureVideo::SendEnd() //发送结束 设置可以再取数据
{
InterlockedExchange((LPLONG)&mCB.bStact,CMD_CAN_COPY);
}
@@ -245,10 +245,10 @@ void CCaptureVideo::SendEnd() //
LPBYTE CCaptureVideo::GetDIB(DWORD& dwSize)
{
BYTE *szBuffer = NULL;
int n = 200; // 10sû<EFBFBD>л<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>NULL
int n = 200; // 10s没有获取到数据则返回NULL
do {
if (mCB.bStact==CMD_CAN_SEND) { //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>·<EFBFBD><EFBFBD>͵<EFBFBD>״̬
if (szBuffer = mCB.GetNextScreen(dwSize)) //<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
if (mCB.bStact==CMD_CAN_SEND) { //这里改变了一下发送的状态
if (szBuffer = mCB.GetNextScreen(dwSize)) //是否获取到视频
break;
}
Sleep(50);