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
Text File  |  2001-02-09  |  27KB  |  670 lines

  1. //======================================================================
  2. // -- MvrApiDef.h --                                                    
  3. //                                                                      
  4. // MVR-D2000        ダイナミックリンクライブラリ    定義                
  5. //                                                                      
  6. // Copyright (C) 1999-2000 Canopus Co., Ltd. All rights reserved.       
  7. //======================================================================
  8.  
  9. #ifndef __MVRAPIDEF_H__
  10. #define __MVRAPIDEF_H__
  11.  
  12. //////////////////////////////////////////////////////////////////////
  13. // MVR_ERROR 型
  14.  
  15. typedef enum {
  16.     MVR_ERROR_SUCCESS, 
  17.     MVR_ERROR_PENDING, 
  18.     MVR_ERROR_SYSTEM_ERROR, 
  19.     MVR_ERROR_NOT_PENDING, 
  20.     MVR_ERROR_INVALID_ASYNCOP, 
  21.     MVR_ERROR_UNSUPPORTED, 
  22.     MVR_ERROR_INVALID_TYPE, 
  23.     MVR_ERROR_INVALID_OPTION, 
  24.     MVR_ERROR_INVALID_ADDRESS, 
  25.     MVR_ERROR_LIMIT_EXCEEDED, 
  26.     MVR_ERROR_INVALID_HANDLE, 
  27.     MVR_ERROR_INVALID_STREAM, 
  28.     MVR_ERROR_INVALID_BUFFER, 
  29.     MVR_ERROR_INVALID_MESSAGE, 
  30.     MVR_ERROR_CANCELED, 
  31.     MVR_ERROR_BUSY, 
  32.     MVR_ERROR_BUFFER_ERROR, 
  33.     MVR_ERROR_MESSAGE_ERROR, 
  34.     MVR_ERROR_BAD_PARAM, 
  35.     MVR_ERROR_HARDWARE_ERROR, 
  36.     MVR_ERROR_ALLOC_FAILURE, 
  37.     MVR_ERROR_INVALID_EVENT, 
  38.     MVR_ERROR_INVALID_STATE, 
  39.     MVR_ERROR_CURRENT_STATE, 
  40.     MVR_ERROR_INVALID_FRAME_TYPE, 
  41.     MVR_ERROR_INSUFFICIENT_BUFFERS, 
  42.     MVR_ERROR_TIMEOUT, 
  43.     MVR_ERROR_INVALID_CODEC_STATE, 
  44.     MVR_ERROR_INVALID_FORMAT, 
  45.     MVR_ERROR_INVALID_OPERATION, 
  46.     MVR_ERROR_OVERFLOW, 
  47.     MVR_ERROR_UNDERFLOW, 
  48.     MVR_ERROR_SESSION_CANCELED, 
  49.     MVR_ERROR_UCODE_NOT_FOUND, 
  50.     MVR_ERROR_AUDIO_UCODE_NOT_FOUND, 
  51.     MVR_ERROR_PARSE_ERROR, 
  52.     MVR_ERROR_END_OF_STREAM, 
  53.     MVR_ERROR_DISK_FULL, 
  54.     MVR_ERROR_STREAMS_CLOSED, 
  55.     MVR_ERROR_INTERNAL_ERROR, 
  56.     MVR_ERROR_INVALID_SHORT_BUFFER, 
  57.     MVR_ERROR_NO_VIDEO_SOURCE, 
  58.     MVR_ERROR_DEVICE_NOT_FOUND, 
  59.     MVR_ERROR_EVENT_DATA_OVERRUN,                   // Event Error
  60.     MVR_ERROR_EVENT_DATA_UNDERRUN,                  // Event Error
  61.     MVR_ERROR_EVENT_DEVICE_ERROR,                   // Event Error
  62.     MVR_ERROR_EVENT_LOSS_OF_VIDEO,                  // Event Error
  63.     MVR_ERROR_EVENT_EVENT_LOSS,                     // Event Error
  64.     MVR_ERROR_EVENT_UNRECOVERABLE_ERROR,            // Event Error
  65.     MVR_ERROR_EVENT_WARNING,                        // Event Error
  66.     MVR_ERROR_EVENTT_VIDEO_ENCODER_VBV_UNDERFLOW,   // Event Error
  67.     MVR_ERROR_EVENT_VIDEO_ENCODER_OVERRUN_STATE,    // Event Error
  68.     MVR_ERROR_LAST_STS
  69. } MVR_ERROR;
  70. #define MVRMAX_ERROR_CODES  (MVR_ERROR_LAST_STS - 1)
  71.  
  72. //////////////////////////////////////////////////////////////////////
  73. // Encode
  74.  
  75. // Record Type 定義
  76. // ................
  77.  
  78. #define ENC_RECORD_AUDIO        0x01    // Audio
  79. #define ENC_RECORD_VIDEO        0x02    // Video ( Elementary Stream )
  80. #define ENC_RECORD_PS           0x10    // Program Stream ( System Stream )
  81.  
  82. // ENC_RETURN 型
  83. // .............
  84.  
  85. typedef enum {
  86.     ENC_SUCCESS,
  87.     ENC_FAIL
  88. } ENC_RETURN;
  89.  
  90. // ENC_STATUS_NOTIFY 型
  91. // ....................
  92.  
  93. typedef enum {
  94.     ENC_NOTIFY_INITIALIZE = 0,
  95.     ENC_NOTIFY_TERMINATE,
  96.     ENC_NOTIFY_STOP,
  97.     ENC_NOTIFY_INIT_MOVIE,
  98.     ENC_NOTIFY_MOVIE,
  99.     ENC_NOTIFY_PAUSE,
  100.     ENC_NOTIFY_INIT_STILL,
  101.     ENC_NOTIFY_STILL,
  102.     ENC_NOTIFY_STILL_FINISH
  103. } ENC_STATUS_NOTIFY;
  104.  
  105. // ENC_MEDIA 型
  106. // ............
  107.  
  108. typedef enum {
  109.     ENC_MEDIA_FILE,         // File
  110.     ENC_MEDIA_DVD,          // DVD
  111.     ENC_MEDIA_MEMORY        // Memory
  112. } ENC_MEDIA;
  113.  
  114. // ENC_STATUS 型
  115. // .............
  116.  
  117. typedef enum {
  118.     ENC_STATUS_WAITINITIALIZE = 0,
  119.     ENC_STATUS_WAITTERMINATE,
  120.     ENC_STATUS_WAITSTOP,
  121.     ENC_STATUS_STOP,
  122.     ENC_STATUS_WAITPAUSEMOVIE,
  123.     ENC_STATUS_PAUSEMOVIE,
  124.     ENC_STATUS_WAITMOVIE,
  125.     ENC_STATUS_MOVIE,
  126.     ENC_STATUS_WAITPAUSE,
  127.     ENC_STATUS_WAITPAUSESTILL,
  128.     ENC_STATUS_PAUSESTILL,
  129.     ENC_STATUS_WAITSTILL,
  130.     ENC_STATUS_STILL
  131. } ENC_STATUS;
  132.  
  133. // ENC_AUDIO_FORMAT 型
  134. // ...................
  135.  
  136. typedef enum {
  137.     ENC_AUDIO_FORMAT_MPEG,
  138.     ENC_AUDIO_FORMAT_PCM_MONO,
  139.     ENC_AUDIO_FORMAT_PCM_STEREO,
  140. } ENC_AUDIO_FORMAT;
  141.  
  142. // ENC_BSS_TYPE 型
  143. // ...............
  144.  
  145. typedef enum {
  146.     ENC_BSS_TYPE_UNKOWN,
  147.     ENC_BSS_TYPE_PS,        // MPEG2 program stream / MPEG1 system stream
  148.     ENC_BSS_TYPE_TS,        // MPEG2 transport stream
  149.     ENC_BSS_TYPE_PES        // MPEG2 PES / MPEG1 packet
  150. } ENC_BSS_TYPE;
  151.  
  152. // ENC_OVERLAY_PARAMETER 構造体
  153. // ............................
  154.  
  155. typedef struct {
  156.     UINT    nOverlayBrightness;             // overlay brightness
  157.     #define ENCMIN_VIDEO_OVERLAY_BRIGHTNESS     0
  158.     #define ENCMAX_VIDEO_OVERLAY_BRIGHTNESS     255
  159.     #define ENCDEF_VIDEO_OVERLAY_BRIGHTNESS     124
  160.     UINT    nOverlayContrast;               // overlay contrast
  161.     #define ENCMIN_VIDEO_OVERLAY_CONTRAST       0
  162.     #define ENCMAX_VIDEO_OVERLAY_CONTRAST       127
  163.     #define ENCDEF_VIDEO_OVERLAY_CONTRAST       62
  164.     UINT    nOverlaySaturation;             // overlay saturation
  165.     #define ENCMIN_VIDEO_OVERLAY_SATURATION     0
  166.     #define ENCMAX_VIDEO_OVERLAY_SATURATION     127
  167.     #define ENCDEF_VIDEO_OVERLAY_SATURATION     72
  168. } ENC_OVERLAY_PARAMETER;
  169.  
  170. // ENC_VIDEO_PARAMETER 構造体
  171. // ..........................
  172.  
  173. typedef struct {
  174.     int     TV_System;                      // TV_SYSTEM
  175.     #define ENC_VIDEO_TV_SYSTEM_NTSC            0
  176.     #define ENC_VIDEO_TV_SYSTEM_PAL             1
  177.     int     fInputSource;                   // Source
  178.     #define ENC_VIDEO_INPUT_SOURCE_COMPOSITE    0
  179.     #define ENC_VIDEO_INPUT_SOURCE_SVIDEO       1
  180.     UINT    nInputBrightness;               // Brightness
  181.     #define ENCMIN_VIDEO_INPUT_BRIGHTNESS       0
  182.     #define ENCMAX_VIDEO_INPUT_BRIGHTNESS       255
  183.     #define ENCDEF_VIDEO_INPUT_BRIGHTNESS       154
  184.     int     nInputContrast;                 // Contrast
  185.     #define ENCMIN_VIDEO_INPUT_CONTRAST         (-128)
  186.     #define ENCMAX_VIDEO_INPUT_CONTRAST         127
  187.     #define ENCDEF_VIDEO_INPUT_CONTRAST         74
  188.     int     nInputHue;                      // Hue
  189.     #define ENCMIN_VIDEO_INPUT_HUE              (-128)
  190.     #define ENCMAX_VIDEO_INPUT_HUE              127
  191.     #define ENCDEF_VIDEO_INPUT_HUE              0
  192.     int     nInputSaturation;               // Saturation
  193.     #define ENCMIN_VIDEO_INPUT_SATURATION       (-128)
  194.     #define ENCMAX_VIDEO_INPUT_SATURATION       127
  195.     #define ENCDEF_VIDEO_INPUT_SATURATION       63
  196.     BOOL    fOutputMonitor;                 // Output Monitor
  197. } ENC_VIDEO_PARAMETER;
  198.  
  199. // ENC_VIDEO_ENCODE_PARAMETER 構造体
  200. // .................................
  201.  
  202. typedef struct {
  203.     int     V_CodingMode;                   // Coding Mode
  204.     #define ENCVEPARAM_V_CODING_MODE_MPEG1      1
  205.     #define ENCVEPARAM_V_CODING_MODE_MPEG2      2
  206.     DWORD   fProfileAndLevel;               // Profile and Level
  207.     #define ENCVEPARAM_PROFILE_AND_LEVEL_MP_ML  0x48 // MP@ML
  208.     #define ENCVEPARAM_PROFILE_AND_LEVEL_MP_LL  0x4a // MP@LL
  209.     #define ENCVEPARAM_PROFILE_AND_LEVEL_SP_ML  0x58 // SP@ML
  210.     DWORD   fConvertType;                   // Convert Type
  211.     #define ENCVEPARAM_CONVERT_TYPE_STANDARD    0
  212.     #define ENCVEPARAM_CONVERT_TYPE_SIF         1
  213.     #define ENCVEPARAM_CONVERT_TYPE_HALF_D1     2
  214.     WORD    wImageLeft;                     // Image Left
  215.     WORD    wImageTop;                      // Image Top
  216.     WORD    wImageWidth;                    // Image Width
  217.     WORD    wImageHeight;                   // Image Height
  218.     DWORD   dwBitrate;                      // Video Bit rate
  219.     #define ENCVEPARAM_BITRATE_UNIT             400
  220.     int     EncodeType;                     // Encode Type
  221.     #define ENCVEPARAM_ENCODE_TYPE_CBR          0
  222.     #define ENCVEPARAM_ENCODE_TYPE_VBR          1
  223.     int     GopPattern;                     // GOP Pattern
  224.     #define ENCVEPARAM_GOP_PATTERN_IFRAME       0
  225.     #define ENCVEPARAM_GOP_PATTERN_IBBP         1
  226. } ENC_VIDEO_ENCODE_PARAMETER;
  227.  
  228. // ENC_VIDEO_ENCODE_PARAMETER_EX 構造体
  229. // ....................................
  230.  
  231. typedef struct {
  232.     ENC_VIDEO_ENCODE_PARAMETER  EncodeParam;
  233.     WORD    cPictureInterval;
  234.     #define ENCVEPARAMEX_MIN_PICTURE_INTERVAL   1
  235.     #define ENCVEPARAMEX_MAX_PICTURE_INTERVAL   3
  236.     WORD    cPicturePerGop;
  237.     #define ENCVEPARAMEX_MIN_PICTURE_PER_GOP    1
  238.     #define ENCVEPARAMEX_MAX_PICTURE_PER_GOP    30
  239.     DWORD   dwVbrPeak;
  240.     BOOL    fClosedGop;
  241.     BOOL    fGopComplete;
  242.     WORD    wAspectRatio;
  243.     #define ENCVEPARAMEX_ASPECT_RATIO_4_3       2   //  4 : 3
  244.     #define ENCVEPARAMEX_ASPECT_RATIO_16_9      3   // 16 : 9
  245.     BOOL                        fLowDelay;
  246. } ENC_VIDEO_ENCODE_PARAMETER_EX;
  247.  
  248. // ENC_AUDIO_PARAMETER 構造体
  249. // ..........................
  250.  
  251. typedef struct {
  252.     DWORD   dwSamplingFrequency;            // Sampling Frequency
  253.     BOOL    fOutputMonitor;                 // Output Monitor
  254.     BOOL    fOutputMute;                    // Mute
  255.     DWORD   dwLeftOutputAtt;                // Left output attenuation
  256.     DWORD   dwRightOutputAtt;               // Right output attenuation
  257.     #define ENCMIN_AUDIO_OUTPUT_ATT     0
  258.     #define ENCMAX_AUDIO_OUTPUT_ATT     255
  259.     int     nLeftInputGain;                 // left input gain
  260.     int     nRightInputGain;                // Right input gain
  261.     #define ENCMIN_AUDIO_INPUT_GAIN     (-256)
  262.     #define ENCMAX_AUDIO_INPUT_GAIN     256
  263. } ENC_AUDIO_PARAMETER;
  264.  
  265. // ENC_AUDIO_ENCODE_PARAMETER 構造体
  266. // .................................
  267.  
  268. typedef struct {
  269.     DWORD   nLayer;                                     // Layer
  270.     #define ENCAEPARAM_LAYER1                   1       // Layer 1
  271.     #define ENCAEPARAM_LAYER2                   2       // Layer 2
  272.     BOOL    fProtection;                                // Protection
  273.     int     AudioBitrate;                               // Audio bit rate
  274.     int     Channel_Num;                                // CHANNEL_NUM
  275.     #define ENCAEPARAM_CHANNEL_NUM_STEREO       0
  276.     #define ENCAEPARAM_CHANNEL_NUM_MONO         1
  277.     #define ENCAEPARAM_CHANNEL_NUM_DUAL_MONO    2
  278.     #define ENCAEPARAM_CHANNEL_NUM_JOINT_STEREO 3
  279.     DWORD   fModeEx;                                    // Mode Ex
  280.     BOOL    fCopyright;                                 // Copyright
  281.     BOOL    fOriginal;                                  // Original
  282.     BOOL    fEmphasis;                                  // Emphasis
  283.     #define ENCAEPARAM_EMPHASIS_NONE            0       // None
  284.     #define ENCAEPARAM_EMPHASIS_5015            1       // 50/15μs
  285.     #define ENCAEPARAM_EMPHASIS_CCITT           3       // CCITT J.17
  286. } ENC_AUDIO_ENCODE_PARAMETER;
  287.  
  288. // ENC_VOBU_ENT_INFO 構造体
  289. // ........................
  290.  
  291. typedef struct {
  292.     USHORT  Fstref_Sz;
  293.     USHORT  Vobu_Pb_Tm;
  294.     ULONG   Vobu_Sz;
  295. } ENC_VOBU_ENT_INFO;
  296.  
  297. // ENC_PTM 構造体
  298. // ..............
  299.  
  300. typedef struct {
  301.     ULONG   ptm_base;
  302.     USHORT  ptm_extension;
  303. } ENC_PTM;
  304.  
  305. // ENC_S_VOB_ENT 構造体
  306. // ....................
  307.  
  308. typedef struct {
  309.     UCHAR   V_Part_Sz;
  310.     USHORT  A_Part_Sz;
  311.     USHORT  A_Pb_Tm;
  312. } ENC_S_VOB_ENT;
  313.  
  314. // コールバック定義
  315. // ................
  316.  
  317. typedef VOID (CALLBACK* ENC_CB_STATUS)(UINT, ENC_STATUS_NOTIFY);
  318. typedef VOID (CALLBACK* ENC_CB_ERROR)(UINT, ULONG);
  319. typedef VOID (CALLBACK* ENC_CB_VOBU_ENT)(UINT, ENC_VOBU_ENT_INFO*, UINT);
  320. typedef VOID (CALLBACK* ENC_CB_S_PTM)(UINT, ENC_PTM*);
  321. typedef VOID (CALLBACK* ENC_CB_SVOB_ENT)(UINT, ENC_S_VOB_ENT*);
  322. typedef VOID (CALLBACK* ENC_CB_BSS)(LPBYTE, DWORD, DWORD);
  323.  
  324. // ENC_BSS_PARAMETER 構造体
  325. // ........................
  326.  
  327. typedef struct {
  328.     ENC_BSS_TYPE    fType;
  329.     ENC_CB_BSS      pfnCallback;
  330.     DWORD           cbBuff;
  331.     DWORD           cBuff;
  332.     DWORD           dwData;
  333. } ENC_BSS_PARAMETER;
  334.  
  335. // ENC_CONFIG 構造体
  336. // ........................
  337.  
  338. typedef struct {
  339.     UINT    NumberCodecs;
  340.     UINT    CodecNumber;
  341.     UINT    CodecCaps;
  342.     #define ENCCAP_NONE         0x00000000
  343.     #define ENCCAP_ENCODE       0x00000001 // encoding
  344.     #define ENCCAP_DECODE       0x00000002 // decoding
  345.     #define ENCCAP_MONITOR      0x00000004 // monitoring
  346.     #define ENCCAP_AVI2MPEG     0x00000100 // Avi2Mpeg capability
  347.     UINT    CurrentUtilization;
  348. } ENC_CONFIG;
  349.  
  350. //////////////////////////////////////////////////////////////////////
  351. // Decode
  352.  
  353. // DEC_RETURN 型
  354. // .............
  355.  
  356. typedef enum {
  357.     DEC_SUCCESS,
  358.     DEC_FAIL
  359. } DEC_RETURN;
  360.  
  361.  
  362. // DEC_STATUS_NOTIFY 型
  363. // ....................
  364.  
  365. typedef enum {
  366.     DEC_NOTIFY_INITIALIZE,
  367.     DEC_NOTIFY_TERMINATE,
  368.     DEC_NOTIFY_STOP,
  369.     DEC_NOTIFY_PAUSE,
  370.     DEC_NOTIFY_PLAY,
  371. } DEC_STATUS_NOTIFY;
  372.  
  373. // DEC_MEDIA 型
  374. // ............
  375.  
  376. typedef enum {
  377.     DEC_MEDIA_FILE,         // File
  378.     DEC_MEDIA_MEMORY        // Memory
  379. } DEC_MEDIA;
  380.  
  381. // DEC_STATUS 型
  382. // .............
  383.  
  384. typedef enum {
  385.     DEC_STATUS_WAITINITIALIZE,
  386.     DEC_STATUS_WAITTERMINATE,
  387.     DEC_STATUS_WAITSTOP,
  388.     DEC_STATUS_STOP,
  389.     DEC_STATUS_WAITPAUSE,
  390.     DEC_STATUS_PAUSE,
  391.     DEC_STATUS_WAITPLAY,
  392.     DEC_STATUS_PLAY,
  393. } DEC_STATUS;
  394.  
  395. // DEC_TYPE 型
  396. // ...........
  397.  
  398. typedef enum {
  399.     DEC_TYPE_UNKNOWN,
  400.     DEC_TYPE_MPEG1_AUDIO,
  401.     DEC_TYPE_MPEG1_VIDEO,
  402.     DEC_TYPE_MPEG1_SYSTEM_STREAM,
  403.     DEC_TYPE_MPEG2_AUDIO,
  404.     DEC_TYPE_MPEG2_VIDEO,
  405.     DEC_TYPE_MPEG2_PROGRAM_STREAM,
  406. } DEC_TYPE;
  407.  
  408. // DEC_BSR_TYPE 型
  409. // ...............
  410.  
  411. typedef enum {
  412.     DEC_BSR_TYPE_UNKOWN,
  413.     DEC_BSR_TYPE_PS,        // MPEG2 program stream / MPEG1 system stream
  414.     DEC_BSR_TYPE_TS,        // MPEG2 transport stream
  415.     DEC_BSR_TYPE_PES        // MPEG2 PES / MPEG1 packet
  416. } DEC_BSR_TYPE;
  417.  
  418. // DEC_OVERLAY_PARAMETER 構造体
  419. // ............................
  420.  
  421. typedef struct {
  422.     UINT    nOverlayBrightness;             // overlay brightness
  423.     #define DECMIN_VIDEO_OVERLAY_BRIGHTNESS ENCMIN_VIDEO_OVERLAY_BRIGHTNESS
  424.     #define DECMAX_VIDEO_OVERLAY_BRIGHTNESS ENCMAX_VIDEO_OVERLAY_BRIGHTNESS
  425.     #define DECDEF_VIDEO_OVERLAY_BRIGHTNESS ENCDEF_VIDEO_OVERLAY_BRIGHTNESS
  426.     UINT    nOverlayContrast;               // overlay contrast
  427.     #define DECMIN_VIDEO_OVERLAY_CONTRAST   ENCMIN_VIDEO_OVERLAY_CONTRAST
  428.     #define DECMAX_VIDEO_OVERLAY_CONTRAST   ENCMAX_VIDEO_OVERLAY_CONTRAST
  429.     #define DECDEF_VIDEO_OVERLAY_CONTRAST   ENCDEF_VIDEO_OVERLAY_CONTRAST
  430.     UINT    nOverlaySaturation;             // overlay saturation
  431.     #define DECMIN_VIDEO_OVERLAY_SATURATION ENCMIN_VIDEO_OVERLAY_SATURATION
  432.     #define DECMAX_VIDEO_OVERLAY_SATURATION ENCMAX_VIDEO_OVERLAY_SATURATION
  433.     #define DECDEF_VIDEO_OVERLAY_SATURATION ENCDEF_VIDEO_OVERLAY_SATURATION
  434. } DEC_OVERLAY_PARAMETER;
  435.  
  436. // DEC_VIDEO_PARAMETER 構造体
  437. // ..........................
  438.  
  439. typedef struct {
  440.     int     TV_System;                      // TV_SYSTEM
  441.     #define DEC_VIDEO_TV_SYSTEM_NTSC        ENC_VIDEO_TV_SYSTEM_NTSC
  442.     #define DEC_VIDEO_TV_SYSTEM_PAL         ENC_VIDEO_TV_SYSTEM_PAL
  443. } DEC_VIDEO_PARAMETER;
  444.  
  445. // DEC_AUDIO_PARAMETER 構造体
  446. // ..........................
  447.  
  448. typedef struct {
  449.     BOOL    fOutputMute;
  450.     DWORD   dwLeftOutputAtt;
  451.     DWORD   dwRightOutputAtt;
  452.     #define DECMIN_AUDIO_OUTPUT_ATT         ENCMIN_AUDIO_OUTPUT_ATT
  453.     #define DECMAX_AUDIO_OUTPUT_ATT         ENCMAX_AUDIO_OUTPUT_ATT
  454. } DEC_AUDIO_PARAMETER;
  455.  
  456. // DEC_DECODE_PARAMETER 構造体
  457. // ...........................
  458.  
  459. typedef struct {
  460.     BOOL    fTimestampUsage;
  461.     BOOL    fRepeatOnStop;
  462.     BOOL    fFrameRepeat;
  463.     BOOL    fPanScan;
  464.     BOOL    fFrameClip;
  465. } DEC_DECODE_PARAMETER;
  466.  
  467. // コールバック定義
  468. // ................
  469.  
  470. typedef VOID (CALLBACK* DEC_CB_STATUS)(UINT, DEC_STATUS_NOTIFY);
  471. typedef VOID (CALLBACK* DEC_CB_ERROR)(UINT, ULONG);
  472. typedef VOID (CALLBACK* DEC_CB_BSR)(LPBYTE, DWORD, LPDWORD, DWORD);
  473.  
  474. // DEC_BSR_PARAMETER 構造体
  475. // ........................
  476.  
  477. typedef struct {
  478.     DEC_BSR_TYPE    fType;
  479.     DEC_CB_BSR      pfnCallback;
  480.     DWORD           cbBuff;
  481.     DWORD           cBuff;
  482.     DWORD           dwData;
  483. } DEC_BSR_PARAMETER;
  484.  
  485. // DEC_CONFIG 構造体
  486. // ........................
  487.  
  488. typedef struct {
  489.     UINT    NumberCodecs;
  490.     UINT    CodecNumber;
  491.     UINT    CodecCaps;
  492.     #define DECCAP_NONE         ENCCAP_NONE
  493.     #define DECCAP_ENCODE       ENCCAP_ENCODE
  494.     #define DECCAP_DECODE       ENCCAP_DECODE
  495.     #define DECCAP_MONITOR      ENCCAP_MONITOR
  496.     #define DECCAP_AVI2MPEG     ENCCAP_AVI2MPEG
  497.     UINT    CurrentUtilization;
  498. } DEC_CONFIG;
  499.  
  500. //////////////////////////////////////////////////////////////////////
  501. // API
  502.  
  503. #define MVRExport   __declspec(dllexport)
  504.  
  505. #if defined(__cplusplus)
  506. extern "C" {
  507. #endif
  508.  
  509. // Encode API
  510. MVRExport ENC_RETURN ENC_Get_Codec_Config(UINT enc_id, ENC_CONFIG *pConfig);
  511. MVRExport ENC_RETURN ENC_Set_Codec_Number(UINT enc_id, UINT nNumber);
  512. MVRExport ENC_RETURN ENC_Set_Callback(UINT enc_id, ENC_CB_STATUS pStatus, 
  513.                             ENC_CB_ERROR pError, ENC_CB_VOBU_ENT pVobu_ent, 
  514.                             ENC_CB_S_PTM pSptm, ENC_CB_SVOB_ENT pSvob_ent);
  515. MVRExport ENC_RETURN ENC_Can_Initialize(UINT enc_id);
  516. MVRExport ENC_RETURN ENC_Initialize(UINT enc_id);
  517. MVRExport ENC_RETURN ENC_Initialize_Ex(UINT enc_id, 
  518.                             ENC_MEDIA media, ENC_BSS_PARAMETER* pParam);
  519. MVRExport ENC_RETURN ENC_Terminate(UINT enc_id);
  520. MVRExport ENC_RETURN ENC_Get_Media(UINT enc_id, ENC_MEDIA* media);
  521. MVRExport ENC_RETURN ENC_Set_Media(UINT enc_id, ENC_MEDIA media);
  522. MVRExport ENC_RETURN ENC_Can_Record(UINT enc_id);
  523. MVRExport ENC_RETURN ENC_Get_Status(UINT enc_id, ENC_STATUS* status);
  524. MVRExport ENC_RETURN ENC_Can_Overlay_Window(UINT enc_id, HANDLE hMonitor, 
  525.                                                 UINT nWidth, UINT nHeight);
  526. MVRExport ENC_RETURN ENC_Create_Overlay_Window(UINT enc_id, 
  527.                             HWND hWndParent, HWND* hWndOverlay, 
  528.                                     int x, int y, UINT nWidth, UINT nHeight);
  529. MVRExport ENC_RETURN ENC_Destroy_Overlay_Window(UINT enc_id);
  530. MVRExport ENC_RETURN ENC_Move_Overlay_Window(UINT enc_id, INT x, INT y);
  531. MVRExport ENC_RETURN ENC_Resize_Overlay_Window(UINT enc_id, 
  532.                                                 UINT nWidth, UINT nHeight);
  533. MVRExport ENC_RETURN ENC_Show_Overlay_Window(UINT enc_id, BOOL fShow);
  534. MVRExport ENC_RETURN ENC_Get_Overlay_Window(UINT enc_id, HWND* pWnd);
  535. MVRExport ENC_RETURN ENC_Get_Overlay_Rect(UINT enc_id, LPRECT pRect);
  536. MVRExport ENC_RETURN ENC_Set_Overlay_Rect(UINT enc_id, LPRECT pRect);
  537. MVRExport ENC_RETURN ENC_Get_Overlay_Parameter(UINT enc_id, 
  538.                                         ENC_OVERLAY_PARAMETER *pParam);
  539. MVRExport ENC_RETURN ENC_Set_Overlay_Parameter(UINT enc_id, 
  540.                                         ENC_OVERLAY_PARAMETER *pParam);
  541. MVRExport ENC_RETURN ENC_Start_Monitor(UINT enc_id);
  542. MVRExport ENC_RETURN ENC_Stop_Monitor(UINT enc_id);
  543. MVRExport ENC_RETURN ENC_Get_Monitor_Status(UINT enc_id, UINT* monitor);
  544. MVRExport ENC_RETURN ENC_Get_VideoCD_Mode(UINT enc_id, LPINT lpbEnable);
  545. MVRExport ENC_RETURN ENC_Set_VideoCD_Mode(UINT enc_id, INT bEnable);
  546. MVRExport ENC_RETURN ENC_Get_BSS_Parameter(UINT enc_id, 
  547.                                                 ENC_BSS_PARAMETER* pParam);
  548. MVRExport ENC_RETURN ENC_Set_BSS_Parameter(UINT enc_id, 
  549.                                                 ENC_BSS_PARAMETER* pParam);
  550. MVRExport ENC_RETURN ENC_Get_Video_Parameter(UINT enc_id, 
  551.                                             ENC_VIDEO_PARAMETER* Video_Param);
  552. MVRExport ENC_RETURN ENC_Set_Video_Parameter(UINT enc_id, 
  553.                                             ENC_VIDEO_PARAMETER* Video_Param);
  554. MVRExport ENC_RETURN ENC_Get_Video_Encode_Parameter(UINT enc_id, 
  555.                                     ENC_VIDEO_ENCODE_PARAMETER* Video_Param);
  556. MVRExport ENC_RETURN ENC_Set_Video_Encode_Parameter(UINT enc_id, 
  557.                                     ENC_VIDEO_ENCODE_PARAMETER* Video_Param);
  558. MVRExport ENC_RETURN ENC_Get_Video_Encode_Parameter_Ex(UINT enc_id, 
  559.                                    ENC_VIDEO_ENCODE_PARAMETER_EX* Video_Param);
  560. MVRExport ENC_RETURN ENC_Set_Video_Encode_Parameter_Ex(UINT enc_id, 
  561.                                    ENC_VIDEO_ENCODE_PARAMETER_EX* Video_Param);
  562. MVRExport ENC_RETURN ENC_Get_Audio_Format(UINT enc_id, 
  563.                                             ENC_AUDIO_FORMAT *pAudioFormat);
  564. MVRExport ENC_RETURN ENC_Set_Audio_Format(UINT enc_id, 
  565.                                             ENC_AUDIO_FORMAT AudioFormat);
  566. MVRExport ENC_RETURN ENC_Get_Audio_Parameter(UINT enc_id, 
  567.                                             ENC_AUDIO_PARAMETER* Audio_Param);
  568. MVRExport ENC_RETURN ENC_Set_Audio_Parameter(UINT enc_id, 
  569.                                             ENC_AUDIO_PARAMETER* Audio_Param);
  570. MVRExport ENC_RETURN ENC_Get_Audio_Encode_Parameter(UINT enc_id, 
  571.                                     ENC_AUDIO_ENCODE_PARAMETER* Audio_Param);
  572. MVRExport ENC_RETURN ENC_Set_Audio_Encode_Parameter(UINT enc_id, 
  573.                                     ENC_AUDIO_ENCODE_PARAMETER* Audio_Param);
  574. MVRExport ENC_RETURN ENC_Init_Movie(UINT enc_id);
  575. MVRExport ENC_RETURN ENC_Record_Movie(UINT enc_id, UINT enc_mode_flag);
  576. MVRExport ENC_RETURN ENC_Stop(UINT enc_id);
  577. MVRExport ENC_RETURN ENC_Get_Record_Time(UINT enc_id, 
  578.                                             UINT* rec_time, UINT* enabled);
  579. MVRExport ENC_RETURN ENC_Set_Record_Time(UINT enc_id, 
  580.                                             UINT rec_time, UINT enabled);
  581. MVRExport ENC_RETURN ENC_Get_Movie_File(UINT enc_id, UINT enc_mode_flag, 
  582.                                                             LPTSTR enc_file);
  583. MVRExport ENC_RETURN ENC_Set_Movie_File(UINT enc_id, UINT enc_mode_flag, 
  584.                                                             LPCTSTR enc_file);
  585. MVRExport ENC_RETURN ENC_Get_Frame_Count(UINT enc_id, UINT* frame_count);
  586. MVRExport ENC_RETURN ENC_Get_Time(UINT enc_id, double* time);
  587. MVRExport ENC_RETURN ENC_Detect_Video_Input_Source(UINT enc_id, 
  588.                                                         LPINT lpfInputSource);
  589. MVRExport ENC_RETURN ENC_Set_Video_Encode_File(UINT enc_id, 
  590.                                                         LPCTSTR lpszVEFile);
  591. MVRExport ULONG ENC_Get_Last_Error(UINT enc_id);
  592.  
  593. // Decode API
  594. MVRExport DEC_RETURN DEC_Get_Codec_Config(UINT dec_id, DEC_CONFIG *pConfig);
  595. MVRExport DEC_RETURN DEC_Set_Codec_Number(UINT dec_id, UINT nNumber);
  596. MVRExport DEC_RETURN DEC_Set_Callback(UINT dec_id, DEC_CB_STATUS status, 
  597.                                                 DEC_CB_ERROR error);
  598. MVRExport DEC_RETURN DEC_Can_Initialize(UINT dec_id);
  599. MVRExport DEC_RETURN DEC_Initialize(UINT dec_id);
  600. MVRExport DEC_RETURN DEC_Initialize_Ex(UINT dec_id, 
  601.                             DEC_MEDIA media, DEC_BSR_PARAMETER* pParam);
  602. MVRExport DEC_RETURN DEC_Terminate(UINT dec_id);
  603. MVRExport DEC_RETURN DEC_Get_Media(UINT dec_id, DEC_MEDIA* media);
  604. MVRExport DEC_RETURN DEC_Set_Media(UINT dec_id, DEC_MEDIA media);
  605. MVRExport DEC_RETURN DEC_Can_Playback(UINT dec_id);
  606. MVRExport DEC_RETURN DEC_Get_Status(UINT dec_id, DEC_STATUS* status);
  607. MVRExport DEC_RETURN DEC_Can_Overlay_Window(UINT dec_id, HANDLE hMonitor, 
  608.                                                 UINT nWidth, UINT nHeight);
  609. MVRExport DEC_RETURN DEC_Create_Overlay_Window(UINT dec_id, 
  610.                         HWND hWndParent, HWND* hWndOverlay, 
  611.                                     int x, int y, UINT nWidth, UINT nHeight);
  612. MVRExport DEC_RETURN DEC_Destroy_Overlay_Window(UINT dec_id);
  613. MVRExport DEC_RETURN DEC_Move_Overlay_Window(UINT dec_id, INT x, INT y);
  614. MVRExport DEC_RETURN DEC_Resize_Overlay_Window(UINT dec_id, 
  615.                                                 UINT nWidth, UINT nHeight);
  616. MVRExport DEC_RETURN DEC_Show_Overlay_Window(UINT dec_id, BOOL fShow);
  617. MVRExport DEC_RETURN DEC_Get_Overlay_Window(UINT dec_id, HWND* pWnd);
  618. MVRExport DEC_RETURN DEC_Get_Overlay_Rect(UINT dec_id, LPRECT pRect);
  619. MVRExport DEC_RETURN DEC_Set_Overlay_Rect(UINT dec_id, LPRECT pRect);
  620. MVRExport DEC_RETURN DEC_Get_Overlay_Parameter(UINT dec_id, 
  621.                                         DEC_OVERLAY_PARAMETER *pParam);
  622. MVRExport DEC_RETURN DEC_Set_Overlay_Parameter(UINT dec_id, 
  623.                                         DEC_OVERLAY_PARAMETER *pParam);
  624. MVRExport DEC_RETURN DEC_Start_Monitor(UINT dec_id);
  625. MVRExport DEC_RETURN DEC_Stop_Monitor(UINT dec_id);
  626. MVRExport DEC_RETURN DEC_Get_Monitor_Status(UINT dec_id, UINT* monitor);
  627. MVRExport DEC_RETURN DEC_Get_BSR_Parameter(UINT dec_id, 
  628.                                                     DEC_BSR_PARAMETER* pParam);
  629. MVRExport DEC_RETURN DEC_Set_BSR_Parameter(UINT dec_id, 
  630.                                                     DEC_BSR_PARAMETER* pParam);
  631. MVRExport DEC_RETURN DEC_Get_Video_Parameter(UINT dec_id, 
  632.                                             DEC_VIDEO_PARAMETER* Video_Param);
  633. MVRExport DEC_RETURN DEC_Set_Video_Parameter(UINT dec_id, 
  634.                                             DEC_VIDEO_PARAMETER* Video_Param);
  635. MVRExport DEC_RETURN DEC_Get_Audio_Parameter(UINT dec_id, 
  636.                                             DEC_AUDIO_PARAMETER* Audio_Param);
  637. MVRExport DEC_RETURN DEC_Set_Audio_Parameter(UINT dec_id, 
  638.                                             DEC_AUDIO_PARAMETER* Audio_Param);
  639. MVRExport DEC_RETURN DEC_Get_Decode_Parameter(UINT dec_id, 
  640.                                         DEC_DECODE_PARAMETER* Decode_Param);
  641. MVRExport DEC_RETURN DEC_Set_Decode_Parameter(UINT dec_id, 
  642.                                         DEC_DECODE_PARAMETER* Decode_Param);
  643. MVRExport DEC_RETURN DEC_Play(UINT dec_id);
  644. MVRExport DEC_RETURN DEC_Play_From(UINT dec_id, DWORD dwPosition);
  645. MVRExport DEC_RETURN DEC_Pause(UINT dec_id);
  646. MVRExport DEC_RETURN DEC_Resume(UINT dec_id);
  647. MVRExport DEC_RETURN DEC_Stop(UINT dec_id);
  648. MVRExport DEC_RETURN DEC_Get_Repeat(UINT dec_id, UINT* repeat);
  649. MVRExport DEC_RETURN DEC_Set_Repeat(UINT dec_id, UINT repeat);
  650. MVRExport DEC_RETURN DEC_Get_Movie_File(UINT dec_id, LPTSTR dec_file);
  651. MVRExport DEC_RETURN DEC_Set_Movie_File(UINT dec_id, LPCTSTR dec_file);
  652. MVRExport DEC_RETURN DEC_Get_Image_Size(UINT dec_id, 
  653.                                     UINT* image_width, UINT* image_height);
  654. MVRExport DEC_RETURN DEC_Get_Frame_Count(UINT dec_id, UINT* frame_count);
  655. MVRExport DEC_RETURN DEC_Get_Time(UINT dec_id, double* time);
  656. MVRExport DEC_RETURN DEC_Get_Type(UINT dec_id, DEC_TYPE* type);
  657. MVRExport DEC_RETURN DEC_Get_File_Type(UINT dec_id, 
  658.                                             LPCTSTR dec_file, DEC_TYPE* type);
  659. MVRExport DEC_RETURN DEC_Get_Playback_Time(UINT dec_id, LPDWORD lpdwTime);
  660. MVRExport DEC_RETURN DEC_Seek(UINT dec_id, DWORD dwPosition);
  661. MVRExport DEC_RETURN DEC_Get_Sync_Stc_Value(UINT dec_id, LPDWORD pdwValue);
  662. MVRExport ULONG DEC_Get_Last_Error(UINT dec_id);
  663.  
  664. #if defined(__cplusplus)
  665. }
  666. #endif
  667.  
  668. #endif // __MVRAPIDEF_H__
  669.  
  670.