Windows手机应用程序中的自定义MFT

时间:2014-11-10 22:45:19

标签: windows-runtime windows-phone-8.1 mft

我需要创建一个自定义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

2 个答案:

答案 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及其所有功能。希望查看这些将有所帮助。