jjzjj

IMediaControl

全部标签

c++ - DirectShow MP4Demux 应用程序在 IMediaControl::Run 上内存不足

我正在使用GeraintDavies'MP4Demux流式传输一些以前编码的mp4文件。在过去的调查中,我发现MP4Demux在加载时为所有原子分配内存。对于较小的文件,这工作正常,但使用较大的mp4文件(大约1.2GB)时,我在IMediaControl::Run上遇到内存不足错误。一个选择是重写/编辑mp4解复用器以具有内存池/循环缓冲区,并且仅在需要/请求时读取帧,但我想知道是否有更简单的解决方案,例如比如以某种方式增加DirectShow应用程序可以使用的内存(尽管它是一个32位控制台应用程序)。 最佳答案 图中典型的内存消

imediacontrol :: run e_outofmemory

我有一个C#Winforms应用程序,该应用程序调用了包含DirectShow操作的Win32C++DLL。当我从摄像机中流13MP(4208*3120)时,Imediacontrol::run()API失败,而HResultvalue=e_outofmemory。我已经检查了记忆分配和交易。另外,我尝试了启用/LargeadDressaware。我什至尝试指定堆提交大小。但是仍然存在。我想念什么吗?请分享您的想法。提前致谢。看答案谢谢你们的回复。我可以从工具@romanr找出问题。建议。问题是我正在触发静止状态并立即切换分辨率。实际发生的是,仍在处理静止的触发器。静态缓冲区正在回调中处理。在