- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个 PixelShader 编译器/测试器,它可以在使用 DirectShow.Net + VMR9 播放的图像或视频源上实时运行。
一切都很好,直到我决定将它作为一个真正的视频播放器试一试,并开始调整它的每一部分以使其正常工作(标题等)。
然后我发现在带有 ATI gpus 的 Windows7 上,视频非常像素化(插值很差)。解决方案是使用 EVR。我做到了。除了背景闪烁和调整大小缓慢的一些故障,我将尝试使用自定义演示器解决这些问题,一切看起来都不错。
但是...
我无法将像素着色应用于输出视频,因为 EVR FilterConfig 接口(interface)上没有 SetImageCompositor 方法。
这是 EVR 界面:
[SuppressUnmanagedCodeSecurity]
[Guid("83E91E85-82C1-4ea7-801D-85DC50B75086")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEVRFilterConfig
{
void GetNumberOfStreams(out int pdwMaxStreams);
void SetNumberOfStreams(int dwMaxStreams);
}
这是 VMR9 界面:
[Guid("5a804648-4f66-4867-9c43-4f5c822cf1b8")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[SuppressUnmanagedCodeSecurity]
public interface IVMRFilterConfig9
{
int GetNumberOfStreams(out int pdwMaxStreams);
int GetRenderingMode(out VMR9Mode Mode);
int GetRenderingPrefs(out VMR9RenderPrefs pdwRenderFlags);
int SetImageCompositor(IVMRImageCompositor9 lpVMRImgCompositor);
int SetNumberOfStreams(int dwMaxStreams);
int SetRenderingMode(VMR9Mode Mode);
int SetRenderingPrefs(VMR9RenderPrefs dwRenderFlags);
}
我一直在使用这种方法和自定义图像合成器来应用像素着色器:
IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9)vmr9;
// frameManager is my custom class implementing IVMRImageCompositor9
hr = filterConfig.SetImageCompositor(frameManager);
DsError.ThrowExceptionForHR(hr);
现在我不能...
使用:VS2010、C#、DirectShow.NET、Mediafoundation.NET、Managed DX9。
这个问题的解决方案是什么?关于如何使用 EVR 执行此操作的任何指南?
非常感谢!
最佳答案
由于没有人提出建议,我进行了一些研究,认为我已经找到了可能的解决方案:
http://msdn.microsoft.com/en-us/library/bb530107(v=vs.85).aspx
现在应该在自定义演示器中完成...
关于c# - VMR9 与 EVR : How to use ImageCompositor with EVR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574407/
我编写了一个 PixelShader 编译器/测试器,它可以在使用 DirectShow.Net + VMR9 播放的图像或视频源上实时运行。 一切都很好,直到我决定将它作为一个真正的视频播放器试一试
在按钮,轨迹栏,面板上(panel1-来自tpanel +的后继者添加了canvas,align = client), 我通过面板上的EVR启动视频(tpanel) ... FGraph: IGrap
我一直在尝试想出一个使用 Microsoft 的媒体基础增强型视频渲染器 (EVR) 显示视频的简洁示例,但没有成功。我正在使用 Visual Studio 2013 在 Windows 7 上进行测
我正在尝试在 Windows 10(桌面)上使用 DirectX 11 为 Media Foundation 编写 EVR。 到目前为止,我发现的唯一一种解决方案是 here 不幸的是,我(和其他许多
我正在尝试编写一个小应用程序,将相机设备捕获的视频帧直接显示到窗口上。我正在使用“Source Reader”+“Sink Writer”架构而不是“Media Session”,因为我必须直接处理那
我正在编写 WMF 自定义媒体源。 此源从 RTSP 流(使用 FFMPeg 4.1)获取 h264 数据包,并将它们发送到解码器并使用 EVR 将它们呈现到屏幕上。它还将它们发送到编码器和文件写入器
我正在使用 GraphEdt(directShow) 和内置于 [AsyncFile(mp4)]-[LAV splliter]-[LAV video decoder]-[EVR] 中的图表。我按下 p
我是一名优秀的程序员,十分优秀!