Microsoft DirectShow Licensing
Summary: This article describes the license agreements that apply to Microsoft DirectShow, which is an integral component of the Microsoft DirectX suite of technologies. (5 printed pages)
Microsoft® DirectShow® became an integral component of the Microsoft DirectX® suite of technologies starting with the DirectX 8.0 release. It is not legally separable from DirectX, and is governed by the license agreements included with the DirectX SDK.
DirectX consists of three main elements. Each has a license agreement included with the SDK, in the DXF\DXSDK\license path. Compliance with the terms of the applicable agreements is required, and does not necessitate any signature return by the using party. The three elements are:
The software developer kit, which is governed by the file "DirectX SDK EULA.txt."
- **Redistribution runtime
**A redistribution run-time package provided for vendors to bundle with their applications. The applicable license is "directx redist.txt."
- **End-user runtime
**Run-time files available integrated with Microsoft Windows® operating system (OS) releases, or as update packages downloadable from Microsoft. Each requires adherence to its respective End-User License Agreement (EULA), which is displayed at the time of installation. The agreement is also available as "DirectX End User EULA.txt."
Any redistribution that is not in compliance with the terms of the EULAs above requires pre-approval from Microsoft.
This article contains the following sections:
- DirectShow Runtime Information
- Supported Operating Systems
- DirectShow Redistribution Options
- The DirectShow Video Capture Update for DirectX 8.0
DirectShow Runtime Information
DirectShow—and therefore DirectX—actually includes three runtime sets:
- SDK Runtime
Optionally installed during the SDK installation, SDK Runtime provides files necessary for execution on the developer's system. Debug or retail versions may be selected during installation, and the DirectX control panel allows switching between debug and retail for some of the components. DirectShow runtimes do not currently participate in this switching feature, so they require runtime reinstallation to place the proper versions. Although the retail runtime uses the same cabinet files as the redistribution runtime below, the SDK runtime installer and cab package (in path DXF\DXSDK\SDKDev\<debug> or <retail>) may not be redistributed.
- Redist Runtime
Available in path DXF\DXSDK\Redist\<version>, where <version> is directx8 for DirectX 8.0 and 8.0a, or DirectX81 for version 8.1.
- Cab file sets are provided to support both major operating system families (Windows NT®-based, and Windows 95 and Windows 98), and the files within contain localization for all languages.
- Support for Microsoft TV Technologies (Broadcast Driver Architecture) is provided by the BDA and BDANT cabs. Although these are termed optional, it is highly recommended that these cabs be included in all redistributions. All other cab files must be redistributed to be in compliance with the redistribution EULA.
- A default installer executable, dxsetup.exe, is provided that uses the DirectX Setup application programming interface (API). This API is simple and well described in the DirectX C++ documentation under DirectSetup. For customization such as integration into a larger installer, progress indications, or silent installation, the Setup API must be used directly. A sample, DInstall, is available in path DXF\DXSDK\samples\Multimedia\Misc\DXinstall. InstallShield Professional users may wish to explore the pre-built object for DirectX installation on the www.installshield.com site. Note that unlike the older DirectX Media SDK, no command-line parameters are supported with the default installer.
- The Setup API takes care of installation on all supported platforms. If the vendor requires special knowledge of the currently installed DirectX version, the DirectXGetVersion function in the DInstall sample noted earlier shows the preferred way to obtain this information.
- End-User Runtime
Available only by download from Microsoft. Separate size-optimized, self-extracting executable files are provided for each major operating system family and supported language.
Supported Operating Systems
- DirectX 8.0 and 8.0a
Windows 95, Windows 98, Windows 98 SE, Windows ME, Windows 2000. The DirectX 8.0 and DirectX 8.0a SDKs (but no runtimes) can be installed on Windows XP Home Edition and Windows XP Professional.
- DirectX 8.1
Windows 98, Windows 98 SE, Windows ME, Windows 2000, Windows XP Home Edition and Windows XP Professional (SDK and debug runtimes only). Windows XP Home Edition and Windows XP Professional contain the final DirectX 8.1 runtime. Attempts to install DirectX 8.0 or DirectX 8.0a runtimes on Windows XP Home Edition and Windows XP Professional will silently succeed (in order to satisfy existing installers) but will not update any files. In other words, DirectX 8.0 and DirectX 8.0a cannot be installed on Windows XP Home Edition and Windows XP Professional.
Microsoft recommends that you use the newest DirectX version whenever possible. The use of DirectX 8.0a is definitely preferred over DirectX 8.0, even though there is no difference between the two for DirectShow functionality (all DirectShow and dependent files are exactly the same).
DirectX 8.1 does have significant enhancements and bug fixes over DirectX 8.0a. DirectX 8.1 in Windows XP Home Edition and Windows XP Professional represents an immense effort in features and application compatibility. The older code bases for Windows 95, Windows 98, and Windows 2000 families often required porting of DirectX 8.1 changes to those platforms for consistent behavior. It is therefore recommended that vendors test their applications fully against DirectX 8.1 on all supported platforms.
Windows NT 4.0 is not supported by DirectX 8.0 and later. Foundational DirectX support is limited to DirectX 3.0a (when using SP3 or above), which is not compatible with the DirectX 8.0 DirectShow architecture. On this platform, DirectX Media 6 is the latest available release.
It is critical that the requested restart at the end of redistribution or end-user run time installation be allowed to occur prior to any other installations. DirectX setup marks several files that may be in use for update on the next restart cycle (using the RunOnce facility). Failure to adhere to this rule may result in corrupted installations and improper application behavior.
DirectShow Redistribution Options
After the most suitable DirectX 8 release has been selected, there are two options for redistribution:
The DirectX redistribution runtime is 27 megabytes (MB). Most vendors distribute applications on CD, where the runtime size is not an issue. The entire redistribution runtime directory is placed on the CD.
Some vendors want to distribute demos or full applications over the Internet or by other means that constrain the size or bandwidth. In this case, the vendor should prompt the end user to install or verify installation of the required DirectX version. To ensure integrity, the end user must download and install the appropriate runtime from the DirectX pages of the Microsoft Web site. These downloads are currently 7 MB for Windows 2000 and 11 MB for Windows 95 or Windows 98, resulting in significantly less overall burden than the redistribution runtime.
Using Windows Media™ Format with DirectShow requires additional steps. The DirectShow ASF Reader and ASF Writer filters depend on the presence of the Windows Media Format SDK. The safest method is to bundle its small (less than 1 MB) redistributable to ensure the proper minimum file versions on all platforms. For more information about redistributing and licensing the Windows Media Format SDK, see the Windows Media Licensing page.
The DirectShow Video Capture Update for DirectX 8.0
Two issues underlie the need for this small update (less than 1.5 MB) with DirectX 8.0 or 8.0a:
- In the interest of minimizing download size and providing the highest stability for the very large gaming population, the Microsoft TV Technologies cabinet files were not included in the DirectX 8.0 or 8.0a end-user runtime downloads. It was expected that all vendors needing this functionality would use the traditional CD distribution option to install the contents of these cabinets. In actuality, several vendors wanted to distribute by the lean option, and some did so without discovering this configuration factor.
- An issue with the setup logic increased the importance of this update. Installation of the end-user runtime (which has no BDA) followed by installation of an application bundling the redistribution runtime with a lower version results in no BDA files being installed. So, an 8.0a end-user installation plus an 8.0 redistribution installation yielded some older or nonexistent BDA files.
For both issues, the impact ranges from subtle to major disruption of proper analog video and TV capture, and digital-video camera functionality. The Video Capture Update is merely a modified setup, and these same BDA cab files in a self-extracting executable form. Installing it achieves exact file parity with the redistribution runtime, and corrects the anomalies. Note that installing the update over an 8.0 or 8.0a redistribution runtime will not result in any file changes. As with the main end-user runtime installations, the update is intended only for user installation and does not support silent installation. A separate restart is required after installation, as it also updates potentially locked files on the next start cycle.
These issues were corrected in DirectX 8.1 by including the newest BDA cab files in the end-user runtime downloads. There is no longer a need for the update with DirectX 8.1, and invoking it will not alter any files. DirectX 8.1 on Windows XP Home Edition and Windows XP Professional includes the newest BDA files, so unnecessary installation of the Video Capture Update is blocked.