home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2001 July
/
VPR0107B.BIN
/
DRIVER
/
CANOPUS
/
MVR32
/
mvr32.exe
/
data1.cab
/
Development_Kit
/
Vc
/
include
/
MvrApiDef.h
Wrap
Text File
|
2001-02-09
|
27KB
|
670 lines
//======================================================================
// -- MvrApiDef.h --
//
// MVR-D2000 ダイナミックリンクライブラリ 定義
//
// Copyright (C) 1999-2000 Canopus Co., Ltd. All rights reserved.
//======================================================================
#ifndef __MVRAPIDEF_H__
#define __MVRAPIDEF_H__
//////////////////////////////////////////////////////////////////////
// MVR_ERROR 型
typedef enum {
MVR_ERROR_SUCCESS,
MVR_ERROR_PENDING,
MVR_ERROR_SYSTEM_ERROR,
MVR_ERROR_NOT_PENDING,
MVR_ERROR_INVALID_ASYNCOP,
MVR_ERROR_UNSUPPORTED,
MVR_ERROR_INVALID_TYPE,
MVR_ERROR_INVALID_OPTION,
MVR_ERROR_INVALID_ADDRESS,
MVR_ERROR_LIMIT_EXCEEDED,
MVR_ERROR_INVALID_HANDLE,
MVR_ERROR_INVALID_STREAM,
MVR_ERROR_INVALID_BUFFER,
MVR_ERROR_INVALID_MESSAGE,
MVR_ERROR_CANCELED,
MVR_ERROR_BUSY,
MVR_ERROR_BUFFER_ERROR,
MVR_ERROR_MESSAGE_ERROR,
MVR_ERROR_BAD_PARAM,
MVR_ERROR_HARDWARE_ERROR,
MVR_ERROR_ALLOC_FAILURE,
MVR_ERROR_INVALID_EVENT,
MVR_ERROR_INVALID_STATE,
MVR_ERROR_CURRENT_STATE,
MVR_ERROR_INVALID_FRAME_TYPE,
MVR_ERROR_INSUFFICIENT_BUFFERS,
MVR_ERROR_TIMEOUT,
MVR_ERROR_INVALID_CODEC_STATE,
MVR_ERROR_INVALID_FORMAT,
MVR_ERROR_INVALID_OPERATION,
MVR_ERROR_OVERFLOW,
MVR_ERROR_UNDERFLOW,
MVR_ERROR_SESSION_CANCELED,
MVR_ERROR_UCODE_NOT_FOUND,
MVR_ERROR_AUDIO_UCODE_NOT_FOUND,
MVR_ERROR_PARSE_ERROR,
MVR_ERROR_END_OF_STREAM,
MVR_ERROR_DISK_FULL,
MVR_ERROR_STREAMS_CLOSED,
MVR_ERROR_INTERNAL_ERROR,
MVR_ERROR_INVALID_SHORT_BUFFER,
MVR_ERROR_NO_VIDEO_SOURCE,
MVR_ERROR_DEVICE_NOT_FOUND,
MVR_ERROR_EVENT_DATA_OVERRUN, // Event Error
MVR_ERROR_EVENT_DATA_UNDERRUN, // Event Error
MVR_ERROR_EVENT_DEVICE_ERROR, // Event Error
MVR_ERROR_EVENT_LOSS_OF_VIDEO, // Event Error
MVR_ERROR_EVENT_EVENT_LOSS, // Event Error
MVR_ERROR_EVENT_UNRECOVERABLE_ERROR, // Event Error
MVR_ERROR_EVENT_WARNING, // Event Error
MVR_ERROR_EVENTT_VIDEO_ENCODER_VBV_UNDERFLOW, // Event Error
MVR_ERROR_EVENT_VIDEO_ENCODER_OVERRUN_STATE, // Event Error
MVR_ERROR_LAST_STS
} MVR_ERROR;
#define MVRMAX_ERROR_CODES (MVR_ERROR_LAST_STS - 1)
//////////////////////////////////////////////////////////////////////
// Encode
// Record Type 定義
// ................
#define ENC_RECORD_AUDIO 0x01 // Audio
#define ENC_RECORD_VIDEO 0x02 // Video ( Elementary Stream )
#define ENC_RECORD_PS 0x10 // Program Stream ( System Stream )
// ENC_RETURN 型
// .............
typedef enum {
ENC_SUCCESS,
ENC_FAIL
} ENC_RETURN;
// ENC_STATUS_NOTIFY 型
// ....................
typedef enum {
ENC_NOTIFY_INITIALIZE = 0,
ENC_NOTIFY_TERMINATE,
ENC_NOTIFY_STOP,
ENC_NOTIFY_INIT_MOVIE,
ENC_NOTIFY_MOVIE,
ENC_NOTIFY_PAUSE,
ENC_NOTIFY_INIT_STILL,
ENC_NOTIFY_STILL,
ENC_NOTIFY_STILL_FINISH
} ENC_STATUS_NOTIFY;
// ENC_MEDIA 型
// ............
typedef enum {
ENC_MEDIA_FILE, // File
ENC_MEDIA_DVD, // DVD
ENC_MEDIA_MEMORY // Memory
} ENC_MEDIA;
// ENC_STATUS 型
// .............
typedef enum {
ENC_STATUS_WAITINITIALIZE = 0,
ENC_STATUS_WAITTERMINATE,
ENC_STATUS_WAITSTOP,
ENC_STATUS_STOP,
ENC_STATUS_WAITPAUSEMOVIE,
ENC_STATUS_PAUSEMOVIE,
ENC_STATUS_WAITMOVIE,
ENC_STATUS_MOVIE,
ENC_STATUS_WAITPAUSE,
ENC_STATUS_WAITPAUSESTILL,
ENC_STATUS_PAUSESTILL,
ENC_STATUS_WAITSTILL,
ENC_STATUS_STILL
} ENC_STATUS;
// ENC_AUDIO_FORMAT 型
// ...................
typedef enum {
ENC_AUDIO_FORMAT_MPEG,
ENC_AUDIO_FORMAT_PCM_MONO,
ENC_AUDIO_FORMAT_PCM_STEREO,
} ENC_AUDIO_FORMAT;
// ENC_BSS_TYPE 型
// ...............
typedef enum {
ENC_BSS_TYPE_UNKOWN,
ENC_BSS_TYPE_PS, // MPEG2 program stream / MPEG1 system stream
ENC_BSS_TYPE_TS, // MPEG2 transport stream
ENC_BSS_TYPE_PES // MPEG2 PES / MPEG1 packet
} ENC_BSS_TYPE;
// ENC_OVERLAY_PARAMETER 構造体
// ............................
typedef struct {
UINT nOverlayBrightness; // overlay brightness
#define ENCMIN_VIDEO_OVERLAY_BRIGHTNESS 0
#define ENCMAX_VIDEO_OVERLAY_BRIGHTNESS 255
#define ENCDEF_VIDEO_OVERLAY_BRIGHTNESS 124
UINT nOverlayContrast; // overlay contrast
#define ENCMIN_VIDEO_OVERLAY_CONTRAST 0
#define ENCMAX_VIDEO_OVERLAY_CONTRAST 127
#define ENCDEF_VIDEO_OVERLAY_CONTRAST 62
UINT nOverlaySaturation; // overlay saturation
#define ENCMIN_VIDEO_OVERLAY_SATURATION 0
#define ENCMAX_VIDEO_OVERLAY_SATURATION 127
#define ENCDEF_VIDEO_OVERLAY_SATURATION 72
} ENC_OVERLAY_PARAMETER;
// ENC_VIDEO_PARAMETER 構造体
// ..........................
typedef struct {
int TV_System; // TV_SYSTEM
#define ENC_VIDEO_TV_SYSTEM_NTSC 0
#define ENC_VIDEO_TV_SYSTEM_PAL 1
int fInputSource; // Source
#define ENC_VIDEO_INPUT_SOURCE_COMPOSITE 0
#define ENC_VIDEO_INPUT_SOURCE_SVIDEO 1
UINT nInputBrightness; // Brightness
#define ENCMIN_VIDEO_INPUT_BRIGHTNESS 0
#define ENCMAX_VIDEO_INPUT_BRIGHTNESS 255
#define ENCDEF_VIDEO_INPUT_BRIGHTNESS 154
int nInputContrast; // Contrast
#define ENCMIN_VIDEO_INPUT_CONTRAST (-128)
#define ENCMAX_VIDEO_INPUT_CONTRAST 127
#define ENCDEF_VIDEO_INPUT_CONTRAST 74
int nInputHue; // Hue
#define ENCMIN_VIDEO_INPUT_HUE (-128)
#define ENCMAX_VIDEO_INPUT_HUE 127
#define ENCDEF_VIDEO_INPUT_HUE 0
int nInputSaturation; // Saturation
#define ENCMIN_VIDEO_INPUT_SATURATION (-128)
#define ENCMAX_VIDEO_INPUT_SATURATION 127
#define ENCDEF_VIDEO_INPUT_SATURATION 63
BOOL fOutputMonitor; // Output Monitor
} ENC_VIDEO_PARAMETER;
// ENC_VIDEO_ENCODE_PARAMETER 構造体
// .................................
typedef struct {
int V_CodingMode; // Coding Mode
#define ENCVEPARAM_V_CODING_MODE_MPEG1 1
#define ENCVEPARAM_V_CODING_MODE_MPEG2 2
DWORD fProfileAndLevel; // Profile and Level
#define ENCVEPARAM_PROFILE_AND_LEVEL_MP_ML 0x48 // MP@ML
#define ENCVEPARAM_PROFILE_AND_LEVEL_MP_LL 0x4a // MP@LL
#define ENCVEPARAM_PROFILE_AND_LEVEL_SP_ML 0x58 // SP@ML
DWORD fConvertType; // Convert Type
#define ENCVEPARAM_CONVERT_TYPE_STANDARD 0
#define ENCVEPARAM_CONVERT_TYPE_SIF 1
#define ENCVEPARAM_CONVERT_TYPE_HALF_D1 2
WORD wImageLeft; // Image Left
WORD wImageTop; // Image Top
WORD wImageWidth; // Image Width
WORD wImageHeight; // Image Height
DWORD dwBitrate; // Video Bit rate
#define ENCVEPARAM_BITRATE_UNIT 400
int EncodeType; // Encode Type
#define ENCVEPARAM_ENCODE_TYPE_CBR 0
#define ENCVEPARAM_ENCODE_TYPE_VBR 1
int GopPattern; // GOP Pattern
#define ENCVEPARAM_GOP_PATTERN_IFRAME 0
#define ENCVEPARAM_GOP_PATTERN_IBBP 1
} ENC_VIDEO_ENCODE_PARAMETER;
// ENC_VIDEO_ENCODE_PARAMETER_EX 構造体
// ....................................
typedef struct {
ENC_VIDEO_ENCODE_PARAMETER EncodeParam;
WORD cPictureInterval;
#define ENCVEPARAMEX_MIN_PICTURE_INTERVAL 1
#define ENCVEPARAMEX_MAX_PICTURE_INTERVAL 3
WORD cPicturePerGop;
#define ENCVEPARAMEX_MIN_PICTURE_PER_GOP 1
#define ENCVEPARAMEX_MAX_PICTURE_PER_GOP 30
DWORD dwVbrPeak;
BOOL fClosedGop;
BOOL fGopComplete;
WORD wAspectRatio;
#define ENCVEPARAMEX_ASPECT_RATIO_4_3 2 // 4 : 3
#define ENCVEPARAMEX_ASPECT_RATIO_16_9 3 // 16 : 9
BOOL fLowDelay;
} ENC_VIDEO_ENCODE_PARAMETER_EX;
// ENC_AUDIO_PARAMETER 構造体
// ..........................
typedef struct {
DWORD dwSamplingFrequency; // Sampling Frequency
BOOL fOutputMonitor; // Output Monitor
BOOL fOutputMute; // Mute
DWORD dwLeftOutputAtt; // Left output attenuation
DWORD dwRightOutputAtt; // Right output attenuation
#define ENCMIN_AUDIO_OUTPUT_ATT 0
#define ENCMAX_AUDIO_OUTPUT_ATT 255
int nLeftInputGain; // left input gain
int nRightInputGain; // Right input gain
#define ENCMIN_AUDIO_INPUT_GAIN (-256)
#define ENCMAX_AUDIO_INPUT_GAIN 256
} ENC_AUDIO_PARAMETER;
// ENC_AUDIO_ENCODE_PARAMETER 構造体
// .................................
typedef struct {
DWORD nLayer; // Layer
#define ENCAEPARAM_LAYER1 1 // Layer 1
#define ENCAEPARAM_LAYER2 2 // Layer 2
BOOL fProtection; // Protection
int AudioBitrate; // Audio bit rate
int Channel_Num; // CHANNEL_NUM
#define ENCAEPARAM_CHANNEL_NUM_STEREO 0
#define ENCAEPARAM_CHANNEL_NUM_MONO 1
#define ENCAEPARAM_CHANNEL_NUM_DUAL_MONO 2
#define ENCAEPARAM_CHANNEL_NUM_JOINT_STEREO 3
DWORD fModeEx; // Mode Ex
BOOL fCopyright; // Copyright
BOOL fOriginal; // Original
BOOL fEmphasis; // Emphasis
#define ENCAEPARAM_EMPHASIS_NONE 0 // None
#define ENCAEPARAM_EMPHASIS_5015 1 // 50/15μs
#define ENCAEPARAM_EMPHASIS_CCITT 3 // CCITT J.17
} ENC_AUDIO_ENCODE_PARAMETER;
// ENC_VOBU_ENT_INFO 構造体
// ........................
typedef struct {
USHORT Fstref_Sz;
USHORT Vobu_Pb_Tm;
ULONG Vobu_Sz;
} ENC_VOBU_ENT_INFO;
// ENC_PTM 構造体
// ..............
typedef struct {
ULONG ptm_base;
USHORT ptm_extension;
} ENC_PTM;
// ENC_S_VOB_ENT 構造体
// ....................
typedef struct {
UCHAR V_Part_Sz;
USHORT A_Part_Sz;
USHORT A_Pb_Tm;
} ENC_S_VOB_ENT;
// コールバック定義
// ................
typedef VOID (CALLBACK* ENC_CB_STATUS)(UINT, ENC_STATUS_NOTIFY);
typedef VOID (CALLBACK* ENC_CB_ERROR)(UINT, ULONG);
typedef VOID (CALLBACK* ENC_CB_VOBU_ENT)(UINT, ENC_VOBU_ENT_INFO*, UINT);
typedef VOID (CALLBACK* ENC_CB_S_PTM)(UINT, ENC_PTM*);
typedef VOID (CALLBACK* ENC_CB_SVOB_ENT)(UINT, ENC_S_VOB_ENT*);
typedef VOID (CALLBACK* ENC_CB_BSS)(LPBYTE, DWORD, DWORD);
// ENC_BSS_PARAMETER 構造体
// ........................
typedef struct {
ENC_BSS_TYPE fType;
ENC_CB_BSS pfnCallback;
DWORD cbBuff;
DWORD cBuff;
DWORD dwData;
} ENC_BSS_PARAMETER;
// ENC_CONFIG 構造体
// ........................
typedef struct {
UINT NumberCodecs;
UINT CodecNumber;
UINT CodecCaps;
#define ENCCAP_NONE 0x00000000
#define ENCCAP_ENCODE 0x00000001 // encoding
#define ENCCAP_DECODE 0x00000002 // decoding
#define ENCCAP_MONITOR 0x00000004 // monitoring
#define ENCCAP_AVI2MPEG 0x00000100 // Avi2Mpeg capability
UINT CurrentUtilization;
} ENC_CONFIG;
//////////////////////////////////////////////////////////////////////
// Decode
// DEC_RETURN 型
// .............
typedef enum {
DEC_SUCCESS,
DEC_FAIL
} DEC_RETURN;
// DEC_STATUS_NOTIFY 型
// ....................
typedef enum {
DEC_NOTIFY_INITIALIZE,
DEC_NOTIFY_TERMINATE,
DEC_NOTIFY_STOP,
DEC_NOTIFY_PAUSE,
DEC_NOTIFY_PLAY,
} DEC_STATUS_NOTIFY;
// DEC_MEDIA 型
// ............
typedef enum {
DEC_MEDIA_FILE, // File
DEC_MEDIA_MEMORY // Memory
} DEC_MEDIA;
// DEC_STATUS 型
// .............
typedef enum {
DEC_STATUS_WAITINITIALIZE,
DEC_STATUS_WAITTERMINATE,
DEC_STATUS_WAITSTOP,
DEC_STATUS_STOP,
DEC_STATUS_WAITPAUSE,
DEC_STATUS_PAUSE,
DEC_STATUS_WAITPLAY,
DEC_STATUS_PLAY,
} DEC_STATUS;
// DEC_TYPE 型
// ...........
typedef enum {
DEC_TYPE_UNKNOWN,
DEC_TYPE_MPEG1_AUDIO,
DEC_TYPE_MPEG1_VIDEO,
DEC_TYPE_MPEG1_SYSTEM_STREAM,
DEC_TYPE_MPEG2_AUDIO,
DEC_TYPE_MPEG2_VIDEO,
DEC_TYPE_MPEG2_PROGRAM_STREAM,
} DEC_TYPE;
// DEC_BSR_TYPE 型
// ...............
typedef enum {
DEC_BSR_TYPE_UNKOWN,
DEC_BSR_TYPE_PS, // MPEG2 program stream / MPEG1 system stream
DEC_BSR_TYPE_TS, // MPEG2 transport stream
DEC_BSR_TYPE_PES // MPEG2 PES / MPEG1 packet
} DEC_BSR_TYPE;
// DEC_OVERLAY_PARAMETER 構造体
// ............................
typedef struct {
UINT nOverlayBrightness; // overlay brightness
#define DECMIN_VIDEO_OVERLAY_BRIGHTNESS ENCMIN_VIDEO_OVERLAY_BRIGHTNESS
#define DECMAX_VIDEO_OVERLAY_BRIGHTNESS ENCMAX_VIDEO_OVERLAY_BRIGHTNESS
#define DECDEF_VIDEO_OVERLAY_BRIGHTNESS ENCDEF_VIDEO_OVERLAY_BRIGHTNESS
UINT nOverlayContrast; // overlay contrast
#define DECMIN_VIDEO_OVERLAY_CONTRAST ENCMIN_VIDEO_OVERLAY_CONTRAST
#define DECMAX_VIDEO_OVERLAY_CONTRAST ENCMAX_VIDEO_OVERLAY_CONTRAST
#define DECDEF_VIDEO_OVERLAY_CONTRAST ENCDEF_VIDEO_OVERLAY_CONTRAST
UINT nOverlaySaturation; // overlay saturation
#define DECMIN_VIDEO_OVERLAY_SATURATION ENCMIN_VIDEO_OVERLAY_SATURATION
#define DECMAX_VIDEO_OVERLAY_SATURATION ENCMAX_VIDEO_OVERLAY_SATURATION
#define DECDEF_VIDEO_OVERLAY_SATURATION ENCDEF_VIDEO_OVERLAY_SATURATION
} DEC_OVERLAY_PARAMETER;
// DEC_VIDEO_PARAMETER 構造体
// ..........................
typedef struct {
int TV_System; // TV_SYSTEM
#define DEC_VIDEO_TV_SYSTEM_NTSC ENC_VIDEO_TV_SYSTEM_NTSC
#define DEC_VIDEO_TV_SYSTEM_PAL ENC_VIDEO_TV_SYSTEM_PAL
} DEC_VIDEO_PARAMETER;
// DEC_AUDIO_PARAMETER 構造体
// ..........................
typedef struct {
BOOL fOutputMute;
DWORD dwLeftOutputAtt;
DWORD dwRightOutputAtt;
#define DECMIN_AUDIO_OUTPUT_ATT ENCMIN_AUDIO_OUTPUT_ATT
#define DECMAX_AUDIO_OUTPUT_ATT ENCMAX_AUDIO_OUTPUT_ATT
} DEC_AUDIO_PARAMETER;
// DEC_DECODE_PARAMETER 構造体
// ...........................
typedef struct {
BOOL fTimestampUsage;
BOOL fRepeatOnStop;
BOOL fFrameRepeat;
BOOL fPanScan;
BOOL fFrameClip;
} DEC_DECODE_PARAMETER;
// コールバック定義
// ................
typedef VOID (CALLBACK* DEC_CB_STATUS)(UINT, DEC_STATUS_NOTIFY);
typedef VOID (CALLBACK* DEC_CB_ERROR)(UINT, ULONG);
typedef VOID (CALLBACK* DEC_CB_BSR)(LPBYTE, DWORD, LPDWORD, DWORD);
// DEC_BSR_PARAMETER 構造体
// ........................
typedef struct {
DEC_BSR_TYPE fType;
DEC_CB_BSR pfnCallback;
DWORD cbBuff;
DWORD cBuff;
DWORD dwData;
} DEC_BSR_PARAMETER;
// DEC_CONFIG 構造体
// ........................
typedef struct {
UINT NumberCodecs;
UINT CodecNumber;
UINT CodecCaps;
#define DECCAP_NONE ENCCAP_NONE
#define DECCAP_ENCODE ENCCAP_ENCODE
#define DECCAP_DECODE ENCCAP_DECODE
#define DECCAP_MONITOR ENCCAP_MONITOR
#define DECCAP_AVI2MPEG ENCCAP_AVI2MPEG
UINT CurrentUtilization;
} DEC_CONFIG;
//////////////////////////////////////////////////////////////////////
// API
#define MVRExport __declspec(dllexport)
#if defined(__cplusplus)
extern "C" {
#endif
// Encode API
MVRExport ENC_RETURN ENC_Get_Codec_Config(UINT enc_id, ENC_CONFIG *pConfig);
MVRExport ENC_RETURN ENC_Set_Codec_Number(UINT enc_id, UINT nNumber);
MVRExport ENC_RETURN ENC_Set_Callback(UINT enc_id, ENC_CB_STATUS pStatus,
ENC_CB_ERROR pError, ENC_CB_VOBU_ENT pVobu_ent,
ENC_CB_S_PTM pSptm, ENC_CB_SVOB_ENT pSvob_ent);
MVRExport ENC_RETURN ENC_Can_Initialize(UINT enc_id);
MVRExport ENC_RETURN ENC_Initialize(UINT enc_id);
MVRExport ENC_RETURN ENC_Initialize_Ex(UINT enc_id,
ENC_MEDIA media, ENC_BSS_PARAMETER* pParam);
MVRExport ENC_RETURN ENC_Terminate(UINT enc_id);
MVRExport ENC_RETURN ENC_Get_Media(UINT enc_id, ENC_MEDIA* media);
MVRExport ENC_RETURN ENC_Set_Media(UINT enc_id, ENC_MEDIA media);
MVRExport ENC_RETURN ENC_Can_Record(UINT enc_id);
MVRExport ENC_RETURN ENC_Get_Status(UINT enc_id, ENC_STATUS* status);
MVRExport ENC_RETURN ENC_Can_Overlay_Window(UINT enc_id, HANDLE hMonitor,
UINT nWidth, UINT nHeight);
MVRExport ENC_RETURN ENC_Create_Overlay_Window(UINT enc_id,
HWND hWndParent, HWND* hWndOverlay,
int x, int y, UINT nWidth, UINT nHeight);
MVRExport ENC_RETURN ENC_Destroy_Overlay_Window(UINT enc_id);
MVRExport ENC_RETURN ENC_Move_Overlay_Window(UINT enc_id, INT x, INT y);
MVRExport ENC_RETURN ENC_Resize_Overlay_Window(UINT enc_id,
UINT nWidth, UINT nHeight);
MVRExport ENC_RETURN ENC_Show_Overlay_Window(UINT enc_id, BOOL fShow);
MVRExport ENC_RETURN ENC_Get_Overlay_Window(UINT enc_id, HWND* pWnd);
MVRExport ENC_RETURN ENC_Get_Overlay_Rect(UINT enc_id, LPRECT pRect);
MVRExport ENC_RETURN ENC_Set_Overlay_Rect(UINT enc_id, LPRECT pRect);
MVRExport ENC_RETURN ENC_Get_Overlay_Parameter(UINT enc_id,
ENC_OVERLAY_PARAMETER *pParam);
MVRExport ENC_RETURN ENC_Set_Overlay_Parameter(UINT enc_id,
ENC_OVERLAY_PARAMETER *pParam);
MVRExport ENC_RETURN ENC_Start_Monitor(UINT enc_id);
MVRExport ENC_RETURN ENC_Stop_Monitor(UINT enc_id);
MVRExport ENC_RETURN ENC_Get_Monitor_Status(UINT enc_id, UINT* monitor);
MVRExport ENC_RETURN ENC_Get_VideoCD_Mode(UINT enc_id, LPINT lpbEnable);
MVRExport ENC_RETURN ENC_Set_VideoCD_Mode(UINT enc_id, INT bEnable);
MVRExport ENC_RETURN ENC_Get_BSS_Parameter(UINT enc_id,
ENC_BSS_PARAMETER* pParam);
MVRExport ENC_RETURN ENC_Set_BSS_Parameter(UINT enc_id,
ENC_BSS_PARAMETER* pParam);
MVRExport ENC_RETURN ENC_Get_Video_Parameter(UINT enc_id,
ENC_VIDEO_PARAMETER* Video_Param);
MVRExport ENC_RETURN ENC_Set_Video_Parameter(UINT enc_id,
ENC_VIDEO_PARAMETER* Video_Param);
MVRExport ENC_RETURN ENC_Get_Video_Encode_Parameter(UINT enc_id,
ENC_VIDEO_ENCODE_PARAMETER* Video_Param);
MVRExport ENC_RETURN ENC_Set_Video_Encode_Parameter(UINT enc_id,
ENC_VIDEO_ENCODE_PARAMETER* Video_Param);
MVRExport ENC_RETURN ENC_Get_Video_Encode_Parameter_Ex(UINT enc_id,
ENC_VIDEO_ENCODE_PARAMETER_EX* Video_Param);
MVRExport ENC_RETURN ENC_Set_Video_Encode_Parameter_Ex(UINT enc_id,
ENC_VIDEO_ENCODE_PARAMETER_EX* Video_Param);
MVRExport ENC_RETURN ENC_Get_Audio_Format(UINT enc_id,
ENC_AUDIO_FORMAT *pAudioFormat);
MVRExport ENC_RETURN ENC_Set_Audio_Format(UINT enc_id,
ENC_AUDIO_FORMAT AudioFormat);
MVRExport ENC_RETURN ENC_Get_Audio_Parameter(UINT enc_id,
ENC_AUDIO_PARAMETER* Audio_Param);
MVRExport ENC_RETURN ENC_Set_Audio_Parameter(UINT enc_id,
ENC_AUDIO_PARAMETER* Audio_Param);
MVRExport ENC_RETURN ENC_Get_Audio_Encode_Parameter(UINT enc_id,
ENC_AUDIO_ENCODE_PARAMETER* Audio_Param);
MVRExport ENC_RETURN ENC_Set_Audio_Encode_Parameter(UINT enc_id,
ENC_AUDIO_ENCODE_PARAMETER* Audio_Param);
MVRExport ENC_RETURN ENC_Init_Movie(UINT enc_id);
MVRExport ENC_RETURN ENC_Record_Movie(UINT enc_id, UINT enc_mode_flag);
MVRExport ENC_RETURN ENC_Stop(UINT enc_id);
MVRExport ENC_RETURN ENC_Get_Record_Time(UINT enc_id,
UINT* rec_time, UINT* enabled);
MVRExport ENC_RETURN ENC_Set_Record_Time(UINT enc_id,
UINT rec_time, UINT enabled);
MVRExport ENC_RETURN ENC_Get_Movie_File(UINT enc_id, UINT enc_mode_flag,
LPTSTR enc_file);
MVRExport ENC_RETURN ENC_Set_Movie_File(UINT enc_id, UINT enc_mode_flag,
LPCTSTR enc_file);
MVRExport ENC_RETURN ENC_Get_Frame_Count(UINT enc_id, UINT* frame_count);
MVRExport ENC_RETURN ENC_Get_Time(UINT enc_id, double* time);
MVRExport ENC_RETURN ENC_Detect_Video_Input_Source(UINT enc_id,
LPINT lpfInputSource);
MVRExport ENC_RETURN ENC_Set_Video_Encode_File(UINT enc_id,
LPCTSTR lpszVEFile);
MVRExport ULONG ENC_Get_Last_Error(UINT enc_id);
// Decode API
MVRExport DEC_RETURN DEC_Get_Codec_Config(UINT dec_id, DEC_CONFIG *pConfig);
MVRExport DEC_RETURN DEC_Set_Codec_Number(UINT dec_id, UINT nNumber);
MVRExport DEC_RETURN DEC_Set_Callback(UINT dec_id, DEC_CB_STATUS status,
DEC_CB_ERROR error);
MVRExport DEC_RETURN DEC_Can_Initialize(UINT dec_id);
MVRExport DEC_RETURN DEC_Initialize(UINT dec_id);
MVRExport DEC_RETURN DEC_Initialize_Ex(UINT dec_id,
DEC_MEDIA media, DEC_BSR_PARAMETER* pParam);
MVRExport DEC_RETURN DEC_Terminate(UINT dec_id);
MVRExport DEC_RETURN DEC_Get_Media(UINT dec_id, DEC_MEDIA* media);
MVRExport DEC_RETURN DEC_Set_Media(UINT dec_id, DEC_MEDIA media);
MVRExport DEC_RETURN DEC_Can_Playback(UINT dec_id);
MVRExport DEC_RETURN DEC_Get_Status(UINT dec_id, DEC_STATUS* status);
MVRExport DEC_RETURN DEC_Can_Overlay_Window(UINT dec_id, HANDLE hMonitor,
UINT nWidth, UINT nHeight);
MVRExport DEC_RETURN DEC_Create_Overlay_Window(UINT dec_id,
HWND hWndParent, HWND* hWndOverlay,
int x, int y, UINT nWidth, UINT nHeight);
MVRExport DEC_RETURN DEC_Destroy_Overlay_Window(UINT dec_id);
MVRExport DEC_RETURN DEC_Move_Overlay_Window(UINT dec_id, INT x, INT y);
MVRExport DEC_RETURN DEC_Resize_Overlay_Window(UINT dec_id,
UINT nWidth, UINT nHeight);
MVRExport DEC_RETURN DEC_Show_Overlay_Window(UINT dec_id, BOOL fShow);
MVRExport DEC_RETURN DEC_Get_Overlay_Window(UINT dec_id, HWND* pWnd);
MVRExport DEC_RETURN DEC_Get_Overlay_Rect(UINT dec_id, LPRECT pRect);
MVRExport DEC_RETURN DEC_Set_Overlay_Rect(UINT dec_id, LPRECT pRect);
MVRExport DEC_RETURN DEC_Get_Overlay_Parameter(UINT dec_id,
DEC_OVERLAY_PARAMETER *pParam);
MVRExport DEC_RETURN DEC_Set_Overlay_Parameter(UINT dec_id,
DEC_OVERLAY_PARAMETER *pParam);
MVRExport DEC_RETURN DEC_Start_Monitor(UINT dec_id);
MVRExport DEC_RETURN DEC_Stop_Monitor(UINT dec_id);
MVRExport DEC_RETURN DEC_Get_Monitor_Status(UINT dec_id, UINT* monitor);
MVRExport DEC_RETURN DEC_Get_BSR_Parameter(UINT dec_id,
DEC_BSR_PARAMETER* pParam);
MVRExport DEC_RETURN DEC_Set_BSR_Parameter(UINT dec_id,
DEC_BSR_PARAMETER* pParam);
MVRExport DEC_RETURN DEC_Get_Video_Parameter(UINT dec_id,
DEC_VIDEO_PARAMETER* Video_Param);
MVRExport DEC_RETURN DEC_Set_Video_Parameter(UINT dec_id,
DEC_VIDEO_PARAMETER* Video_Param);
MVRExport DEC_RETURN DEC_Get_Audio_Parameter(UINT dec_id,
DEC_AUDIO_PARAMETER* Audio_Param);
MVRExport DEC_RETURN DEC_Set_Audio_Parameter(UINT dec_id,
DEC_AUDIO_PARAMETER* Audio_Param);
MVRExport DEC_RETURN DEC_Get_Decode_Parameter(UINT dec_id,
DEC_DECODE_PARAMETER* Decode_Param);
MVRExport DEC_RETURN DEC_Set_Decode_Parameter(UINT dec_id,
DEC_DECODE_PARAMETER* Decode_Param);
MVRExport DEC_RETURN DEC_Play(UINT dec_id);
MVRExport DEC_RETURN DEC_Play_From(UINT dec_id, DWORD dwPosition);
MVRExport DEC_RETURN DEC_Pause(UINT dec_id);
MVRExport DEC_RETURN DEC_Resume(UINT dec_id);
MVRExport DEC_RETURN DEC_Stop(UINT dec_id);
MVRExport DEC_RETURN DEC_Get_Repeat(UINT dec_id, UINT* repeat);
MVRExport DEC_RETURN DEC_Set_Repeat(UINT dec_id, UINT repeat);
MVRExport DEC_RETURN DEC_Get_Movie_File(UINT dec_id, LPTSTR dec_file);
MVRExport DEC_RETURN DEC_Set_Movie_File(UINT dec_id, LPCTSTR dec_file);
MVRExport DEC_RETURN DEC_Get_Image_Size(UINT dec_id,
UINT* image_width, UINT* image_height);
MVRExport DEC_RETURN DEC_Get_Frame_Count(UINT dec_id, UINT* frame_count);
MVRExport DEC_RETURN DEC_Get_Time(UINT dec_id, double* time);
MVRExport DEC_RETURN DEC_Get_Type(UINT dec_id, DEC_TYPE* type);
MVRExport DEC_RETURN DEC_Get_File_Type(UINT dec_id,
LPCTSTR dec_file, DEC_TYPE* type);
MVRExport DEC_RETURN DEC_Get_Playback_Time(UINT dec_id, LPDWORD lpdwTime);
MVRExport DEC_RETURN DEC_Seek(UINT dec_id, DWORD dwPosition);
MVRExport DEC_RETURN DEC_Get_Sync_Stc_Value(UINT dec_id, LPDWORD pdwValue);
MVRExport ULONG DEC_Get_Last_Error(UINT dec_id);
#if defined(__cplusplus)
}
#endif
#endif // __MVRAPIDEF_H__