I wrote a small code to find Direct3D device manager,
HRESULT FindDeviceManager(
IMFTopology *pTopology, // Topology to search.
IUnknown **ppDeviceManager, // Receives a pointer to the device manager.
IMFTopologyNode **ppNode // Receives a pointer to the node.
)
{
HRESULT hr = S_OK;
WORD cNodes = 0;
BOOL bFound = FALSE;
IMFTopologyNode *pNode = NULL;
IUnknown *pNodeObject = NULL;
IDirect3DDeviceManager9 *pD3DManager = NULL;
// Search all of the nodes in the topology.
hr = pTopology->GetNodeCount(&cNodes);
if (FAILED(hr))
{
return hr;
}
for (WORD i = 0; i < cNodes; i++)
{
// For each of the following calls, failure just means we
// did not find the node we're looking for, so keep looking.
hr = pTopology->GetNode(i, &pNode);
// Get the node's object pointer.
if (SUCCEEDED(hr))
{
hr = pNode->GetObject(&pNodeObject);
}
// Query the node object for the device manager service.
if (SUCCEEDED(hr))
{
hr = MFGetService(
pNodeObject,
MR_VIDEO_ACCELERATION_SERVICE,
IID_PPV_ARGS(&pD3DManager)
);
}
if (SUCCEEDED(hr))
{
// Found the right node. Return the pointers to the caller.
*ppDeviceManager = (IUnknown *)pD3DManager;
(*ppDeviceManager)->AddRef();
*ppNode = pNode;
(*ppNode)->AddRef();
bFound = TRUE;
break;
}
SafeRelease(&pNodeObject);
SafeRelease(&pD3DManager);
SafeRelease(&pNode);
} // End of for loop.
SafeRelease(&pNodeObject);
SafeRelease(&pD3DManager);
SafeRelease(&pNode);
return bFound ? S_OK : E_FAIL;
}
while compiling the above code i'm getting the following error,
1>c:\program files\microsoft sdks\windows\v7.1\include\dxva2api.h(404) : error C4430:
missing type specifier - int assumed. Note: C++ does not support default-int
I had a look into dxva2api.h at line number 404,
typedef struct _DXVA2_VideoProcessorCaps
{
UINT DeviceCaps;
D3DPOOL InputPool; //--> this is line number 404.
the parameter D3DPOOL is defined in "d3d9types.h" but that is not included in "dxva2api.h". I tried to modify "dxva2api.h", but operation failed. How to fix this? Any suggestions?
thanks in advance,
Sri
Are you including the header "d3d9.h" ?
Also they a look at this. http://msdn.microsoft.com/en-us/library/ff552897%28v=vs.85%29.aspx