Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
3028 Discussions

identifier 'D3D11AllocatorParams' in sample_multi_transcode app

z_k_
Beginner
154 Views

When I build sample_multi_transcode app I get the following error ?

Any reason for this ?

>InitializeBuildStatus:

3> Touching "..\_build\x64\Release\obj\sample_multi_transcode\sample_multi_transcode.unsuccessfulbuild".

3>ClCompile:

3> sample_multi_transcode.cpp

3>src\sample_multi_transcode.cpp(75): error C2061: syntax error : identifier 'D3D11AllocatorParams'

3>src\sample_multi_transcode.cpp(76): error C2061: syntax error : identifier 'CD3D11Device'

3>src\sample_multi_transcode.cpp(82): error C2065: 'D3D11AllocatorParams' : undeclared identifier

3>src\sample_multi_transcode.cpp(82): error C2065: 'pD3D11Params' : undeclared identifier

3>src\sample_multi_transcode.cpp(82): error C2061: syntax error : identifier 'D3D11AllocatorParams'

3>src\sample_multi_transcode.cpp(83): error C2065: 'pD3D11Params' : undeclared identifier

3>src\sample_multi_transcode.cpp(83): error C2227: left of '->pDevice' must point to class/struct/union/generic type

3> type is ''unknown-type''

3>src\sample_multi_transcode.cpp(83): error C2065: 'ID3D11Device' : undeclared identifier

3>src\sample_multi_transcode.cpp(83): error C2059: syntax error : ')'

3> transcode_utils.cpp

3>src\transcode_utils.cpp(764): error C2065: 'D3D11AllocatorParams' : undeclared identifier

3>src\transcode_utils.cpp(764): error C2065: 'd3d11AllocParams' : undeclared identifier

3>src\transcode_utils.cpp(764): error C2061: syntax error : identifier 'D3D11AllocatorParams'

3>src\transcode_utils.cpp(765): error C2065: 'd3d11AllocParams' : undeclared identifier

3>src\transcode_utils.cpp(767): error C2512: 'D3D11FrameAllocator' : no appropriate default constructor available

3>

3>Build FAILED.

3>

3>Time Elapsed 00:00:02.85

========== Build: 2 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

0 Kudos
1 Reply
Nina_K_Intel
Employee
154 Views

Hi,

This is a known issue - some pieces of D3D11 code weren't put under defines for proper compilation with Windows SDK 7.0/7.1. You have two options to solve this:

1) install Windows SDK 8.0 and point the variable INTELMEDIASDK_WINSDK_PATH to that location

2)  Add #if MFX_D3D11_SUPPORT in the following pieces of code:

transcode_utils.cpp, line 764:

#if MFX_D3D11_SUPPORT

    D3D11AllocatorParams *d3d11AllocParams = dynamic_cast<D3D11AllocatorParams*>(pParams);

    if (d3d11AllocParams)   

        m_D3DAllocator.reset(new D3D11FrameAllocator);   

    else

#endif

        m_D3DAllocator.reset(new D3DFrameAllocator);

sample_multi_transcode.cpp, line 73:

    else if (m_bUseD3D11)

    {   

#if MFX_D3D11_SUPPORT

        m_pAllocParam.reset(new D3D11AllocatorParams); 

        m_hwdev.reset(new CD3D11Device());

        sts = m_hwdev->Init(NULL, 1, GetMSDKAdapterNumber() );

        MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts);

        sts = m_hwdev->GetHandle(MFX_HANDLE_D3D11_DEVICE, &hdl);

        MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts);

        // set Device to external dx11 allocator

        D3D11AllocatorParams *pD3D11Params = dynamic_cast<D3D11AllocatorParams*>(m_pAllocParam.get());

        pD3D11Params->pDevice =(ID3D11Device*)hdl;

#endif

    }

Regards,

Nina

0 Kudos
Reply