How to enumerate DirectShow filters on your system

How to enumerate DirectShow filters on your system

  • Comments 3

Last time I showed how to enumerate Media Foundation transforms.  This time, DirectShow filters.  Source and binaries attached.

In pseudocode:

GUID directshow_categories[] = { ... }; // static list
ICreateDevEnum = CoCreate(...);
for (each category in directshow_categories) {
    display the category name and GUID

    IEnumMoniker = ICreateDevEnum::CreateClassEnumerator(category);

    for (each IMoniker that IEnumMoniker finds) {
        IBindCtx = CreateBindCtx(...);
        IPropertyBag = IMoniker::BindToStorage(IBindCtx);

        pull the friendly name from the IPropertyBag and display it
    }
}

Output of the tool on my system:

>devenum.exe
-- Audio Capture Sources ({33D9A762-90C8-11D0-BD43-00A0C911CE86}) --
    Front Microphone (High Definiti
    Line In (High Definition Audio
    Rear Microphone (High Definitio

-- Audio Compressors ({33D9A761-90C8-11D0-BD43-00A0C911CE86}) --
    WM Speech Encoder DMO
    WMAudio Encoder DMO
    IMA ADPCM
    PCM
    Microsoft ADPCM
    GSM 6.10
    CCITT A-Law
    CCITT u-Law
    MPEG Layer-3

-- Audio Renderers ({E0F158E1-CB04-11D0-BD4E-00A0C911CE86}) --
    Speakers (High Definition Audio
    Default DirectSound Device
    Default WaveOut Device
    DirectSound: Speakers (High Definition Audio Device)

-- Device Control Filters ({CC7BFB46-F175-11D1-A392-00E0291F3959}) --

-- DirectShow Filters ({083863F1-70DE-11D0-BD40-00A0C911CE86}) --
    WMAudio Decoder DMO
    WMAPro over S/PDIF DMO
    WMSpeech Decoder DMO
    MP3 Decoder DMO
    Mpeg4s Decoder DMO
    WMV Screen decoder DMO
    WMVideo Decoder DMO
    Mpeg43 Decoder DMO
    Mpeg4 Decoder DMO
    DV Muxer
    Color Space Converter
    WM ASF Reader
    AVI Splitter
    VGA 16 Color Ditherer
    SBE2MediaTypeProfile
    Microsoft DTV-DVD Video Decoder
    AC3 Parser Filter
    StreamBufferSink
    Microsoft TV Captions Decoder
    MJPEG Decompressor
    CBVA DMO wrapper filter
    MPEG-I Stream Splitter
    SAMI (CC) Parser
    VBI Codec
    MPEG-2 Splitter
    Closed Captions Analysis Filter
    SBE2FileScan
    Microsoft MPEG-2 Video Encoder
    Internal Script Command Renderer
    MPEG Audio Decoder
    DV Splitter
    Video Mixing Renderer 9
    Microsoft MPEG-2 Encoder
    ACM Wrapper
    Video Renderer
    MPEG-2 Video Stream Analyzer
    Line 21 Decoder
    Video Port Manager
    Video Renderer
    VPS Decoder
    WM ASF Writer
    VBI Surface Allocator
    File writer
    iTV Data Sink
    iTV Data Capture filter
    DVD Navigator
    Microsoft TV Subtitles Decoder
    Overlay Mixer2
    AVI Draw
    RDP DShow Redirection Filter
    Microsoft MPEG-2 Audio Encoder
    WST Pager
    MPEG-2 Demultiplexer
    DV Video Decoder
    SampleGrabber
    Null Renderer
    MPEG-2 Sections and Tables
    Microsoft AC3 Encoder
    StreamBufferSource
    Smart Tee
    Overlay Mixer
    AVI Decompressor
    NetBridge
    AVI/WAV File Source
    Wave Parser
    MIDI Parser
    Multi-file Parser
    File stream renderer
    Microsoft DTV-DVD Audio Decoder
    StreamBufferSink2
    AVI Mux
    Line 21 Decoder 2
    File Source (Async.)
    File Source (URL)
    Media Center Extender Encryption Filter
    AudioRecorder WAV Dest
    AudioRecorder Wave Form
    SoundRecorder Null Renderer
    Infinite Pin Tee Filter
    Enhanced Video Renderer
    BDA MPEG2 Transport Information Filter
    MPEG Video Decoder

-- External Renderers ({CC7BFB41-F175-11D1-A392-00E0291F3959}) --

-- Midi Renderers ({4EFE2452-168A-11D1-BC76-00C04FB9453B}) --
    Default MidiOut Device
    Microsoft GS Wavetable Synth

-- Video Capture Sources ({860BB310-5D01-11D0-BD3B-00A0C911CE86}) --

-- Video Compressors ({33D9A760-90C8-11D0-BD43-00A0C911CE86}) --
    WMVideo8 Encoder DMO
    WMVideo9 Encoder DMO
    MSScreen 9 encoder DMO
    DV Video Encoder
    MJPEG Compressor
    Cinepak Codec by Radius
    Intel IYUV codec
    Intel IYUV codec
    Microsoft RLE
    Microsoft Video 1

-- WDM Stream Decompression Devices ({2721AE20-7E70-11D0-A5D6-28DB04C10000}) --

-- WDM Streaming Capture Devices ({65E8773D-8F56-11D0-A3B9-00A0C9223196}) --
    HD Audio Microphone
    HD Audio Muxed capture

-- WDM Streaming Crossbar Devices ({A799A801-A46D-11D0-A18C-00A02401DCD4}) --

-- WDM Streaming Rendering Devices ({65E8773E-8F56-11D0-A3B9-00A0C9223196}) --
    HD Audio Speaker

-- WDM Streaming Tee/Splitter Devices ({0A4252A0-7E70-11D0-A5D6-28DB04C10000}) --
    Tee/Sink-to-Sink Converter

-- WDM Streaming TV Audio Devices ({A799A802-A46D-11D0-A18C-00A02401DCD4}) --

-- WDM Streaming TV Tuner Devices ({A799A800-A46D-11D0-A18C-00A02401DCD4}) --

-- WDM Streaming VBI Codecs ({07DAD660-22F1-11D1-A9F4-00C04FBBDE8F}) --

-- WDM Streaming Communication Transforms ({CF1DDA2C-9743-11D0-A3EE-00A0C9223196}) --
    Tee/Sink-to-Sink Converter

-- WDM Streaming Data Transforms ({2EB07EA0-7E70-11D0-A5D6-28DB04C10000}) --

-- WDM Streaming Interface Transforms ({CF1DDA2D-9743-11D0-A3EE-00A0C9223196}) --

-- WDM Streaming Mixer Devices ({AD809C00-7B88-11D0-A5D6-28DB04C10000}) --

-- BDA Network Providers ({71985F4B-1CA1-11D3-9CC8-00C04F7971E0}) --
    Microsoft ATSC Network Provider
    Microsoft DVBC Network Provider
    Microsoft DVBS Network Provider
    Microsoft DVBT Network Provider
    Microsoft Network Provider

-- BDA Receiver Components ({FD0A5AF4-B41D-11D2-9C95-00C04F7971E0}) --

-- BDA Rendering Filters ({71985F4A-1CA1-11D3-9CC8-00C04F7971E0}) --

-- BDA Source Filters ({71985F48-1CA1-11D3-9CC8-00C04F7971E0}) --

-- BDA Transport Information Renderers ({A2E3074F-6C3D-11D3-B653-00C04F79498E}) --
    BDA MPEG2 Transport Information Filter
    MPEG-2 Sections and Tables

-- Video Effects (1 input) ({CC7BFB42-F175-11D1-A392-00E0291F3959}) --
    Fade
    BasicImage
    Convolution
    Chroma
    Matrix
    Pixelate
    DxtAlphaSetter Class
    Text Label Class
    Scale
    Blur
    Glow
    ICMFilter
    Alpha
    DropShadow
    Wave
    MotionBlur
    Shadow
    Emboss
    Engrave
    Light

-- Video Effects (2 inputs) ({CC7BFB43-F175-11D1-A392-00E0291F3959}) --
    CrBlinds
    Iris
    RadialWipe
    Fade
    ZigZag
    RandomBars
    CrIris
    CrRadialWipe
    Spiral
    Pixelate
    Wheel
    Strips
    CrStretch
    Inset
    CrSlide
    CrInset
    Compositor
    Blinds
    CrSpiral
    Wipe
    CheckerBoard
    GradientWipe
    DxtCompositor Class
    CrBarn
    DxtKey Class
    Slide
    DxtJpeg Class
    CrZigzag
    Barn
    Stretch
    RandomDissolve

-- EncAPI Encoders ({7D22E920-5CA9-4787-8C2B-A6779BD11781}) --
    Microsoft MPEG-2 Audio Encoder
    Microsoft MPEG-2 Video Encoder

-- EncAPI Multiplexers ({236C9559-ADCE-4736-BF72-BAB34E392196}) --
    Microsoft MPEG-2 Encoder

 

Attachment: devenum.zip
Leave a Comment
  • Please add 7 and 2 and type the answer here:
  • Post
  • Hi- Cool article!

    On a related note, I was wondering if you know of any difference between the results you get when enumerating with ICreateDevEnum vs using IFilterMapper's EnumMatchingFilters function.  I ask because I'm working with Windows Mobile, and, unfortunately, it doesn't offer ICreateDevEnum. When I use IFilterMapper, I'm not able to find an audio compressor, so I'm curious if it's just my methodology or if it really isn't there...  THANKS!

  • hi,can you help me?I want to connect Bouncing Ball and Microsoft MPEG-2 Encoder filter in the GraphEdit,but they can't ,I don't known why?How to modify the Bouncing Ball filter that it can connect to MS MPEG-2 Encoder?  Thank you very much for reading my post

  • yhy_bj_cn, please post your question on the "DirectShow Development" forum here:

    social.msdn.microsoft.com/.../threads

Page 1 of 1 (3 items)