How to Develop Custom Decoder Media Foundation Transform Extension in Microsoft Store (Custom Decoder MFT)

Le Manh 0 Reputation points
2026-02-10T11:14:25.4866667+00:00

Hello everyone, I would like to ask about the process of developing a Custom Decoder Media Foundation Transform like VP9 on the Microsoft Store. - How can I develop an extension like VP9 so that the Media Player can use it to play videos? I understand that the steps would be to write a Custom MFT as in (https://learn.microsoft.com/en-us/cpp/cppcx/wrl/walkthrough-creating-a-windows-store-app-using-wrl-and-media-foundation?view=msvc-170) and then package this Custom Decoder MFT using Windows Application Packaging Project like (https://learn.microsoft.com/en-us/windows/msix/package/packaging-uwp-apps)- Refer to VP9 Decoder MFT, In the AppxManifest.xml file in the directory C:\Program Files\WindowsApps\Microsoft.VP9VideoExtensions_xxx. I saw a line:

<Capabilities>
    <wincap:Capability Name="inProcessMediaExtension" />
</Capabilities>
  • Can you tell me what the role of this permission is, and am I only need to test my Custom Decoder MFT on a personal computer, do I need to use this permission?
Windows development | Windows App SDK
0 comments No comments

2 answers

Sort by: Most helpful
  1. Danny Nguyen (WICLOUD CORPORATION) 7,425 Reputation points Microsoft External Staff Moderator
    2026-02-11T07:17:06.67+00:00

    Hi,

    inProcessMediaExtension is a restricted app capability used for some Media Foundation media extensions (such as codec/decoder extensions). It allows the extension to be loaded in the same process as the app that is playing the media (in‑process). This is mainly for performance and tighter integration, but it is restricted because it can affect the host app’s stability and security.

    For third-party developers, the important part is that this capability is not generally available/consumable. Microsoft has stated this in MicrosoftDocs/windows-dev-docs issue #60:

    https://github.com/MicrosoftDocs/windows-dev-docs/issues/60

    While this is a non-Microsoft site, it is the official document repository maintained by Microsoft. 

    (They note the capability “is not consumable by a third-party app, even when side-loading”, and they don’t document these internal capabilities.)

    That matches what you observed:

    • With <wincap:Capability Name="inProcessMediaExtension" /> : your package fails to install, even when running Add-AppDevPackage.ps1 as Administrator. Admin elevation does not override restricted-capability enforcement.
    • Without it: the package installs normally, because the manifest no longer requests a restricted capability.

    Regarding you questions:

    1. What is the role of inProcessMediaExtension?

    It allows the media extension/decoder to run in-process with the host playback app’s media pipeline.

    1. Do you need it just to test your custom decoder on your own PC?

    If your goal is just to test your decoder, you should test it in a scenario you control (for example, your own app using Media Foundation). You should not depend on inProcessMediaExtension because you won’t be able to install a third-party package that requests it.

    1. How can you install your package while keeping inProcessMediaExtension?

    In general, you can’t as a normal third-party developer. Installing packages that declare restricted capabilities requires a Microsoft-approved path (typically internal/partner approval and signing requirements). There isn’t a supported Visual Studio or PowerShell sideloading workaround for this.

    Hope this helps

    Was this answer helpful?


  2. AI answer

    2026-02-10T11:14:39.07+00:00

    To develop a Custom Decoder Media Foundation Transform (MFT) like VP9 for use in the Microsoft Store, you will need to follow several key steps:

    1. Implement the Custom MFT: Start by writing your Custom Decoder MFT. Ensure that it implements the required interfaces, such as IMFTransform, and adheres to the MFT checklist outlined in the documentation. This includes handling stream changes, time stamps, and potentially implementing quality-of-service notifications if applicable.
    2. Package the MFT: Once your Custom Decoder MFT is implemented, you will need to package it using a Windows Application Packaging Project. This process involves creating an AppxManifest.xml file that defines the capabilities of your extension.
    3. Capabilities: The line you referenced in the AppxManifest.xml file:
         <Capabilities>
             <wincap:Capability Name="inProcessMediaExtension" />
         </Capabilities>
      
      indicates that your extension will run as an in-process media extension. This capability allows your decoder to be loaded and used by media applications that support Media Foundation. It is necessary if you want your Custom Decoder MFT to be recognized and utilized by the Media Player and other applications.
    4. Testing: You can test your Custom Decoder MFT on a personal computer. However, if you intend to distribute it through the Microsoft Store, you will need to ensure that it meets all the requirements and passes the certification process, which may include testing on various devices and configurations.

    In summary, the inProcessMediaExtension capability is essential for your Custom Decoder MFT to function correctly within the Media Foundation framework, and testing on a personal computer is a good starting point before considering broader distribution.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.