| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:试图实现DXVA checker的功能。可是在中期卡住了。
只看楼主 加入收藏
klpyy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-7-10
结帖率:0
收藏
已结贴  问题点数:5 回复次数:1 
试图实现DXVA checker的功能。可是在中期卡住了。
DXVA checker实现检查GPU的四项: Decoder Device, Processor Device , DXVA-HD, DSF/MFT。
DXVA-HD功能已经实现,Decoder Device 我只能做到检测DXVA2.0, DXVA1.0的API不熟,没有检测出来。
有没有人愿意帮我丰富这个功能的。
附代码如下:
程序代码:
HRESULT CGetCaps2Dlg::GetDecodeDeviceInfo(void)
{
    IDirectXVideoDecoderService * pDecoder = NULL;
    IDirect3D9        *pD3D = NULL;
    IDirect3DDevice9  *pDevice = NULL;
    // Set up structure to create D3D Device
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory( &d3dpp, sizeof( d3dpp));
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
    // Set up structure to create D3D Device
   if( FAILED( pD3D = Direct3DCreate9( D3D_SDK_VERSION)))
   {
       RT_LOG("Failed to Create Direct3D9!\n");
       return E_FAIL;
   }
   RT_LOG( "Success to Create Direct3D9 !\n");
   if( FAILED( pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, this->m_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING,
       &d3dpp, &pDevice)))
   {
       RT_LOG("Failed to Create Direct3D9 Device!\n");
       return E_FAIL;
   }
   RT_LOG( "Success to Create Direct3D9 Device!\n");
   if( FAILED( DXVA2CreateVideoService( pDevice, IID_PPV_ARGS(&pDecoder))))
   {
       RT_LOG("Failed to CreatVideoService!\n");
       return E_FAIL;
   }

 
   UINT nCount;
   GUID* pGuids;
    if( FAILED(pDecoder->GetDecoderDeviceGuids( &nCount, &pGuids)))
    {
        RT_LOG("Failed to Get Decoder!\n");
        return E_FAIL;
    }
    CString src;
    for( UINT i =0; i < nCount; i++)
    {
        for (int j = 1; j < _countof(DXVA2Decoder); j++) {
            if (pGuids[i] == *DXVA2Decoder[j].Guid) {
                WriteConsole( hOutPut, DXVA2Decoder[j].Description, _tcslen(DXVA2Decoder[j].Description), NULL, NULL);
                WriteConsole( hOutPut, _T("\n"), _tcslen( _T("\n")), NULL, NULL);
                break;
            }
        }
        src ="";
        src.Format(_T("%08X-%04X-%04X-%02X%02X%02X%02X%02X%02X%02X%02X\n"), pGuids[i].Data1, pGuids[i].Data2,
            pGuids[i].Data3, pGuids[i].Data4[0], pGuids[i].Data4[1], pGuids[i].Data4[2], pGuids[i].Data4[3],
            pGuids[i].Data4[4],pGuids[i].Data4[5],pGuids[i].Data4[6],pGuids[i].Data4[7]);
        WriteConsole( hOutPut, src, src.GetLength(), NULL, NULL);
    }  

   
    pDecoder->Release();
    pDevice->Release();
    pD3D->Release();
  
    return S_OK;
}

搜索更多相关主题的帖子: structure 检测 
2013-07-10 10:45
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:5 
消灭0回复

不懂DXVA

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-07-11 16:41
快速回复:试图实现DXVA checker的功能。可是在中期卡住了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027699 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved