рд╣рдорд╛рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝реА, рд╣рдорд╛рд░реЗ рд░рд┐рдХреЙрд░реНрдб рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ

рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рдХрд░рд┐рдпрд░ рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рдордВрдЪ-рдирд┐рд░реНрднрд░ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рджреВрд░ рд░рд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд░реЗрдбреА рдУрдкрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдореБрдЭреЗ рдордВрдЪ рд╕реЗ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреНрдпреВрдЯреА, рдбрдмреНрд▓реНрдпреВрдПрдХреНрд╕рд╡рд┐рджреЗрдЯреНрд╕, рдПрд╕рдбреАрдПрд▓, рдПрд╕реАрдИ, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реА рдорджрдж рдХреАред рдЖрджрд┐ рдореБрдЭреЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг, C ++ рдФрд░ рдПрдХ рдЕрдиреНрдп рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рдерд╛ред

рд▓реЗрдХрд┐рди рднрд╛рдЧреНрдп рдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рднреЗрдЬрд╛, рдЬрд┐рд╕рдХреА рдмрджреМрд▓рдд рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - DirectShow рд╕реЗ рдореАрдбрд┐рдпрд╛ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреА рдУрд░ рдмрдврд╝рдирд╛ред рджреЛрдиреЛрдВ рдЪреМрдЦрдЯреЗ рд╡рд┐рднрд┐рдиреНрди рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ, рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк, рдХреЛрдбреЗрдХреНрд╕, рд╕реНрдЯреНрд░реАрдо рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рдореАрдбрд┐рдпрд╛ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ DirectShow рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореБрдЦреНрдп рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирдП рд╡рд┐рдВрдбреЛрдЬ 8 рдореЗрдВ, DirectShow рдХреЗ рд╕рд╛рде рдореЗрдЯреНрд░реЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдХрджрдо рдХрд╛ рдХрд╛рд░рдг рдерд╛ред рдореИрдВ рд▓рдЧрднрдЧ 10 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд╢реВ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдЪрд▓рддреЗ-рдлрд┐рд░рддреЗ рдЯреЗрдХреНрд╕рдЪрд░ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рднрд░рд╡рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рд╣рдордиреЗ рдЗрд╕реЗ рдирд┐рдкрдЯрд╛ рджрд┐рдпрд╛ред рдФрд░, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдЬреИрд╕реЗ рдХрд┐ рд╡реАрдбрд┐рдпреЛрд▓реИрди, рдПрдлрдПрдлрдПрдордкреАрдкреА, рдлреЛрдирди, рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдФрд░ рдЕрдм рдпрд╛рд░реЛрд╕реНрд▓рд╛рд╡рдирд╛ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЛрдирд╛ред рдХреНрдпреЛрдВ, рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рдореАрдбрд┐рдпрд╛ рдлрд╛рдЙрдВрдбреЗрд╢рди рдореЗрдВ рдЙрд▓рдЭрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдФрд░ рдЖрдкрдиреЗ рдореЗрдЯреНрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ DirectShow рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреНрдпреЛрдВ рд░рджреНрдж рдХрд░ рджреА? рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореАрдбрд┐рдпрд╛ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЛ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╕ рдХреЛрдИ рд╕рдордЭрджрд╛рд░ рдЙрджрд╛рд╣рд░рдг рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИрдВ! рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдб рдХреА рдПрдХ рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рдПрдХ рднрдпрд╛рдирдХ рдЧреИрд░-рдорд╛рдирд╡ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВред рд╡рд╣рд╛рдВ рд╕реЗ рдореАрдбрд┐рдпрд╛ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреМрд╢рд▓ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ? рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдХреИрдорд░реЗ рд╕реЗ рдХреИрдкреНрдЪрд░ рдХреА рдЧрдИ рдзрд╛рд░рд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:

HRESULT CaptureManager::SetDevice(HWND hwndPreview, IUnknown *pUnkVideo) { DestroyCaptureEngine(); m_pCallback = new (std::nothrow) CaptureEngineCB(m_hwndEvent); if (m_pCallback == NULL) { return E_OUTOFMEMORY; } m_hwndPreview = hwndPreview; //Create a D3D Manager HRESULT hr = CreateD3DManager(); IMFAttributes *pAttributes = NULL; if(SUCCEEDED(hr)) { hr = MFCreateAttributes(&pAttributes, 1); } if(SUCCEEDED(hr)) { hr = pAttributes->SetUnknown(MF_CAPTURE_ENGINE_D3D_MANAGER, g_pDXGIMan); } // Create the factory object for the capture engine. IMFCaptureEngineClassFactory *pFactory = NULL; if(SUCCEEDED(hr)) { hr = CoCreateInstance(CLSID_MFCaptureEngineClassFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pFactory)); } if (SUCCEEDED(hr)) { // Create and initialize the capture engine. hr = pFactory->CreateInstance(CLSID_MFCaptureEngine, IID_PPV_ARGS(&m_pEngine)); if (SUCCEEDED(hr)) { hr = m_pEngine->Initialize(m_pCallback, pAttributes, NULL, pUnkVideo); } pFactory->Release(); pAttributes->Release(); } return hr; } 

рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ "рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЙрдкрдХрд░рдг рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ"ред
21 рд╡реАрдВ рд╕рджреА рдореЗрдВ, рдРрд╕реЗ рд░рд╛рдХреНрд╖рд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд░рд╣рдирд╛ рд╣реИ?

рдпрд╛ рдпрд╣рд╛рдБ рдПрдХ рдирдореВрдирд╛ рдкреНрд░рд▓реЗрдЦрди рд╣реИред IAdvancedMediaCaptureInitializationSettings рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдХреНрдпрд╛ рд╣реИ "рдЙрдиреНрдирдд рдореАрдбрд┐рдпрд╛ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░рдВрднреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ"? рдХреВрд▓, рдФрд░ рдХреНрдпрд╛? рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд╛рдо рдмрд╣реБрдд рдЖрд╢рд╛рдЬрдирдХ рд╣реИред рдХреНрдпрд╛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдзрд┐ рд╣реИ? рд▓реЛрдЧ рдПрдХ рдирдИ рдзреБрд░реА рдХреЗ рддрд╣рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЬрд▓реНрджреА рдореЗрдВ рд╣реИрдВ рдФрд░ рдРрд╕реЗ рд╡рд┐рдХрд╛рд╕ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрдиреА рд▓рдХреАрд░реЗрдВ рддреЛрдбрд╝реЗрдВрдЧреЗ? рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд▓рд┐рдЦрдХрд░ рдПрдХ рд╡реЗрдм рдХреИрдорд░рд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ DirectShow рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ 90 рдХреЗ рджрд╢рдХ рдореЗрдВ рдРрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреЗрдЦреЗ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕, рдбреЗрд╡рд▓рдкрд░реНрд╕, рдбреЗрд╡рд▓рдкрд░реНрд╕?

рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрднрд╡реА рд╣реИ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ, рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдЦреБрд▓реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдореБрдлреНрдд рд░реЛрдЯрд┐рдпреЛрдВ рдкрд░ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рддреНрд╡рд░рд┐рдд рд╣реИ, рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдмрдбрд╝реА рдирд┐рдЧрдо рдХреА рдПрдХ рдмрдбрд╝реА рдЧрд▓рддреА рд╣реИ?

Source: https://habr.com/ru/post/In150423/


All Articles