VIEWS: 31 PAGES: 14 POSTED ON: 6/5/2010
Microsoft DirectX Overview Microsoft Corporation November 2000 Summary: This article provides a high-level explanation of Microsoft DirectX and the components that make up the DirectX application programming interfaces (APIs). (16 printed pages) Contents Introduction The Power of DirectX Graphics What’s New in DirectX Graphics The Power of DirectX Audio What's New in DirectX Audio The Power of DirectPlay What's New in DirectPlay The Power of DirectInput What's New in DirectInput The Power of DirectShow What's New in DirectShow Introduction Microsoft® DirectX® is a group of technologies designed by Microsoft to make Microsoft® Windows® - based computers an ideal platform for running and displaying applications like games that are rich in real- time full-color 3-D graphics, video, interactive music, and surround sound. Built directly into the Windows family of operating systems, DirectX is an integral part of Microsoft Windows 98, Microsoft Windows Millennium Edition (Me), and Microsoft Windows 2000, as well as Microsoft Internet Explorer. If required, DirectX components will also be automatically updated in the operating system by the latest games and multimedia applications as part of their installation. DirectX gives software developers a consistent set of APIs (application programming interfaces) that provides them with improved access to the advanced features of high-performance hardware such as 3-D graphics accelerators and sound cards. These APIs control what are called “low-level functions,” including graphics memory management and rendering; support for input devices such as joysticks, keyboards, and mice; and control of sound mixing and sound output. The low-level functions are grouped into components that make up DirectX: Microsoft Direct3D®, Microsoft DirectDraw®, Microsoft DirectInput®, Microsoft DirectMusic®, Microsoft DirectPlay®, Microsoft DirectSound®, and Microsoft DirectShow®. DirectX provides developers with tools that help them get the best possible performance from the machines they use. It provides explicit mechanisms for applications to determine the current capabilities of your system’s hardware so they can enable optimal performance. Before DirectX, developers creating multimedia applications for PCs had to customize their products so that the products would work well on the wide variety of hardware devices and configurations available on Windows machines. DirectX provides a “hardware abstraction layer” (HAL for short) that uses software drivers to communicate between game software and computer hardware. As a result, developers can use the single consistent paradigm of DirectX to implement their products across a wide range of hardware devices and configurations. The Power of DirectX Graphics PC graphics technology is advancing more rapidly than any other platform. Microsoft Direct3D enables computers running Microsoft Windows to display the most advanced interactive 3-D graphics available on any platform. It enables applications to access the latest hardware accelerated 3-D technologies designed for rendering such graphics. It allows the quality of graphics experience needed to meet and go beyond the needs of games ported from any entertainment platform. Direct3D is a low-level 3-D API that is ideal for developers who need to provide powerful media experiences like games or high-performance multimedia applications to the Windows operating system. Other applications such as Web 3-D components, 3-D authoring tools (like modelers and animation systems), as well as technical applications (like CAD, simulation systems, and scientific visualization) operate efficiently on PCs. Direct3D provides excellent game graphics on computers running Windows 95 or later, or Windows 2000. Direct3D for DX6 added: Flexible vertex format for geometry definition Vertex buffers for geometry storage Multi-Texture rendering Automatic texture management Switchable depth buffering (using z-buffers or w-buffers). Per-pixel environment mapping via BUMPENVMAP for glistening surfaces and water effects Full support on Windows 95 and Windows 98. Direct3D for DirectX 7.0 includes: Hardware transform and hardware lighting support Environment mapping with cubic environment maps Geometry blending Improved automatic texture management Automatic texture coordinate generation, texture transforms, projected textures, and arbitrary clipping planes. D3DX utility library Full support on Windows 95, Windows 98, Windows Me, and Windows 2000. Support for the Intel MMX architecture, Intel Streaming Single-Instruction, Multiple-Data (SIMD) Extensions (SSE)®, and AMD® 3DNow® architecture. Direct3D enables a low-overhead connection to 3-D hardware. This comes at a price, however. You must provide explicit calls for transformations and lighting, you must provide all the necessary matrices, and you must determine what kind of hardware is present and its capabilities. What's New in DirectX Graphics Microsoft DirectX 8.0 maintains backward compatibility by exposing and supporting all objects and interfaces offered by previous releases of DirectX. Beyond that, Direct3D adds many new features and performance enhancements as part of the new DirectX 8.0 Microsoft Direct3D API interfaces. Complete integration of DirectDraw and Direct3D Simplifies application initialization and improves data allocation and management performance, which reduces memory footprint. Geometry and texture objects can be managed in a consistent way, with a much more flexible paradigm for defining geometry input streams. Programmable vertex processing language Enables developers to write custom shaders for morphing and tweening animations, matrix palette skinning, user-defined lighting models, general environment mapping, procedural geometry operations, or any other developer-defined algorithm. Programmable pixel processing language Enables programmers to write custom hardware-accelerated shaders for general texture and color blending expressions, per-pixel lighting (bump mapping), per-pixel environment mapping for photo-real effects, or any other developer-defined algorithm. Multisampling rendering support Enables full-scene anti-aliasing and multisampling effects, such as motion blur and depth-of-field blur. Point sprite support Enables high-performance rendering of particle systems for sparks, explosions, rain, snow, and so on. 3-D volumetric textures Enable flexible texturing of arbitrary geometry, range attenuation in per-pixel lighting and volumetric atmospheric effects. Higher-order primitive support Enhances the appearance of 3-D content by creating smoother geometric shapes, which can also be more easily imported from major 3-D authoring tools. Higher-level technologies Includes 3-D content creation tool plug-ins for export to Direct3D of skinned meshes using a variety of Direct3D techniques, multiresolution level-of-detail (LOD) geometry, and higher-order primitive surface data. Indexed vertex blending Extends geometry blending support to allow the matrices used for vertex blending to be referred to using a matrix index. Expansion of the Direct3DX Utility Library D3DX contains a wealth of new functionality. The Direct3DX utility library is a helper layer that sits on top of Direct3D to simplify common tasks encountered by 3-D graphics developers. Includes a skinning library, support for working with meshes, and functions to assemble vertex and pixel shaders. Note that the functionality supplied by D3D_OVERLOADS, first introduced with Microsoft DirectX 5.0, has been moved to the Direct3DX utility library. The Power of DirectX Audio DirectX Audio does much more than simply play sounds. It provides a complete system for implementing a dynamic soundtrack that takes advantage of hardware acceleration, Downloadable Sounds (DLS) DirectX Media Objects (DMOs) and advanced 3-D positioning effects. By using the DirectMusic and DirectSound interfaces in your application, you can do the following: Load and play sounds from files or resources in MIDI, wave, or DirectMusic Producer run time format. Play from multiple sources simultaneously. Schedule the timing of musical events with high precision. Send tempo changes, patch changes, and other MIDI events programmatically. Use Downloadable Sounds. By using the DLS synthesizer, an application can be sure that message-based music sounds the same on all computers. An application can also play an unlimited variety of instruments and even produce unique sounds for individual notes and velocities. Locate sounds in a 3-D environment. Easily apply pitch changes, reverb, and other effects to sounds. Use more than 16 MIDI channels. DirectX Audio breaks through the 16-channel limitation and makes it possible for any number of voices to be played simultaneously, up to the limits of the synthesizer. Play segments on different audiopaths, so that effects or spatialization can be applied individually to each sound. Capture MIDI data or stream ("thru") it from one port to another. Capture wave sounds from a microphone or other input. If you use source files from DirectMusic Producer or a similar application, you can do much more: Control many more aspects of playback at run time, for example by choosing a different set of musical variations or altering the chord progression. Play music that varies subtly each time it repeats. Play waves with variations. Map performance channels to audiopaths, so that different parts within the same segment can have different effects. Compose wholly new pieces of music at run time, not generated algorithmically but based on components supplied by a human composer. Dynamically compose transitions between existing pieces of music. Cue transitions, motifs, and sound effects to occur at specified rhythmic points in the performance. These capabilities are the ones most often used by mainstream applications. DirectX Audio is designed to be used easily for the basic tasks, but it also allows low-level access to those who need it. It is also extensible. Specialized applications can implement new objects at virtually every stage on the audiopath, such as the following: Loaders to parse data in new or proprietary formats. Tracks containing any kind of sequenced data. Tools to process messages—for example, to intercept notes and apply transpositions, or to display lyrics embedded in a segment file. Custom sequencer. Custom synthesizer. Effects filters. Also part of DirectX Audio is DirectMusic Producer, an application that enables composers to create DLS collections, chordmaps, styles, and segments—the pieces that let you take full advantage of the power of DirectMusic. DirectMusic Producer also makes it possible to create playable segments that contain multiple time-stamped waves. These waves can be in compressed or uncompressed format and can be either streamed at run time or wholly contained in memory. As an application developer, you might never use DirectMusic Producer yourself, but it is a good idea to have a broad understanding of what it does so that you can work effectively with your sound design team. For an introduction from the application designer's perspective, see Compositional Music Elements in the help file. For more detail, see the DirectMusic Producer documentation. DirectX Audio delivers full functionality on Microsoft Windows 95, Microsoft Windows 98, and Microsoft Windows 2000. However, support for hardware synthesizers is available only on Windows 2000 and Windows 98 Second Edition. What's New in DirectX Audio The audio components of DirectX have undergone a major revision. DirectMusic and DirectSound are now a more unified API for playing sounds of all kinds, and many new capabilities have been added. The following list describes some of the new features: Integration of waves and message-based sounds in a single playback mechanism Wave files and resources can now be loaded by the DirectMusic loader and played by the DirectMusic performance. The application no longer needs to parse the wave and copy or stream it to a DirectSound buffer. The timing of wave playback is based on the DirectMusic master clock, and waves can be synchronized to musical events and processed by tools just like any other segment. The DirectSound API continues to be supported, and you can still play waves directly through DirectSound buffers. DirectSound continues to be the API for wave capture and full duplex. Special effects DirectX Media Objects can be attached to sound buffers to add effects. DirectX Audio provides standard effects such as reverb, chorus, distortion, and equalization and third-party effects can be added. More flexible and powerful audiopath model In previous versions of DirectMusic, performance channels were mapped to ports, and each port sent its output to a single DirectSound buffer. Under the new model, channels in a segment are mapped to audiopaths that control the data flow from the performance to the final output. Output from the synthesizer can be sent to multiple playback buffers, each with its own 3-D positioning and effects. Audiopaths can be created dynamically by the application or authored into segments. DLS2 Synthesis The DirectMusic synthesizer is now based on the Downloadable Sounds (DLS) Level 2 standard, providing higher-quality sound synthesis. New features of the DLS2 synthesizer include six-stage envelopes, support for stereo waves, layering of voices, release waveforms, and an additional low-frequency oscillator (LFO). Each voice has an optional low-pass resonant filter. Audio scripting Music composers and sound designers can gain greater control over the performance by using scripts. The application does not handle the details of playback but instead calls into the script. For example, a game event might trigger a script function. The script author can easily modify the soundtrack's response to the game event by modifying the function. Greater control over cueing A composer can set points in a segment that specify where the segment can begin playback, so that the segment can maintain its relationship to the time signature. Primary segments can contain arbitrary points where other segments can be cued, allowing greater control than cueing to the nearest measure, beat, or grid. A new segment cue flag, DMUS_SEGF_SEGMENTEND, causes the segment to play when the current primary segment finishes playing. Container object All components of a DirectMusic Producer project can be kept in a single file, making it easier to find and load all objects. Containers can also be embedded in segments, so that everything necessary to play a segment is kept within the segment. Enhanced MIDI controller support Curve messages now support RPN (registered parameter number) and NRPN (nonregistered parameter number) controller changes. Individual control over segment states Each playing instance of a segment can have its own audiopath, so parameters such as volume, pan, and pitch bend can be modified for each segment state individually. Simplified downloading and unloading of bands Bands can be downloaded and unloaded with a simple method call on the segment object. Dynamic track data generation New track configuration and play flags allow tracks to be recomposed each time the segment is played or looped. For example, a chordmap track can be configured to establish a new chord progression each time the segment plays. Improved run-time control over tracks Applications can set individual track configurations to disable playback and parameter control. Tracks can be configured to operate in clock time rather than music time. Tracks in self-controlling segments can be configured to override parameter tracks in controlling or primary segments. Notification of impending silence The performance notification event has a new notification type, DMUS_NOTIFICATION_MUSICALMOSTEND, which indicates that the last primary segment in the queue is about to end. This notification gives the application a chance to schedule a new segment. Infinite repetition of segments The new DMUS_SEG_REPEAT_INFINITE flag allows a segment to play for an indefinite time. Improved cache management Applications can more easily release unused objects that were loaded by other objects. Lyrics track Time-stamped text is sent to the performance by a segment containing a lyrics track. The Power of DirectPlay The Microsoft DirectPlay API is a media independent networking API that provides networking services at the transport protocol and session protocol levels. DirectPlay's media independence means that DirectPlay sessions can be run on TCP/IP networks, IPX networks, and over directly connected modems and serial cables. DirectPlay's media independence also allows it to be extended in the future to support new standards and protocols as they become widely deployed, such as IPv6, multicast, or Quality of Service protocols. This means that DirectPlay applications can improve over time, and track evolving network standards, without additional development by the application developer. For most purposes, your application can simply use the DirectPlay API, and enable DirectPlay to handle the details of network communication. DirectPlay provides many features that simplify the process of implementing many aspects of a multiplayer application, including transport and session level p rotocol services such as: Client/Server and Peer to Peer networking sessions Peer to Peer host migration Player and Group management Guaranteed and non-Guaranteed messaging Sequenced and non-Sequenced messaging Message fragmentation and reassembly Traffic throttling / Send queue monitoring Message priorities Connection statistics (round trip latency, packet loss, etc) Session description queries Additionally, in DirectX version 8.0, DirectPlay has been written with massive scalability of servers in mind. It uses an asynchronous callback model that allows maximum parallelism, and takes advantage of Windows 2000 performance features such as I/O completion ports. In version 8.0, DirectPlay is designed to scale up to the most ambitious massively multiplayer projects. Also included in DirectPlay are the DirectPlay Lobby APIs that allow applications to register themselves with DirectPlay, so that other applications can easily launch them and pass them network-addressing information. This allows you to write games that can be immediately launched by a number of different matchmaking services and utilities without having to write special code for each launcher. The DirectPlay Voice API is also included, which provides developers with everything they need to add real time voice communication to their applications with a minimum of development work while retaining maximum flexibility. DirectPlay Voice includes extremely low bandwidth codec technology that can be used royalty free in your applications, as well as many features that allow you very fine grained control over the voice communication experience. A more detailed list of DirectPlay Voice features is included below. DirectPlay Voice provides the following services: A selection of voice codecs from 64 kbit/sec down to 1.2 kbit/sec. Peer to peer, forwarding server, and mixing server topologies Completely flexible control of who hears whom within a session Automatic voice detection to control network transmission Automatic gain control to automatically set the microphone input volume Intelligent, configurable, adaptive queuing to automatically adjust to different and changing network conditions Integration with DirectSound, allowing for the application playback effects on a voice-by-voice basis such as 3-D positioning, reverb, etc. Capture focus to allow multiple DirectPlay Voice applications at once in the system Integration with DirectPlay for session and protocol level services. What's New in DirectPlay The networking component of Microsoft DirectX has undergone a major revision. Microsoft DirectPlay introduces a new set of interfaces that enable games to have more direct access to the hardware, providing better performance. The following list describes some of the new DirectPlay features. Interfaces have been completely rewritten. The complexity of creating a networked application has been dramatically simplified by separating the interfaces for creating peer-to-peer and client/server sessions. The interfaces for creating DirectPlay transport sessions, which are defined in the Dplay8.h header file, are now: IDirectPlay8Peer Provides methods for creating peer-to-peer sessions. IDirectPlay8Client Provides methods for creating the client-side portion of a client/server application. IDirectPlay8Server Provides methods for creating the server-side portion of a client/server application. Lobbying is now independent from the rest of DirectPlay. DirectPlay has removed the requirement that a lobby client work only with a DirectPlay application. Thi s will allow for either the lobby service provider or the application to implement DirectPlay without concern for the other. Lobby implementation is now separated into two simplified interfaces that are defined in the Dplobby8.h header file. IDirectPlay8LobbyClient This interface is used to manage a lobby client and for enumerating and launching lobby-aware applications. IDirectPlay8LobbiedApplication This interface is used to register a lobby launchable application with the system so it can be lobby launched. It also is used to get the connection information from the lobby to enable game launching without querying the user. Voice transmission has been added. DirectPlay Voice provides a set of interfaces to add real-time voice communication to an application. The following interfaces are defined in the Dvoice.h header file. IDirectPlayVoiceClient Provides methods to create and manage clients in a DirectPlay Voice session. IDirectPlayVoiceServer Provides methods to host and manage a DirectPlay Voice session. IDirectPlayVoiceTest Used to test DirectPlay Voice audio configurations. Addressing information has moved from GUID-based data to URL-based data format. Previous versions of DirectPlay used binary chunks of data with GUID addresses that were difficult to implement and that humans could not read. In DirectX 8.0, DirectPlay introduces the representation of addresses in URL format. A set of interfaces, defined in Dpaddr.h, is used to create and manipulate the new addressing format. IDirectPlay8Address Provides generic addressing methods used to create and manipulate DirectPlay addresses. IDirectPlay8AddressIP Provides IP provider-specific addressing services. Higher scalability and better memory management have been added. Increases in consumer bandwidth have dramatically affected network game design and implementation. Improved DirectPlay thread-pool management makes it easier to for the developer to design scalable, more robust applications that can support massive multiplayer online applications. Better support for Firewalls and Network Address Translators has been added. Writing network games that traverse Network Address Translators (NATs), Firewalls, and other Internet Connection Sharing (ICS) methods can be difficult, particularly for non-guaranteed (UDP) traffic. Because DirectPlay 8.0 has been developed with these issues in mind, it will support NAT solutions where possible. The DirectPlay 8.0 TCP/IP service provider uses a single, developer-selectable UDP port for game data, making it possible to configure firewalls and NATs appropriately. Additionally, DirectPlay makes use of UDP so that, for client/server games, clients behind some NATs will be able to connect to games without additional configuration. The Power of DirectInput Apart from providing services for devices not supported by the Microsoft® Win32® API, Microsoft DirectInput gives faster access to input data by communicating directly with the hardware drivers rather than relying on Microsoft Windows messages. DirectInput enables an application to retrieve data from input devices even when the application is in the background. It also provides full support for any type of input device, as well as for force feedback. Through action mapping, applications can retrieve input data without needing to know what kind of device is being used to generate it. The extended services and improved performance of DirectInput make it a valuable tool for games, simulations, and other real-time interactive applications running under Windows. DirectInput does not provide any advantages for applications that use the keyboard for text entry or the mouse for navigation. What's New in DirectInput The following are some of the new features in Microsoft DirectInput. Action mapping Microsoft DirectInput for Microsoft DirectX 8.0 introduces a major new feature: action mapping. Action mapping enables you to establish a connection between input actions and input devices that does not depend on the existence of particular device objects (such as specific buttons or axes). Action mapping simplifies the input loop and reduces the need for custom game drivers, custom device profilers, and custom configuration user interfaces in games. New DirectInput object features The DirectInput object is now represented by the IDirectInput8 interface. A new helper function, DirectInput8Create creates the object and retrieves this interface. IDirectInput8 has a new CLSID and cannot be obtained by calling QueryInterface on an interface to objects of the class CLSID_DirectInput used in earlier DirectX versions. New keyboard properties Two keyboard properties have been added: DIPROP_KEYNAME, which retrieves a localized key name, and DIPROP_SCANCODE, which retrieves the scan code. Joystick slider data in rglSlider array Joystick slider data, which was assigned to the Z-axis of a DIJOYSTATE or DIJOYSTATE2 structure under earlier DirectX versions, will now be found in the rglSlider array of those same structures. The Power of DirectShow DirectShow is a media-streaming architecture for the Microsoft Windows platform that enables the high- quality capture and playback of multimedia streams. The streams can contain video and audio data compressed in a wide variety of formats, including MPEG, audio-video interleaved (AVI), MPEG-1 Layer 3 (MP3), and WAV files. Capture can be based on either Windows Driver Model (WDM) or legacy Video for Windows (VFW) devices. DirectShow is integrated with DirectX technologies so that it automatically takes advantage of any video and audio acceleration hardware to deliver the highest possible performance. DirectShow is designed to make it as simple as possible to perform basic playback, format conversion, and capture tasks while at the same time providing access to the underlying stream control architecture for those applications that require custom solutions. You can even 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, Digital Video Editors, WAV to ASF Converters; MP3 Players; Digital and Analog Video and Audio Capture applications. What's New in DirectShow The following features are what's new in Microsoft DirectShow for Microsoft DirectX 8.0. Windows Media Format Support Two new filters enable DirectShow applications to read and write files in Microsoft® Windows Media™ Format. The ASF Reader filter reads and parses Windows Media Format files. The ASF Writer filter writes Windows Media Format files; it also does the necessary multiplexing and compressing. DirectShow and the Windows Media Software Development Kit offer complementary solutions for writing applications that create and playback Windows Media Format stream. DirectShow Editing Services DirectShow Editing Services is an API that supports video editing and sequenced video playback. You can use DES to create a wide range of applications. For example, with just a few method calls, you can sequence together audio and video clips, add an effect, and play back the result. Or, you c an create a entire video editing system. DES is built on top of the core DirectShow architecture. It provides a set of interfaces designed specifically for nonlinear video editing. DES replaces cutlists, which are no longer supported. New DVD Support Two new interfaces, IDVDControl2 and IDVDInfo2 greatly expand the functionality of the DVD Navigator. The new MSWebDVD ActiveX® control makes this functionality available to script-based applications. New DVD features include the following, among others: Karaoke multichannel audio support. AC-3 support for S/PDIF out. Audio volume control through the IBasicAudio interface. Support for frame stepping and frame-accurate seeking. Simplified access to DVD text information strings. Improved support for parental management controls. New MPEG-2 Transport and Program Stream Support A new filter, the MPEG-2 Demultiplexer, provides support for MPEG-2 transport streams and program streams in push-mode (for receiving data from live sources). Microsoft TV Technologies (Broadcast Driver Architecture) Microsoft® TV Technologies includes support for the new Broadcast Driver Architecture (BDA) and the Microsoft Tuning Model. The Broadcast Driver Architecture defines a framework that supports various component topologies for receiving digital and analog television. It includes software components for network configuration and control, demultiplexing, table parsing and IP Data delivery for the main digital TV standards including DVB and ATSC. The Tuning Model is a set of objects that enables applications to easily tune across various network types in a simple and uniform manner. DirectX Video Acceleration For decoder developers: DirectX Video Acceleration is an Application Programming Interface (API) and a corresponding Device Driver Interface (DDI) for hardware acceleration of digital video decoding processing, with support of alpha blending for such purposes as DVD subpicture support. It provides an interface definition focused on support of MPEG-2 "main profile" video (formally ITU-T H.262 | ISO/IEC 13818-2), but is also intended to support other key video codecs (e.g., ITU-T Recommendations H.263 and H.261, and MPEG-1 and MPEG-4). New Filters DirectShow includes several new filters: ASF Writer: Writes Windows Media Format files. ASF Reader: Reads and parses Windows Media Format files. MJPEG Decompressor: Decodes a video stream from motion JPEG to uncompressed video MJPEG Compressor: Compresses an uncompressed video stream using motion JPEG compression. MPEG-2 Demultiplexer: Demultiplexes MPEG-2 transport and program streams from live sources. Null Renderer: Discards samples without displaying or rendering the sample data. Applications can use this filter to discard data from a stream. Sample Grabber: Retrieves media samples as they move through the filter graph. Applications can use this filter to obtain poster frames or other media data. New Filter Graph Features The filter graph manager supports several new features: Dynamic Graph Building. You can now make changes to the filter graph while the graph is running. Previously, to add or remove filters, an application had to stop the graph, which interrupts the flow of data. Live Source Synchronization. DirectShow now supports synchronization of live sources. For example, a live audio stream can be synchronized with a live video stream. Frame Stepping. The filter graph manager exposes the new IVideoFrameStep interface, which enables an application to step through a video file one frame at a time. Changes to the Build Environment A new header file, DShow.h, replaces the previous header file, Streams.h The filter base classes now appear in the \Samples\BaseClasses directory under the SDK root directory. To use them, you must build the base-class library and link to it in your project. New GraphEdit Features GraphEdit includes some new features that enhance its use as a testing and debugging tool. "Graph Spy": Now GraphEdit can load a filter graph created by an external process. With this feature, you can see exactly what filter graph your application builds, with only a minimal amount of additional code in your application. Filter Information: When you choose Insert Filters from the Graph menu, the list of filters now includes each filter's registration information, including merit, number of pins, and the media types registered for each pin. To see this information, click the plus (+) symbol next to each filter in the tree view. DirectX Media Objects DirectX Media Objects (DMOs) are a new way to write data-streaming components. Like DirectShow filters, DMOs take input data and use it to produce output data. However, the application programming interfaces (APIs) for DMOs are much simpler than the corresponding APIs for DirectShow. As a result, DMOs are easier to create, test, and use than DirectShow filters. DMOs are fully compatible with DirectShow. You can use a DMO like a filter when you need the services that DirectShow provides, such as graph synchronization, intelligent connection, automatic handling of data flow, and thread management. However, DMOs do not require a filter graph, so applications can use DMOs without using DirectShow. Media Parameters Media parameters are a new set of APIs that support run-time changes to an object's properties. They offer precise control over properties that change rapidly and require both high performance and repeatability. They enable a property to follow an exact curve, such as a sine wave or inverse-square curve, in real time. Using media parameters, data transform objects can support a standard interface for controlling run-time behavior. They are particularly useful for audio effect DMOs and filters. For example, in an echo effect, the ratio of wet (processed) signal to dry (unprocessed) signal can follow a smooth curve. This type of behavior is critical in audio engineering, to avoid introducing artifacts into the recording.
Pages to are hidden for
"Advanced FTP_ or Teaching Fido To Phetch"Please download to view full document