DirectMedia comments and documentation
What follows is not the revisited DirectShow documentation !!
It is the exhaustive list of COM objects installed and registered by the DirectMedia SDK release 6. What for ? Did you know that the IFilterMapper interface was an interface of a general FilterMapper object, object that you have to create using CoCreateInstance. That is IFilterMapper is not obtained through the IFilterGraph interface though it is referred like this in the official documentation as "...an interface at filter-graph level..." ? What the DirectShow engineers probably meant is that this interface is sort of interface at this level. Strictly speaking, it should have meant that pFilterGraph->QueryInterface(IID_IFilterMapper, ...) is an allowed operation. But it's not...
Knowing that an object referenced by CLSID_FilterMapper is defined in the headers and libraries, it means that you can use the following construction code :
IFilterMapper *pFm=NULL;
HRESULT hr=CoCreateInstance(CLSID_FilterMapper, NULL,
CLSCTX_INPROC_SERVER, IID_IFilterMapper,
(void **)&pFm);
if (SUCCEEDED(hr)
{
...
}
Thus a filter mapper object is instanciated, and an interface to it is already available. Then proceed with the IFilterMapper interface using the "DirectShow documentation / C/C++ reference / DirectShow COM interfaces".
Interfaces obtained through general DirectMedia objects are specifically documented : for example, to know all interfaces you can query when you have the top IFilterGraph interface, just look into the "DirectShow documentation / C/C++ reference / DirectShow COM interfaces / Summary of DirectShow com interfaces".
List of DirectMedia COM Objects
-------------------------------
(involved parts are DirectShow, DirectAnimation, DirectTransform, and DirectDraw).
extracted from the whole DirectMedia SDK
amstream.h, control.h, uuids.h, ddrawex.h, danim.h, dxtmsft.h, dxtrans.h,
|
CLSID_ACMWrapper ACM Wrapper |
|
CLSID_ActiveMovieCategories |
|
CLSID_AMAudioData |
|
CLSID_AMAudioStream |
|
CLSID_AMDirectDrawStream |
|
CLSID_AMMediaTypeStream |
|
CLSID_AMMultiMediaStream (MultimediaStream) |
|
CLSID_AMovie (IAMovie plug-in distributor) |
|
CLSID_AnalogVideoDecoderPropertyPage |
|
CLSID_AsfMux (ASF mux filter) |
|
CLSID_AsyncReader (Async File Reader) |
|
CLSID_AudioCompressorCategory |
|
CLSID_AudioFileClip |
|
CLSID_AudioInputDeviceCategory (Audio source cateogry) |
|
CLSID_AudioProperties (Audio Renderer Property Page) |
|
CLSID_AudioRecord (Wavein audio recorder) |
|
CLSID_AudioRender (Waveout audio renderer) |
|
CLSID_AudioRendererCategory (Audio renderer category) |
|
CLSID_AVICo |
|
CLSID_AVIDec (AVI Decoder) |
|
CLSID_AviDest (AVI mux filter) |
|
CLSID_AVIDoc (AVIFile-based reader) |
|
CLSID_AVIDocWriter (AVIFile-based writer) |
|
CLSID_AVIDraw (AVI ICDraw* wrapper) |
|
CLSID_AVIMIDIRender |
|
CLSID_AviMuxProptyPage1 |
|
CLSID_AviMuxProptyPage |
|
CLSID_AviReader (Avi File Reader) |
|
CLSID_AviSplitter (Avi Stream Splitter) |
|
CLSID_BasicImageEffectsPP |
|
CLSID_BasicImageEffects |
|
CLSID_CAcmCoClassManager |
|
CLSID_CameraControlPropertyPage |
|
CLSID_CaptureGraphBuilder (Capture graph building) |
|
CLSID_CaptureProperties |
|
CLSID_CDeviceMoniker |
|
CLSID_CIcmCoClassManager |
|
CLSID_CMidiOutClassManager |
|
CLSID_CMpegAudioCodec (MPEG audio decoder) |
|
CLSID_CMpegVideoCodec (MPEG video decoder) |
|
CLSID_Colour (Colour space convertor) |
|
CLSID_CompositePP |
|
CLSID_ConvolvePP |
|
CLSID_CQzFilterClassManager |
|
CLSID_CrBlurPP |
|
CLSID_CrBlur |
|
CLSID_CrEmboss |
|
CLSID_CrEngrave |
|
CLSID_CrossbarFilterPropertyPage |
|
CLSID_CutListCacheMemory |
|
CLSID_CutListGraphBuilder |
|
CLSID_CutListSource |
|
CLSID_CVidCapClassManager |
|
CLSID_CWaveinClassManager |
|
CLSID_CWaveOutClassManager |
|
CLSID_DAArray |
|
CLSID_DABbox2 |
|
CLSID_DABbox3 |
|
CLSID_DABehavior |
|
CLSID_DABoolean |
|
CLSID_DACamera |
|
CLSID_DAColor |
|
CLSID_DADashStyle |
|
CLSID_DAEndStyle |
|
CLSID_DAEvent |
|
CLSID_DAFontStyle |
|
CLSID_DAGeometry |
|
CLSID_DAImage |
|
CLSID_DAImportationResult |
|
CLSID_DAJoinStyle |
|
CLSID_DALineStyle |
|
CLSID_DAMatte |
|
CLSID_DAMicrophone |
|
CLSID_DAMontage |
|
CLSID_DANumber |
|
CLSID_DAPair |
|
CLSID_DAPath2 |
|
CLSID_DAPickableResult |
|
CLSID_DAPoint2 |
|
CLSID_DAPoint3 |
|
CLSID_DASound |
|
CLSID_DAStatics |
|
CLSID_DAString |
|
CLSID_DATransform2 |
|
CLSID_DATransform3 |
|
CLSID_DATuple |
|
CLSID_DAUserData |
|
CLSID_DAVector2 |
|
CLSID_DAVector3 |
|
CLSID_DAView |
|
CLSID_DAViewerControlWindowed |
|
CLSID_DAViewerControl |
|
CLSID_DeviceControlCategory (Device Control Filters) |
|
CLSID_DirectDraw |
|
CLSID_DirectDrawClipper |
|
CLSID_DirectDrawFactory |
|
CLSID_DirectDrawProperties |
|
CLSID_Disslvpp |
|
CLSID_Dissolve |
|
CLSID_Dither (VGA 16 color ditherer) |
|
CLSID_DSoundRender (DSound audio renderer) |
|
CLSID_DVDecPropertiesPage (DV decoder property) |
|
CLSID_DvdGraphBuilder |
|
CLSID_DVDHWDecodersCategory |
|
CLSID_DVDNavigator |
|
CLSID_DVEncPropertiesPage (DV encoder property) |
|
CLSID_DVMux DV muxer |
|
CLSID_DVMuxPropertyPage (DV Muxer property) |
|
CLSID_DVSplitter (DV splitter) |
|
CLSID_DVVideoCodec (DV video decoder) |
|
CLSID_DVVideoEnc (DV video encoder) |
|
CLSID_DX2D |
|
CLSID_DXBufferCache |
|
CLSID_DXBufferCache |
|
CLSID_DXFade |
|
CLSID_DXGradient |
|
CLSID_DXLUTBuilder |
|
CLSID_DXRasterizer |
|
CLSID_DXSurfaceModifier |
|
CLSID_DXSurface |
|
CLSID_DXTaskManager |
|
CLSID_DXTComposite |
|
CLSID_DXTConvolution |
|
CLSID_DXTGradientD |
|
CLSID_DXTLabel |
|
CLSID_DXTransformFactory |
|
CLSID_DXTResampler |
|
CLSID_DXTScale |
|
CLSID_DXTWipePP |
|
CLSID_DXTWipe |
|
CLSID_Explode |
|
CLSID_ExplodeProp |
|
CLSID_FadePP |
|
CLSID_FGControl (Control Distributor) |
|
CLSID_FileSource (MPEG file reader) |
|
CLSID_FileWriter |
|
CLSID_FilgraphManager |
|
CLSID_FilterGraph (Filter Graph) |
|
CLSID_FilterGraphNoThread (Filter Graph no thread) |
|
CLSID_FilterMapper (Filter Mapper) |
|
CLSID_FilterMapper2 |
|
CLSID_FlipProp |
|
CLSID_Flip |
|
CLSID_GradientPP |
|
CLSID_HeightField |
|
CLSID_HtFieldProp |
|
CLSID_InfTee |
|
CLSID_LegacyAmFilterCategory (Filter category) |
|
CLSID_Line21Decoder (Line21 (CC) Decoder) |
|
CLSID_LUTBuilderPP |
|
CLSID_MediaPropertyBag |
|
CLSID_MemoryAllocator |
|
CLSID_MidiRendererCategory (Midi renderer category) |
|
CLSID_ModexProperties |
|
CLSID_ModexRenderer (Modex video renderer) |
|
CLSID_MOVReader (.MOV reader (old)) |
|
CLSID_MPEG1Doc (MPEG System stream) |
|
CLSID_MPEG1PacketPlayer (Takes MPEG1 packets as input) |
|
CLSID_MPEG1Splitter (MPEG splitter) |
|
CLSID_OverlayMixer |
|
CLSID_PerformanceProperties |
|
CLSID_PersistMonikerPID (IPersistMoniker PID) |
|
CLSID_PixelatePP |
|
CLSID_Pixelate |
|
CLSID_ProtoFilterGraph (Prototype filtergraph) |
|
CLSID_QTDec QT Decoder |
|
CLSID_QualityProperties |
|
CLSID_QuickTimeParser (QT Splitter) |
|
CLSID_ResamplePP |
|
CLSID_Ripple |
|
CLSID_RipProp |
|
CLSID_RuffleProp |
|
CLSID_Ruffle |
|
CLSID_SeekingPassThru |
|
CLSID_SimpleCutList |
|
CLSID_SmartTee |
|
CLSID_SystemClock (Reference clock) |
|
CLSID_SystemDeviceEnum (ICreateDevEnum) |
|
CLSID_TextRender (Text renderer) |
|
CLSID_TransmitCategory (External Renderers Category) |
|
CLSID_TVAudioFilterPropertyPage |
|
CLSID_TVTunerFilterPropertyPage |
|
CLSID_URLReader (Async URL Reader) |
|
CLSID_VBISurfaces |
|
CLSID_VfwCapture (Vfw 2.0 Capture Driver) |
|
CLSID_VideoCompressorCategory |
|
CLSID_VideoFileClip |
|
CLSID_VideoInputDeviceCategory (Video capture category) |
|
CLSID_VideoProcAmpPropertyPage |
|
CLSID_VideoRenderer (Video renderer) |
|
CLSID_VideoStreamConfigPropertyPage |
|
CLSID_VPObject |
|
CLSID_VPVBIObject |
Date Last Updated: February 8, 1999

Comments
mpeg writer filter
Posted by Legacy on 12/10/2002 12:00amOriginally posted by: VIBHAVARI
ReplyBroken media files handling
Posted by Legacy on 05/25/2001 12:00amOriginally posted by: AlexZ
If anyone cleared up, how Windows Media Player works, could you tell me, what does it's renderer filter do, when it gets audio stream with breaks (that is timestamp of one of recieved packets sufficiently more than previous timestamp + real timelength of data block; difference is about 0.03 s or more). There are files on witch i should ignore all breaks and treat audio stream as continuos (ASF files), and there are another kind of files, when i must fill breaks with something (it's usually last audio sample)(broken DATs with MPEG1 data). Is there any general way of solving this problem (there must be some, becose renderer recieves unpacked audio, and knows nothing about former format of packed file), or i should treat each format separately.
ReplyThe most interesting thing, that player plays all the files without mistiming.
I'll be very pleased if someone helps me.
How can I buffering in DirectShow?
Posted by Legacy on 04/17/2001 12:00amOriginally posted by: Anatoly B.
I wrote transform filter with samples buffering for some
Replyspeech recognition task. Direct Sound renderer was used as a
render filter. I spent a lot of time to understand how to obtain valid media position(corresponding to valid sound playing position) from Filter Graph. Is it possible at all? Or I must rewrite render filter to get
valid sound playing position directly from render filter
instead of using interface on Filter Graph.
Best regards to any who can help me.
ATL and Direct Show Source Filter?
Posted by Legacy on 05/14/1999 12:00amOriginally posted by: Robbie
Does anyone know of some documentation or source code where a DirectShow source filter is implemented using ATL?
Reply