Hello,
I work on camera application with omap 35x evm platform and I would know how capture a stream preview from a camera device driver.
I've done a layered camera driver (to be usable by directshow) like the NULL camera driver or the camera_mdc driver ( the driver for the multimedia daughter card).
I select all item in directshow catalog.
I've done a subproject to test my driver :
CComPtr<IGraphBuilder> pGraph;
CComPtr<ICaptureGraphBuilder2> pBuild;
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr)){
hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void**)&pGraph);
if (SUCCEEDED(hr)) {
hr=CoCreateInstance(CLSID_CaptureGraphBuilder, NULL,CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2,(void**) &pBuild);
if(SUCCEEDED(hr)){
pBuild->SetFiltergraph(pGraph);
}
... ... ...
I add in the source file :
WINCEATL80=1
INCLUDES= \
C:\WINCE600\PUBLIC\DIRECTX\SDK\INC; \
C:\WINCE600\OTHERS\ATL8\INCLUDE; \
$(_PROJECTROOT)\cesysgen\sdk\inc; \
TARGETLIBS= \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\ole32.lib \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\oleaut32.lib \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\uuid.lib \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\Strmiids.lib \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\Strmbase.lib \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\dmoguids.lib \
C:\WINCE600\OTHERS\ATL8\LIB\ARMV4I\atls.lib \
C:\WINCE600\OTHERS\ATL8\LIB\ARMV4I\atlsd.lib \ Compilation, link OK but In the execution of my test : hr=CoCreateInstance(CLSID_CaptureGraphBuilder, NULL,CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2,(void**) &pBuild); Return always E_notImpl. Where is my error ? I'm use a bad lib ? I would know how do you capture a stream from ISP camera if the problem come from the CaptureGraphBuilder2 object ? There is another method ?
Thanks you for your reply,
Baptiste D.