Привет всем.
Помогите плз
Задача: Есть камера подключенная к видео входу видеокарты. Работает в режиме Preview при нажатии кнопки надо получить один кадр изображения, для последующей обработки.
Режим Preview работает, а кадр получить не могу. Пробовал разбираться со стандартным примером DirectShow/Editing/StillCap. Во время запуска в режиме грабенья в .bmp выдает ошибку Can't run Graph
CComQIPtr< IMediaControl, &IID_IMediaControl > pControl = m_pGraph;
hr = pControl->Run( );
if( FAILED( hr ) )
{
Error( "Could not run graph" );
return hr;
}
Если заменить чуть выше
IPin * pGrabOut = GetOutPin( pGrabBase, 0 );
hr = m_pGraph->Render( pGrabOut );
if( FAILED( hr ) )
{
Error( "Could not render sample grabber output pin" );
return hr;
}
на
CComPtr< ICaptureGraphBuilder2 > m_pGraph2;
hr = m_pGraph2->RenderStream( &PIN_CATEGORY_PREVIEW,
&MEDIATYPE_Video,
pCap,
NULL,
NULL );
if( FAILED( hr ) )
{
Error( "Could not render capture pin" );
return hr;
}
то граф запускается, но в окне где должна быть прорисована bitmap её нет и на диске StillCap0000.bmp пустой.
короче ничего не понятно
что делать?
GP>Задача: Есть камера подключенная к видео входу видеокарты. Работает в режиме Preview при нажатии кнопки надо получить один кадр изображения, для последующей обработки. GP>Режим Preview работает, а кадр получить не могу. Пробовал разбираться со стандартным примером DirectShow/Editing/StillCap. Во время запуска в режиме грабенья в .bmp выдает ошибку Can't run Graph
попробуй поднять IBasicVideo, там есть функции для захвата кадра (например, GetCurrentImage). но у меня она возвращала unexpected error.
есть другой путь — через VFW. создаешь окно capCreateCaptureWindow, коннектишься к драйверу capDriverConnect, дальше посмотришь сам в MSDN. этот метод у меня работает.
Re: DirectShow, IsampleGrabber проблема
От:
Аноним
Дата:
24.05.06 07:38
Оценка:
Попробуй открыть graphedt и смоделировать твой граф. А вообще такое подозрение, что PIN_CATEGORY_CAPTURE.