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