Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/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
C++ 如何从';正常';IDirect3D9曲面 我正在做一个媒体基金会的媒体播放器。我正在尝试使用DXVA-HD的后处理。然而,当我尝试使用高清设备进行视频处理时,它在E_INVALIDARGS中失败。我怀疑的是,我提供的ID39Surface作为输入,它在某种程度上无法正常工作。我从“IMFMediaBuffer”(我从SourceReader中读取样本)中获取输入曲面_C++_Direct3d_Direct3d9_Ms Media Foundation - Fatal编程技术网

C++ 如何从';正常';IDirect3D9曲面 我正在做一个媒体基金会的媒体播放器。我正在尝试使用DXVA-HD的后处理。然而,当我尝试使用高清设备进行视频处理时,它在E_INVALIDARGS中失败。我怀疑的是,我提供的ID39Surface作为输入,它在某种程度上无法正常工作。我从“IMFMediaBuffer”(我从SourceReader中读取样本)中获取输入曲面

C++ 如何从';正常';IDirect3D9曲面 我正在做一个媒体基金会的媒体播放器。我正在尝试使用DXVA-HD的后处理。然而,当我尝试使用高清设备进行视频处理时,它在E_INVALIDARGS中失败。我怀疑的是,我提供的ID39Surface作为输入,它在某种程度上无法正常工作。我从“IMFMediaBuffer”(我从SourceReader中读取样本)中获取输入曲面,c++,direct3d,direct3d9,ms-media-foundation,C++,Direct3d,Direct3d9,Ms Media Foundation,我将按如下方式提取曲面: 检查\u HR(HR=MFGetService(视频缓冲区、MR缓冲区\u服务、IDirect3DSurface(IDirect3DSurface)(void**)和pSurface)) 然而,在系统中,VideoProcessBltHD工作正常 而示例代码中的IDirect3DSurface9曲面是屏幕外的普通曲面。 如何将“我的表面”(包含视频数据)作为屏幕外平面传递给视频处理器,并成功获取“blt操作” 任何帮助都将不胜感激 谢谢 Mots我建议安装完整的Dire

我将按如下方式提取曲面: 检查\u HR(HR=MFGetService(视频缓冲区、MR缓冲区\u服务、IDirect3DSurface(IDirect3DSurface)(void**)和pSurface))

然而,在系统中,VideoProcessBltHD工作正常

而示例代码中的IDirect3DSurface9曲面是屏幕外的普通曲面。 如何将“我的表面”(包含视频数据)作为屏幕外平面传递给视频处理器,并成功获取“blt操作”

任何帮助都将不胜感激

谢谢
Mots

我建议安装完整的DirectX SDK,在DirectX控制面板中将运行时库切换到调试模式,打开完全验证,在出错时中断,并在调试模式下运行应用程序。这样,您将获得DirectX人类可读的错误描述。

我将E_INVALIDARG作为错误。文档中说,如果没有发现输入参数不正确,VideoProcessBltHD将返回此错误。我已经把范围缩小到我的输入面对于这个函数无效。我看到的与MSDN上提供的示例源代码的唯一区别是,MSDN使用了屏幕外的普通表面,我不知道如何从我拥有的表面获得它。另外,在将示例代码集成到我的代码中并给出新的曲面(屏幕外的平面曲面)时,blt工作得很好。有关于屏幕外表面的线索吗?Thanks@mots_g,Invalid Arg是一个泛化错误,它没有告诉任何有用的信息。调试模式运行时用人工语言解释无效参数的具体错误。可能是-错误的表面尺寸、错误的内存池、错误的表面格式等,。等等,我试着按照你的建议进行调试。代码没有中断,但它开始打印VideoProcessBlt失败,错误为0x%x.-2147084809。在检查DirectX错误查找时,-2147024809 = EySimuldARG.@ MOTSZG,打开DirectX控件窗格,打开Direct3D,使用调试运行时、中断错误、完全验证和从调试运行的VisualC++环境运行,仍然提供这个简短信息吗?还是有点不对劲。试试这个链接:是的,我已经完成了所有的步骤。在检查上面的链接时,我发现我的调试输出级别低于。我把它改成了更多。然而,我仍然得到和以前一样的输出。在我的输出控制台中,我在代码执行开始时还得到以下信息:Direct3D9:(错误):断言失败!文件s:\gfx\u aug09\windows\directx\dxg\inactive\d3d9\d3d\fw\lhbatchfilter.cpp第3466行:pArgs->Flags.Discard