Audio and Video Technologies for C++ and Visual Basic Application Developers

 

Microsoft Corporation

Updated August 2004

 

Applies to:

   DirectX® SDK

   DirectShow® SDK

   DirectSound® SDK

   Windows Media® Player SDK

   Windows Media Format SDK

   Windows Media Encoder SDK

   Windows Media Services SDK

 

Summary: This document reviews several audio and video technologies that aid application developers who use the C, C++, and Microsoft Visual Basic programming languages.

 

Introduction

The Microsoft® digital media platform includes the following audio and video technologies for application developers who use the C, C++, Microsoft Visual Basic®, and Microsoft Visual Basic .NET programming languages:

DirectShow SDK

Microsoft® DirectShow®, part of the Microsoft DirectX® SDK, enables the rapid development of virtually any type of custom digital media application. Choices range from live capture from sources such as DV camcorders, TV cards, webcams, and microphones, to editing, compositing, encoding and decoding, and DVD or file playback on two-dimensional or three-dimensional surfaces.

DirectShow works with components called "filters" that perform specific tasks on data streams. Applications connect these filters in configurations called filter graphs. Many filters are provided with the operating system, and custom filters can be added.

The core DirectShow application programming interface (API) is accessible primarily through C++, although file playback and DVD navigation functionality is exposed to Visual Basic® applications.

For more information on the DirectShow components, see DirectShow in the Microsoft DirectX documentation.

DirectShow Editing Services (DES)

Microsoft® DirectShow® Editing Services (DES) is an API that simplifies the tasks involved in video editing. DES is built on top of the core DirectShow architecture and abstracts much of the complexity of DirectShow by providing a set of interfaces designed specifically for manipulating video editing projects.

DES supports many input and output formats including Windows Media® Video (WMV) and Windows Media Audio (WMA) files. DES is accessible from both C++ and Visual Basic® and is documented as part of DirectShow.

For more information on DirectShow Editing Services, see Introduction to DirectShow Editing Services in the Microsoft DirectX® documentation.

TV Technologies

DirectShow® includes a collection of components, referred to as Microsoft® TV Technologies, which simplifies the development of television applications that are based on the next generation of digital TV tuner cards supporting the new Broadcast Driver Architecture (BDA). The Microsoft TV Technologies APIs are part of DirectShow and are accessible through C++ as well as Visual Basic®, Visual Basic Scripting Edition, or Microsoft JScript®.

Microsoft TV Technologies include the following components:

  • Filters that handle network configuration and control, MPEG-2 demultiplexing, and table parsing and IP Data delivery for the main digital TV standards including DVB and ATSC.
  • A Microsoft ActiveX® control called the Video Control that simplifies TV application development and provides automation support for both digital and analog TV tuners.
  • Guide Store, an API for storage and retrieval of Electronic Program Guide (EPG) data or other information.
  • A set of objects that insulate applications from the specific tuning details of each network type, and ensure that applications will be able to tune on new or non-standard network types with no modifications.

For more information on Microsoft TV Technologies, see Microsoft TV Technologies in the Microsoft DirectX® documentation.

DVD Support

The DirectShow® SDK provides three options for creating DVD applications. C++ developers can use the COM interfaces exposed by the DVD Navigator source filter. Visual Basic® developers can use the MSWebDVD ActiveX® control or the Video Control. All of these options provide full support for the DVD Annex J command set, as well as additional functionality suited to PC-based DVD applications.

For more information on DVD support in DirectShow, see the DVD Applications topic in the Microsoft® DirectX® documentation.

DirectX Video Acceleration

Microsoft® DirectX® Video Acceleration provides an API and a corresponding DDI for acceleration of digital video decoding. The API is used by developers of software video decoders written in C or C++, and the DDI is used by developers of video device drivers. Use of these interfaces provides cross-vendor compatibility between user-mode software decoders and hardware acceleration capabilities.

For more information on DirectXVideo Acceleration, see DirectX VA: Accelerating Video Codec Processing.

DirectSound

Microsoft® DirectSound®, which is part of the DirectX® SDK, handles the playback of waveform audio. Applications can use the DirectSound API to play sound effects where low latency is required.

The DirectX SDK is available for C++ and for managed-code languages such as C# and Visual Basic® .NET. Previous versions of Visual Basic are not supported.

For more information, see DirectSound in the DirectX SDK documentation.

DirectX Media Objects (DMO)

If you are creating an audio or video effect or a decoder, a simpler alternative to creating a DirectShow® filter is to create a Microsoft® DirectX® Media Object (DMO). A DMO can be used in a DirectShow filter graph, in a DirectSound® application, or independently as a stand-alone module within an application.

DMOs are created using the DirectX SDK. They are documented in the DirectShow Help file, but they are not dependent on DirectShow in any way. DMOs can only be created using C++ and can only be used by C++ client applications.

For more information, see DirectX Media Objects in the DirectX SDK documentation.

Windows Media Player SDK

The Microsoft® Windows Media® Player ActiveX® control provides a simple and robust mechanism for playing digital media content on a Web page or in an application. It can be programmed through Microsoft Visual C++® and Visual Basic® 6.0, as well as through managed languages using the .NET Framework, including C#, and Visual Basic .NET.

For more information, see the Windows Media Player 10 SDK.

Windows Media Format SDK

The Microsoft® Windows Media® Format SDK is used to create applications that read and write Windows Media audio, video, and script files, including files that implement digital rights management (DRM). The SDK can be used to create server-side streaming applications as well as client-side playback or file-conversion applications.

The Windows Media Format SDK supports only C++.

For more information, see Windows Media Format 9.5 SDK.

Windows Media Encoder SDK

The Microsoft® Windows Media® Encoder application compresses live or stored audio and video content into Windows Media files or streams. It enables users to create multimedia productions from devices attached to their computer, translate audio/visual files into Windows Media Format, and either save the Windows Media-based content to a local file or broadcast it to the Internet. Applications written in C++ or Visual Basic® can use this SDK to customize the encoder's user interface, and file conversion and streaming capabilities.

For more information, see Windows Media Encoder 9 Series SDK.

Windows Media Services SDK

The Windows Media® Services SDK is included in the Platform SDK. It is designed for anyone who wants to develop a Windows Media server application by using a powerful automation-based API. With this SDK, a developer using C++, Visual Basic®, or a scripting language can programmatically manage a Windows Media server to send digital media content to clients on either unicast-enabled or multicast-enabled networks.

For more information, see Windows Media Services 9 Series SDK.

Page view tracker