windows-runtime - 如何通过 activatableClassId 将进程内 IMFTransform 与 WinRT MediaPlayer::AddVideoEffect 一起使用
问题描述
WinRT 的Windows::Media::Playback::MediaPlayer支持添加视频和音频效果(很像IMFMediaEngine),但是我找不到在MediaPlayer中使用我已经与IMFMediaEngineEx::InsertVideoEffect()一起使用的现有 IMFTransform 的方法::AddVideoEffect()
MediaPlayer::AddVideoEffect() 只接受一个字符串作为“activatableClassId”,而 IMFMediaEngineEx::InsertVideoEffect() 允许我直接传递一个指向本地 IMFTransform 的指针。我不想在系统中注册一个 DLL 以使该类可激活,我只想在本地进程中注册 IMFTransform,以便它可以被 classId 发现。
我在网上搜索过,但信息很少。我发现的只是这个Microsoft 线程,一篇显示使用 WRL的CGreyScale MFT的旧文章,以及这个有用的存储库,它使用 appxmanifest 来注册类(不是我想做的)。
这些示例看起来很有用,我在现有 MFT 周围实现了装饰,但是该示例依赖于在外部注册 activatableClassId,因此我仍然不知道如何在进程中进行。我唯一能找到的是RoRegisterActivationFactories () 但关于此的信息很少,所以我不确定。
有谁知道如何做到这一点?
谢谢,