DirectShow OS Design Development (Windows Embedded CE 6.0)

1/6/2010

DirectShow for Windows Embedded CE is an architecture for streaming media.

Microsoft DirectShow® provides high-quality playback of multimedia streams. It supports a variety of formats, including the following:

  • Advanced Streaming Format (ASF)
  • Motion Picture Experts Group (MPEG)
  • Audio-Video Interleaved (AVI)
  • WAV

DirectShow is integrated with other Microsoft DirectX® technologies.

It detects and uses video and audio acceleration hardware when available, but also supports systems without acceleration hardware.

DirectShow provides an OS design with the underlying infrastructure to support the capabilities of DirectShow.

It does not provide media codecs or filter graphs to support playback of media.

The DirectShow Audio and DirectShow Video Catalog items provide the codecs and rendering support for playback.

OS Design Information

The following table shows operating system design information for DirectShow.

Concept Description

Dependencies

Requires DirectDraw.

Requires Urlmon for OS designs without full browser support.

Hardware considerations

None.

DirectShow simplifies media playback and format conversion. It also provides access to the underlying stream control architecture for applications that require custom solutions. You can also create your own DirectShow components to support new formats or custom effects.

Examples of the types of applications you can write with DirectShow include:

  • DVD players
  • video editing applications
  • AVI to ASF converters

DirectShow is based on the Component Object Model (COM). To write a DirectShow application, you must understand COM client programming.

For most applications, you do not need to implement your own COM objects. DirectShow provides the components you need.

However, to extend DirectShow by writing your own components, you must implement them as COM objects.

Modules and Components

The following table components and modules implement DirectShow.

Item Module Component

DirectShow URL Reader

urlrdr

urlmon

Multimedia streaming support

amstream

amstream

Video compression manager support

icm

icm

Fraunhofer MP3 codec support

l3codec

l3filter

ACM driver used by DirectShow

msacmce

msacmce

Microsoft ADPCM audio codec support

msadpcm

msadpcm

G.711 audio codec support

msg711

msg711

GSM 6.10 audio codec support

msgsm610

msgsm610

RLE8 video codec support

msrle32

msrle32

A PCM bit/sample rate ACM conversion codec

pcmconv

pcmconv

DirectShow core functionality

quartz

quartz

A windowless video control

vrctl

vrctl

Microsoft Windows Media® audio support

wmadmod

wmadmod

Windows Media video support for v7-v9.

MPEG-4 v2, MPEG-4 v3, ISO MPEG-4 v1 support.

These legacy MPEG-4 codecs pre-date the publication of the MPEG-4 specification. They do not support all aspects of the current specification, and are provided only to support playback of media encoded using these legacy formats.

wmvdmod

wmvdmod

To use the URL Reader module of DirectShow urlrdr in an OS design that does not have full browser support, the OS design must contain the Microsoft Internet Explorer urlmon component.

If you are creating your OS design from the command line, be sure the urlmon component is included in the IE_MODULES setting in Cesysgen.bat. This dependency is handled automatically for OS designs created using the Microsoft Platform Builder IDE.

Implementation Considerations

The following table shows the relevant Sysgen variables.

Sysgen variable Description

SYSGEN_DSHOW

DirectShow Core

SYSGEN_DSHOW_ACMWRAP

ACM Wrapper Filter

SYSGEN_DSHOW_AVI

AVI Filter

SYSGEN_DSHOW_DISPLAY

DirectShow Display

SYSGEN_DSHOW_DMO

DirectX Media Object wrapper filter

SYSGEN_DSHOW_ERRORS

DirectShow Error Messages

SYSGEN_DSHOW_ICM

Video/Image Compression Manager

SYSGEN_DSHOW_IMAADPCM

IMA ADPCM Audio Codec

SYSGEN_DSHOW_MP3

MP3 Codec

SYSGEN_DSHOW_MP3DMOD

MP3 Decoder DMO

SYSGEN_DSHOW_MPEGA

MPEG-1 Layer 1 & 2 Audio Codec

SYSGEN_DSHOW_MPEGSPLITTER

MPEG-1 Parser/Splitter

SYSGEN_DSHOW_MPEGV

MPEG-1 Video Codec

SYSGEN_DSHOW_MSADPCM

MS ADPCM Audio Codec

SYSGEN_DSHOW_MSG711

G.711 Audio Codec

SYSGEN_DSHOW_MSGSM610

GSM 6.10 Audio Codec

SYSGEN_DSHOW_MSRLE

MS RLE Video Codec

SYSGEN_DSHOW_OVMIXER

Overlay Mixer

SYSGEN_DSHOW_SAMPLE

Sample filters, codecs, and applications for DirectShow

SYSGEN_DSHOW_VIDREND

DirectShow Video Renderer

SYSGEN_DSHOW_WAV

Wave/AIFF/au/snd File Parser

SYSGEN_DSHOW_WAVEOUT

Waveform Audio Renderer

SYSGEN_DSHOW_WMA

WMA Codec

SYSGEN_DSHOW_WMA_VOICE

WMA Voice Codec

SYSGEN_DSHOW_WMV

WMV v7-v9 / Legacy MPEG-4 Video Codec

MP3 codec optimizations for XScale-based platforms

If you are developing an XScale-based platform to support MP3 decoding, you can take advantage of some optimizations in the MP3 codec that are only available for XScale processors by including the following code in your %_WINCEROOT%\Platforms\<Hardware platform name>\<Hardware platform name>.bat file:

set _TGTCPUVARIANT=XSC 

This optimized codec is only available for OS designs based on Windows CE .NET 4.2 or later.

Application Development Topics

DirectShow Application Development

DirectShow Security

DirectShow Registry Settings

DirectShow Reference

See Also

Other Resources

DirectShow