Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用DirectX11支持实现H265/HEVC解码 我现在使用MediaFoundation读取和渲染H264视频。在此处添加DX11支持非常简单: uint32_t resetToken = 0; ComPtr<IMFDXGIDeviceManager> manager; DxUtil::ThrowIfFailed(MFCreateDXGIDeviceManager(&resetToken, &manager)); DxUtil::ThrowIfFailed(manager->ResetDevice(getDx11Device(), resetToken)); mVideoAttributes->SetUnknown(MF_SOURCE_READER_D3D_MANAGER, manager.Get()); mVideoAttributes->SetUINT32(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING, 1); mVideoAttributes->SetUINT32(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 1); DxUtil::ThrowIfFailed(MFCreateSourceReaderFromURL(url.data(), mVideoAttributes.Get(), &mSourceReader)); uint32\u t resetToken=0; 公司经理; DxUtil::ThrowIfFailed(mfcreatedxgideviecemanager(&resetToken,&manager)); DxUtil::ThrowIfFailed(管理器->重置设备(getDx11Device(),重置令牌)); mVideoAttributes->SetUnknown(MF_SOURCE_READER_D3D_MANAGER,MANAGER.Get()); mVideoAttributes->SetUINT32(MF\u源代码\u读卡器\u启用\u高级\u视频处理,1); mVideoAttributes->SetUINT32(MF\u读写\u启用\u硬件\u转换,1); DxUtil::ThrowIfFailed(MFCreateSourceReaderFromURL(url.data()、mvideotributes.Get()、&mSourceReader));_Video_Directx 11_Ms Media Foundation_Hevc - Fatal编程技术网

使用DirectX11支持实现H265/HEVC解码 我现在使用MediaFoundation读取和渲染H264视频。在此处添加DX11支持非常简单: uint32_t resetToken = 0; ComPtr<IMFDXGIDeviceManager> manager; DxUtil::ThrowIfFailed(MFCreateDXGIDeviceManager(&resetToken, &manager)); DxUtil::ThrowIfFailed(manager->ResetDevice(getDx11Device(), resetToken)); mVideoAttributes->SetUnknown(MF_SOURCE_READER_D3D_MANAGER, manager.Get()); mVideoAttributes->SetUINT32(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING, 1); mVideoAttributes->SetUINT32(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 1); DxUtil::ThrowIfFailed(MFCreateSourceReaderFromURL(url.data(), mVideoAttributes.Get(), &mSourceReader)); uint32\u t resetToken=0; 公司经理; DxUtil::ThrowIfFailed(mfcreatedxgideviecemanager(&resetToken,&manager)); DxUtil::ThrowIfFailed(管理器->重置设备(getDx11Device(),重置令牌)); mVideoAttributes->SetUnknown(MF_SOURCE_READER_D3D_MANAGER,MANAGER.Get()); mVideoAttributes->SetUINT32(MF\u源代码\u读卡器\u启用\u高级\u视频处理,1); mVideoAttributes->SetUINT32(MF\u读写\u启用\u硬件\u转换,1); DxUtil::ThrowIfFailed(MFCreateSourceReaderFromURL(url.data()、mvideotributes.Get()、&mSourceReader));

使用DirectX11支持实现H265/HEVC解码 我现在使用MediaFoundation读取和渲染H264视频。在此处添加DX11支持非常简单: uint32_t resetToken = 0; ComPtr<IMFDXGIDeviceManager> manager; DxUtil::ThrowIfFailed(MFCreateDXGIDeviceManager(&resetToken, &manager)); DxUtil::ThrowIfFailed(manager->ResetDevice(getDx11Device(), resetToken)); mVideoAttributes->SetUnknown(MF_SOURCE_READER_D3D_MANAGER, manager.Get()); mVideoAttributes->SetUINT32(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING, 1); mVideoAttributes->SetUINT32(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 1); DxUtil::ThrowIfFailed(MFCreateSourceReaderFromURL(url.data(), mVideoAttributes.Get(), &mSourceReader)); uint32\u t resetToken=0; 公司经理; DxUtil::ThrowIfFailed(mfcreatedxgideviecemanager(&resetToken,&manager)); DxUtil::ThrowIfFailed(管理器->重置设备(getDx11Device(),重置令牌)); mVideoAttributes->SetUnknown(MF_SOURCE_READER_D3D_MANAGER,MANAGER.Get()); mVideoAttributes->SetUINT32(MF\u源代码\u读卡器\u启用\u高级\u视频处理,1); mVideoAttributes->SetUINT32(MF\u读写\u启用\u硬件\u转换,1); DxUtil::ThrowIfFailed(MFCreateSourceReaderFromURL(url.data()、mvideotributes.Get()、&mSourceReader));,video,directx-11,ms-media-foundation,hevc,Video,Directx 11,Ms Media Foundation,Hevc,然后我继续读取缓冲区并将其复制到纹理中进行渲染 在没有真正幸运的搜索之后,似乎要为HEVC完成这项工作要复杂得多,但有人能给我一个大致的要点吗 创建MFTransform时,如何使用DX11实例?Microsoft文档()说解码应该在imftTransform::ProcessOutput中进行,但对于纯软件解码器,这是我调用的方法,而不是实现的方法 此方法同样适用于IMFTTransform::SetInputType 我已经看过这篇文章了,它没有说ID3D11VideoContext等的实际

然后我继续读取缓冲区并将其复制到纹理中进行渲染

在没有真正幸运的搜索之后,似乎要为HEVC完成这项工作要复杂得多,但有人能给我一个大致的要点吗

创建MFTransform时,如何使用DX11实例?Microsoft文档()说解码应该在imftTransform::ProcessOutput中进行,但对于纯软件解码器,这是我调用的方法,而不是实现的方法

此方法同样适用于IMFTTransform::SetInputType

我已经看过这篇文章了,它没有说ID3D11VideoContext等的实际使用位置

有点不知所措,希望能得到任何帮助


非常感谢

H.265/HEVC DOE编码设置与源读取器完全相同。您不需要查看
IMFTransform
。您是对的。原来我的笔记本电脑丢失了我刚从微软下载的编码解码器,它工作得很好。