我需要创建一个自定义MFT,因为它是在Windows Phone 8.1(运行时,无银光)上以YUV格式获取原始帧的唯一方法。
我知道这并不容易,但我没有其他选择。
我正在尝试学习GrayscaleTransform的示例:https://code.msdn.microsoft.com/windowsapps/Media-Capture-Sample-adf87622
但我真的不明白它是如何运作的。 我唯一看到的在应用程序中有C ++灰度的参考是:
_mediaCaptureMgr.AddEffectAsync(Windows.Media.Capture.MediaStreamType.Photo,“GrayscaleTransform.GrayscaleEffect”,null);
没有创建灰度的任何实例,也没有任何调用任何方法的实例。 所以,我想知道它是如何工作的?
谢谢,
的Sebastien
答案 0 :(得分:2)
MediaCapture示例在其Pakage.appxmanifest第35行中注册了GrayscaleTransform.GrayscaleEffect:
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>GrayscaleTransform.dll</Path>
<ActivatableClass ActivatableClassId="GrayscaleTransform.GrayscaleEffect" ThreadingModel="both" />
</InProcessServer>
</Extension>
这使MediaCapture对象可以找到添加的效果并将其添加到媒体管道。
应用还可以使用MediaExtensionManager class注册MFT。
答案 1 :(得分:0)
我想你在问你在哪里可以找到Grayscale cpp文件本身。在解决方案资源管理器中,您可以在MediaExtensions / MFExtensions / GrayscaleTransform / GrayscaleTransform.Shared /
下找到它。在那里你会看到Grayscale.cpp及其所有功能。希望查看这些将有所帮助。