Iplay Sample Application

Version: 1,0,0,3	Date:  Dec 20, 1996

Table of Contents
-----------------
1.  Overview
2.  System Requirements
3.  Application Structure
4.  Build Instructions
5.  How To Run
6.  Known Limitations
7.  References


1. Overview
-----------
Iplay is a sample ActiveMovie video player.   The purpose of Iplay is to  
demonstrate the Indeo Video Interactive API in the ActiveMovie 
environment.  


2.  System Requirements
-----------------------
Windows 95 or Windows NT
ActiveMovie 2.0 Alpha SDK
MSVC++ 4.2
ir41_32.ax placed in the windows system directory and registered
  (   drive:\msdev\bin\regsvr32   drive:\windows\system\ir41_32.ax   )


3.  Application Structure
-------------------------
Iplay is written in C++ using the Microsoft Foundation Class (MFC) 
library.  It follows the standard structure of an MFC application:

	File			Class			Description
	------------------------------------------------------------------
	Iplay.cpp		CIPlayApp		The application.
	Iplay.h

	Mainfrm.cpp		CMainFrame		The main frame window.
	Mainfrm.h

	Indeo.cpp		Cindeo			The form view containing
	Indeo.h						the Indeo-specific controls.

	IPlayDoc.cpp		CIPlayDoc		The "document", which in this
	IPlayDoc.h					case is a filter graph.

There are also include files and resource files that make up Iplay.  The 
resource files are located in the .\res subdirectory of the Iplay source
directory.

	File				Description
	------------------------------------------------------------------
	Ax_spec.h			The Indeo Video Interactive interface
					definitions for ActiveMovie.

	Iplay.rc			The Iplay resource definitions.

	Bitmap1.bmp			The custom toolbar bitmap.

	Indeo.ico			The Indeo icon.

	Vfw_spec.h			Indeo-specific data structures.

All ActiveMovie applications must include the following ActiveMovie 
header files.

	File				Description
	------------------------------------------------------------------
	control.h			Interface to type library: QuartzTypeLib.

	evcode.h			Standard Quartz event codes.

	strmif.h			COM interface definitions.

	uuids.h				The GUIDs for the MediaType type and class
					ids for well-known components.


4.  Build Instructions
----------------------

    1. Run Microsoft Developer Studio.
    2. Open Workspace .\src\iplay.mak.
    3. Add the ActiveMovie include files directory (drive:\MSAMovDK\include)
       to the Developer Studio Include files directory list. To do this,
       select Options from the Tools menu, click on the Directories tab,
       select "Include files" from the "Show directories for" drop-down list, 
       and add the directory to the list.
    4. Add the ActiveMovie library files directory (drive:\MSAMovDK\lib)
       to the Developer Studio Library files directory list. To do this,
       select Options from the Tools menu, click on the Directories tab,
       select "Include files" from the "Show directories for" drop-down list, 
       and add the directory to the list.
    5. Update all dependencies for the Release and Debug versions. To do this,
       select Update All Dependencies from the Build menu.
    6. Rebuild all.


5.  How To Run
--------------

The Iplay application is a standard Windows 95/NT application.  It can 
be started by double-clicking its icon, or by using the Run command.  
Iplay also supports drag-and-drop; you can drag a movie file (.avi) onto 
the Iplay application to open the file in Iplay. If you are working in 
Microsoft Developer Studio, from the Build menu select Execute 
Iplay.exe.

Iplay can play any movie file, not just Indeo Video Interactive (IVI) 
format movies.  If a movie is not IVI format, the Indeo-specific 
controls will not be enabled.

When the application starts, the initial view is just the menu and the 
toolbar.  Click the Indeo icon on the toolbar to show/hide the extended 
view which contains the Indeo-specific controls.

Using The Indeo-Specific Controls

Indeo Video Interactive provides some special settings that enhance 
standard playback.  The settings are of two types: sequence options and 
frame options.  The sequence options affect a playback sequence and must 
be set prior to playing the movie; once the movie is playing the 
sequence options cannot be changed.  The frame options affect each frame 
of the movie and can be changed at any time while the movie is stopped 
or playing.

The sequence options consist of Scalability, Access Key, Alt-Line and 
Transparency Fill.  Turning Scalability on allows the Indeo codec to 
scale playback performance by dropping bands instead of dropping frames 
to maintain frame rate.  A movie must be encoded with Scalability in 
order for this option to have an effect on playback.  The Access Key is 
an encrypted integer that provides password protection to a movie.  The 
Access Key is set at encode time, and at playback the Access Key option 
must be turned on and the correct access key value provided in order to 
play the movie. If a movie was not encoded with an Access Key, this 
option has no effect.  Turning Alt-Line on affects playback when the 
movie is resized to exactly double its original size (zoom by two).  
When the movie is "zoomed" and Alt-Line is enabled, the codec stretches 
the image by filling alternate lines of the output buffer with black 
lines.  The black lines are written only once (if the window is not 
moved around on the screen), resulting in some performance savings 
because less information has to be written to the output buffer for each 
frame.  Turning Transparency Fill on or off only affects movies that 
were encoded with transparency.  When Transparency Fill is on, the codec 
writes the "transparent" pixels to the output buffer as a solid color.  
When Transparency Fill is off, the codec does not write the transparent 
pixels to the output buffer.  

The frame options consist of Brightness, Saturation, Contrast, Decode 
Time, Decode Rect and View Rect.  Brightness, Saturation, and Contrast 
control the appearance of the movie’s colors.  They can range in value 
from -128 to 128, with 0 being normal.  Decode Time is the time limit in 
milliseconds for the codec to decode each frame.  A setting of 0 means 
the codec should use the default time limit based on the encoded frame 
rate of the movie.  For example, a 15 frame-per-second (fps) movie has a 
default decode time limit of 1/15 x 100 = 66.7 ms.  The Decode Rect is 
the portion of the source image that is actually decoded.  The Decode 
Rect cannot exceed the boundaries of the source image.  A Decode Rect 
with with 0 width and 0 height located at 0,0 defaults to the entire 
source image.  The View Rect is the portion of the decoded image that is 
actually written to the output buffer.  The View Rect cannot exceed the 
boundaries of the Decode Rect.  A View Rect of 0 width and 0 height 
located at 0,0 defaults to the entire Decode Rect.


6.  References
--------------

Indeo Video Interactive Features and Capabilities
(http://www.intel.com/pc-supp/multimed/indeo)

