Ошибка "dxvaeapi.h" - PullRequest
       39

Ошибка "dxvaeapi.h"

0 голосов
/ 26 мая 2011

Я написал небольшой код, чтобы найти диспетчер устройств Direct3D,

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;
}

при компиляции кода выше я получаю следующую ошибку,

 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

Я заглянул в dxva2api.h по строке 404,

 typedef struct _DXVA2_VideoProcessorCaps
 {
  UINT DeviceCaps;
  D3DPOOL InputPool;  //--> this is line number 404.

параметр D3DPOOL определен в «d3d9types.h», но он не включен в «dxva2api.h». Я пытался изменить "dxva2api.h", но операция не удалась. Как это исправить? Есть предложения?

заранее спасибо,

Sri

Ответы [ 2 ]

0 голосов
/ 19 декабря 2012

Для MR_VIDEO_ACCELERATION_SERVICE Вам необходимо включить evr.h и ссылку на strmiids.lib.

0 голосов
/ 26 мая 2011

Включаете ли вы заголовок "d3d9.h"?

Также они смотрят на это. http://msdn.microsoft.com/en-us/library/ff552897%28v=vs.85%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...