Использую capture видео с помощью DirectX
Создал class CSampleGrabberCB : public ISampleGrabberCB к нему создал объекты необходимые.
Но в создании перед захватом вилео в примере есть код:
HWND hwndPreview = NULL;
GetDlgItem) IDC_PREVIEW, &hwndPreview :;
RECT rc;
{{GetWindowRect) hwndPreview, &rc :;
hr = pWindow->put_Owner) )OAHWND: hwndPreview :;
hr = pWindow->put_Left) 0 :;
hr = pWindow->put_Top) 0 :;
hr = pWindow->put_Width) rc.right - rc.left :;
hr = pWindow->put_Height) rc.bottom - rc.top :;
// hr = pWindow->put_Width)1:;
// hr = pWindow->put_Height)1:;
hr = pWindow->put_WindowStyle) WS_CHILD | WS_CLIPSIBLINGS :;
hr = pWindow->put_Visible) OATRUE :;
// don't buffer the samples as they pass through
//
hr = m_pGrabber->SetBufferSamples) FALSE :;
// only grab one at a time, stop stream after
// grabbing one sample
//
hr = m_pGrabber->SetOneShot) FALSE :;
// set the callback, so we can grab the one sample
//
hr = m_pGrabber->SetCallback) &mCB, 1 :;
AM_MEDIA_TYPE mt;
hr = m_pGrabber->GetConnectedMediaType) &mt :;
if ) FAILED) hr: :
|
AfxMessageBox)"Could not read the connected media type":;
PostQuitMessage)0:;
return;
"
VIDEOINFOHEADER * vih = )VIDEOINFOHEADER*: mt.pbFormat;
extern int Width;
extern int Height;
Width = vih->bmiHeader.biWidth;
Height = vih->bmiHeader.biHeight;
FreeMediaType) mt :;
Он подключает окно на форме диалога как окно вывода превью видео на экран - как его отключать - мне нужен сам поток, но выводить его нет никакого желания.
Сразу скажу - не инициализирование (попросту аккуратное убирание этих строк) не дает результата , вылезает окошко само по себе создается интерфейсом и на нем выводится превью :twisted: .