In Win16 and Win32, Microsoft created a partially unified system for handling multimedia. This system consists of the high level Media Control Interface or MCI Application Programming Interface (API) and associated MCI drivers. Playback of AVI files can be controlled through the high level MCI API and the MCIAVI.DRV MCI driver.
The Windows Multimedia System also provides a number of low level API's such as the WAVE API for waveform audio and associated device drivers such as the WAVE device drivers for sound cards.
Under Windows NT 4.0, the MCI and low level API's are stored in the file WINMM.DLL
The API's are:
MCI (high level API - useful for AVI playback) joy (joystick devices) midi (MIDI devices) mixer (MIXER devices) wave (waveform audio input and output devices) mmio (low level functions to parse RIFF files) time (timers etc.) aux (auxiliary sound device)
When a program loads the MCIAVI driver, the Multimedia System has the intelligence to locate and invoke the appropriate MCI driver (MCIAVI.DRV in 16-bit Windows or MCIAVI32.DLL in 32 bit windows) and pass the MCI commands such as MCI_PLAY to the MCI driver.
The MCIAVI driver then calls Video for Windows to decompress the video, GDI (or another graphics API) to display the decoded frames, and WAVE to output the decoded audio samples.
A dump of the functions exported by winmm.dll under NT 4.0 generated with the Microsoft DUMPBIN.EXE utility follows:
Microsoft (R) COFF Binary File Dumper Version 5.00.7022 Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
Dump of file winmm.dll
File Type: DLL
Section contains the following Exports for WINMM.dll
0 characteristics 31EC70B4 time date stamp Tue Jul 16 21:48:52 1996 0.00 version 2 ordinal base 197 number of functions 197 number of names
Video for Windows is an entire system for handling video in Microsoft Windows. It was part of MS Windows 3.1 The original Video for Windows is a collection of 16 bit windows utilities, dynamic link libraries, and other components.
The AVI file and file format is a central part of Video for Windows.
Microsoft Visual C++ 5.0 has a Video for Windows include file Vfw.h which contains the various API's that make up Video for Windows:
* COMPMAN - Installable Compression Manager. * DRAWDIB - Routines for drawing to the display. * VIDEO - Video Capture Driver Interface * * AVIFMT - AVI File Format structure definitions. * MMREG - FOURCC and other things * * AVIFile - Interface for reading AVI Files and AVI Streams * MCIWND - MCI/AVI window class * AVICAP - AVI Capture Window class * * MSACM - Audio compression manager.
Microsoft released a Video for Windows 1.0 for Windows 3.1 in November 1992, followed by Video for Windows 1.1. There have been several versions of Video for Windows 1.1 identified by a trailing alphabetical character such as 1.1e The last and most recent version of Video for Windows 1.1 for Windows 3.x is Video for Windows 1.1e This is available by ftp from Microsoft.
Microsoft has provided a 32-bit version of Video for Windows for Windows 95, while threatening to replace Video for Windows with ActiveMovie. This version has 32 bit versions of the Video for Windows codecs such as Cinepak. Other DLL's in the Video for Windows 95 are also 32-bit How much of the Video for Windows in Windows 95 is 32 bit code is not clear; many of the codecs are clearly 32 bit codecs. Nor is it clear how much has been changed or modified besides the convesion to 32-bit code.
Windows NT 3.5, 3.51 and Windows NT 4.0 include a Video for Windows for NT. Presumably this is strictly 32-bit. It is not clear how much code is shared between the NT Video for Windows and the Windows 95 Video for Windows. Note that hardware device drivers are different between Windows 95 and NT 3.5/3.51/4.0.
ActiveMovie 1.0 and DirectShow (formerly ActiveMovie 2.0) are 32-bit successors to Video for Windows for both Windows 95 and Windows NT. These support AVI files. ActiveMovie started out life under the code name Quartz; early Beta releases of ActiveMovie were known as Quartz.
ActiveMovie 1.0 is bundled with Windows 95b (OEM Service Release 2.x) and Internet Explorer 3.x/4.x for Windows 95. It can also be downloaded and installed in Windows 95 separately. Note that ActiveMovie 1.0 does NOT completely replace Video for Windows. For example, ActiveMovie 1.0 does not provide a video capture mechanism. Video capture still uses Video for Windows capture drivers.
ActiveMovie 1.0 is a 32 bit software component that can run in NT's user mode. It runs under Windows NT 4.0 as well as Windows 95.
DirectShow (ActiveMovie 2.0) will supposedly add a number of new features including video capture support, kernel mode streaming, and miscellaneous other features.
VIDEO FOR WINDOWS under WINDOWS NT 4.0
Under NT 4.0, Video for Windows is implemented as a collection of 32-bit DLL's in the Microsoft 32-bit Common Object File Format or COFF format. These are usually located in the /WINNT/SYSTEM32 directory where Windows NT stores most of the system DLL's, drivers, and so forth.
MSVFW32.DLL ( Microsoft Video for Windows DLL - NT 4.0 ) AVIFIL32.DLL ( AVIFILE API for Reading and Writing AVI Files and Streams ) AVICAP32.DLL ( AVI Capture Window Class ) MCIAVI32.DLL ( Video for Windows MCI Driver ) MSACM32.DRV ( Microsoft Audio Compression Manager ) MSACM32.DLL ( more Microsoft Audio Compression Manager )
MSRLE32.DLL ( Microsoft RLE Video Codec ) IR32_32.DLL ( Intel Indeo 3.2 Video Codec ) MSVIDC32.DLL ( Microsoft Video 1 Codec ) ICCVID.DLL ( Cinepak for Windows 32 - Radius )
What is in MSVFW32.DLL?
MSVFW32.DLL includes the DRAWDIB, Installable Compression Manager or ICM, and MCI Windows components of Video for Windows. Other components are stored in other DLL's.
This is a dump of the functions exported by MSVFW32.DLL Version 4.00
Microsoft (R) COFF Binary File Dumper Version 5.00.7022 Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
Dump of file msvfw32.dll
File Type: DLL
Section contains the following Exports for MSVFW32.dll
0 characteristics 31EC70E9 time date stamp Tue Jul 16 21:49:45 1996 0.00 version 2 ordinal base 47 number of functions 47 number of names
John McGowan's AVI Overview: Programming and Other Technical Topics
John McGowans AVI Overview: Programming and Other Technical Topics Windows Multimedia SystemIn Win16 and Win32, Microsoft created a partially unified systemfor handling multimedia. This system c