0X400D2F03

NS_I_EXISTING_PACKETIZER (0X400D2F03) — DirectShow packetizer conflict fix

Windows Errors Intermediate 👁 1 views 📅 May 28, 2026

This error pops up when two DirectShow filters try to register the same packetizer plugin. Happens after codec pack installs or uninstalls that leave orphaned registry entries.

You're building a DirectShow filter graph — maybe with GraphEdit, maybe programmatically with IGraphBuilder — and you get NS_I_EXISTING_PACKETIZER (0X400D2F03). The exact message is "There is already an existing packetizer plugin for the stream." This usually shows up when you're trying to play an MPEG-2 transport stream or a file that relies on an MPEG-2 demuxer. I've seen it most after installing a codec pack like K-Lite, then uninstalling it, then installing another pack — or after upgrading Windows Media Player on Windows 10 22H2.

Why this happens

DirectShow uses COM objects called packetizers to wrap raw compressed data (like H.264 or AAC) into media samples that downstream filters can process. Each stream type can only have one registered packetizer. When two different codec packs each register their own packetizer for the same media type (usually MPEG-2 video or audio), you get this conflict. The system finds the first one, uses it, and when something tries to register the second one — boom, 0X400D2F03.

What's actually happening here is the IGraphBuilder::Render or RenderFile call is enumerating filter categories, finds a packetizer, then tries to connect it. But another packetizer already owns that stream's AM_MEDIA_TYPE. The second one can't register because the first one's CLSID is already in the graph's active list. DirectShow returns this as a success-with-info code (it's NS_I_..., not NS_E_...) — the graph still renders, but you get inconsistent behavior depending on which filter wins.

What to check first

Before you dive into registry surgery, open GraphEdit (or GraphStudioNext) and build the graph for your problematic file. Look for duplicate filter entries with similar names — e.g. "MPEG-2 Demultiplexer" from Microsoft AND one from LAV Filters AND one from ffdshow. If you see more than one, that's your culprit.

The fix — remove the duplicate packetizer

The real fix is to unregister the duplicate filter without breaking the one you want to keep. Here's how:

  1. Identify the duplicate packetizer's CLSID. Open the problematic file in GraphStudioNext. Right-click the duplicate filter (the one you don't want), select Filter Properties, and note the CLSID value in the upper-right corner. It looks like {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}. Write it down.
  2. Open regedit (as Administrator) and navigate to:
    HKEY_CLASSES_ROOT\CLSID\{your-clsid-here}\
    Delete the entire key for that CLSID. Confirm the prompt.
  3. Also check the filter category registration under:
    HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\
    (This is the KsDataFormatMpeg2Video category). Look for your duplicate CLSID there and delete it. This prevents DirectShow from enumerating the filter again.
  4. Reboot. Yes, you need to. COM caching means deleted registry entries may still be in memory until a restart.
  5. Test the graph again. Open your file in GraphStudioNext — the duplicate should be gone. Drag the file in and hit Play. If the error's gone, you're done.

If the error still appears

Some codec packs install packetizers in per-user registrations under HKEY_CURRENT_USER\Software\Classes\CLSID\. Check there too. LAV Filters, for instance, sometimes puts a per-user MPEG-2 packetizer that conflicts with a machine-wide Microsoft one.

Another thing: if you're using Windows 11 23H2, Microsoft added a Media Foundation-based MPEG-2 demuxer that can conflict with older DirectShow packetizers. The fix there is to disable the Media Foundation demuxer for that file type, but that's a separate topic. For the 0X400D2F03 error specifically, it's always a duplicate DirectShow packetizer.

Last resort: uninstall all codec packs, reboot, then install just one pack (I prefer LAV Filters 0.79.2 — stable, no bloat). Test again. If clean, reinstall your other packs one at a time, testing between each. This isolates which pack is shipping the extra packetizer.

Was this solution helpful?