减少捕获音视频时申请内存次数

减少音频视频捕获过程中频繁申请内存。
This commit is contained in:
yuanyuanxiang
2019-01-22 20:44:23 +08:00
parent 4283a31e66
commit bd7b9ed492
11 changed files with 63 additions and 36 deletions

View File

@@ -12,18 +12,20 @@ CSampleGrabberCB mCB;
CCaptureVideo::CCaptureVideo()
{
if(FAILED(CoInitialize(NULL)))
if(FAILED(CoInitialize(NULL)))
{
return;
}
m_pCapture = NULL;
m_pGB = NULL;
m_pMC = NULL;
m_pVW = NULL;
m_pVW = NULL;
m_bExit = FALSE;
}
CCaptureVideo::~CCaptureVideo()
{
m_bExit = TRUE;
if(m_pMC)m_pMC->StopWhenReady();
if(m_pVW){
m_pVW->put_Visible(OAFALSE);
@@ -55,7 +57,7 @@ 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); //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
IID_ISampleGrabber, (void**)&m_pGrabber); //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
if(FAILED(hResult))
break;
@@ -258,10 +260,9 @@ LPBYTE CCaptureVideo::GetDIB(DWORD& dwSize)
{
if (mCB.bStact==CMD_CAN_SEND) //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>һ<EFBFBD>·<EFBFBD><C2B7>͵<EFBFBD>״̬
{
szBuffer = mCB.GetNextScreen(dwSize);//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
szBuffer = mCB.GetNextScreen(dwSize);
}
} while (szBuffer==NULL);
} while (szBuffer==NULL && !m_bExit);
return szBuffer;
}