im_format_wmv.h
Go to the documentation of this file.00001 /** \file
00002 * \brief Register the WMF Format
00003 *
00004 * See Copyright Notice in im_lib.h
00005 */
00006
00007 #ifndef __IM_FORMAT_WMV_H
00008 #define __IM_FORMAT_WMV_H
00009
00010 #if defined(__cplusplus)
00011 extern "C" {
00012 #endif
00013
00014 /** \defgroup wmv WMV - Windows Media Video Format
00015 * \section Description
00016 *
00017 * \par
00018 * Advanced Systems Format (ASF) \n
00019 * Windows Copyright Microsoft Corporation.
00020 * \par
00021 * Access to the WMV format uses Windows Media SDK. Available in Windows Only. \n
00022 * You must link the application with "im_wmv.lib"
00023 * and you must call the function \ref imFormatRegisterWMV once
00024 * to register the format into the IM core library. \n
00025 * Depends also on the WMF SDK (wmvcore.lib).
00026 * When using the "im_wmv.dll" this extra library is not necessary.
00027 * \par
00028 * The application users should have the WMV codec 9 installed:
00029 * http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx
00030 * \par
00031 * You must agree with the WMF SDK EULA to use the SDK. \n
00032 * http://wmlicense.smdisp.net/v9sdk/
00033 * \par
00034 * For more information: \n
00035 * http://www.microsoft.com/windows/windowsmedia/9series/sdk.aspx \n
00036 * http://msdn.microsoft.com/library/en-us/wmform/htm/introducingwindowsmediaformat.asp
00037 * \par
00038 * See \ref im_format_wmv.h
00039 *
00040 * \section Features
00041 *
00042 \verbatim
00043 Data Types: Byte
00044 Color Spaces: RGB and MAP (Gray and Binary saved as MAP)
00045 Compressions (installed in Windows XP by default):
00046 NONE - no compression
00047 MPEG-4v3 - Windows Media MPEG-4 Video V3
00048 MPEG-4v1 - ISO MPEG-4 Video V1
00049 WMV7 - Windows Media Video V7
00050 WMV7Screen - Windows Media Screen V7
00051 WMV8 - Windows Media Video V8
00052 WMV9Screen - Windows Media Video 9 Screen
00053 WMV9 - Windows Media Video 9 [default]
00054 Unknown - Others
00055 Can have more than one image.
00056 Can have an alpha channel (only for RGB) ?
00057 Internally the components are always packed.
00058 Lines arranged from top down to bottom or bottom up to top.
00059 Handle(0) return NULL. imBinFile is not supported.
00060 Handle(1) returns IWMSyncReader* when reading, IWMWriter* when writing.
00061
00062 Attributes:
00063 FPS IM_FLOAT (1) (should set when writing, default 15)
00064 WMFQuality IM_INT (1) [0-100, default 50] (write only)
00065 MaxKeyFrameTime IM_INT (1) (write only) [maximum key frame interval in miliseconds, default 5 seconds]
00066 DataRate IM_INT (1) (write only) [kilobits/second, default 2400]
00067 VBR IM_INT (1) [0, 1] (write only) [0 - Constant Bit Rate (default), 1 - Variable Bit Rate (Quality-Based)]
00068 (and several others from the file-level attributes) For ex:
00069 Title, Author, Copyright, Description (string)
00070 Duration IM_INT [100-nanosecond units]
00071 Seekable, HasAudio, HasVideo, Is_Protected, Is_Trusted, IsVBR IM_INT (1) [0, 1]
00072 NumberOfFrames IM_INT (1)
00073
00074 Comments:
00075 IMPORTANT - The "image_count" and the "FPS" attribute may not be available from the file,
00076 we try to estimate from the duration and from the average time between frames, or using the default value.
00077 We do not handle DRM protected files (Digital Rights Management).
00078 Reads only the first video stream. Other streams are ignored.
00079 All the images have the same size, you must call imFileReadImageInfo/imFileWriteImageInfo
00080 at least once.
00081 For optimal random reading, the file should be indexed previously.
00082 If not indexed by frame, random positioning may not be precise.
00083 Sequencial reading will always be precise.
00084 When writing we use a custom profile and time indexing only.
00085 We do not support multipass encoding.
00086 Since the driver uses COM, CoInitialize(NULL) and CoUninitialize() are called every Open/Close.
00087 \endverbatim
00088 * \ingroup format */
00089
00090 /** Register the WMF Format
00091 * \ingroup wmv */
00092 void imFormatRegisterWMV(void);
00093
00094
00095 #if defined(__cplusplus)
00096 }
00097 #endif
00098
00099 #endif