DirectShow的DirectX错误E_OUTOFMEMORY渲染到纹理

时间:2019-04-12 19:01:21

标签: visual-studio video visual-c++ directx

我正在尝试使用DirectShow图形播放4k内容,我们使用自定义的Texture Renderer。我也使用了LAV Source / LAV Video Decoder和FIle Source-> Elecard Mp4-> Core AVC Decoder组合。

我们的应用步骤如下(多线程)

1。创建图形 2.接受正确格式后,根据CheckMediaType函数的帧大小,在渲染器中使用Directx API为每个视频创建4个纹理 3.等待当前播放的内容结束,图形资源将在完成后清除 4.运行图 5.在内容即将结束前5秒钟,再次准备下一个播放内容

我的应用程序可以很好地处理4k的单个实例和多个FHD视频的实例,而没有任何问题。 但是,当我播放4k视频的多个实例(用于多个屏幕)时,第一次加载所有视频并正常播放。但是大多数时候下一次播放内容会在createtexture函数或mediacontrol :: Pause / Run中引发错误0x8007000e-E_OUTOFMEMORY。但是我可以看到有足够的存储空间。 Graphstudionext适用于4个4k图形实例,没有任何问题。 我有带i7的8GB RAM的4Gb Raedon图形卡Windows10。我正在使用DirectX9。我被卡住了,如何调试和查找应用程序出了什么问题

0 个答案:

没有答案