home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / dctm.lzh / DCTM / source.lzh / source / tompeg.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-02-08  |  6.3 KB  |  171 lines

  1. /*************************************************************************
  2.     tompeg.h
  3.  
  4.     03/02/08    Xiaohong
  5. *************************************************************************/
  6. #ifndef _INCLUDE_TOMPEG_H____________________________________
  7. #define _INCLUDE_TOMPEG_H____________________________________
  8. #define EXPORT extern "C" __declspec(dllexport)
  9.  
  10. #include <windows.h>
  11. #include <vfw.h>
  12.  
  13. /**********************************************************
  14.     âRü[âïâoâbâNè╓Éöé╔ôné╖âvâìâZâXâpâëâüü[â^
  15. **********************************************************/
  16. typedef enum
  17. {
  18.     TOMPEG_PROCESS_ENCODE_M1V = 0,    // ëµæ£âfü[â^é≡ MPEG1 é╔ê│ÅkÆå
  19.     TOMPEG_PROCESS_ENCODE_MP2,        // âIü[âfâBâIâfü[â^é≡ MPEG2 é╔ê│ÅkÆå
  20.     TOMPEG_PROCESS_COMBINE,            // MPEG1 2 é≡îïìçÆå
  21.     TOMPEG_PROCESS_ELSE                // é╗é╠æ╝
  22. }TOMPEG_PROCESS_PARAM;
  23. /**********************************************************
  24.     âGâëü[âRü[âh é╠ÉΘî╛
  25. **********************************************************/
  26. typedef enum
  27. {
  28.     TR_OK = 0,                            // É│Åφé╔ÅIù╣é╡é╜
  29.     TR_CANCEL,                            // âåü[âUü[é╔éµé┴é─ CANCEL é│éΩé╜
  30.     TR_ERR,                                // ù\è·é╡é╚éóâGâëü[
  31.     TR_BITCOUNT_ERR,                    // ûóæ╬ë₧é╠ârâbâgâéü[âh
  32.     TR_BICOMPRESSION_ERR,                // ûóæ╬ë₧é╠DIB COLOR MODE(ex.BI_BITFIELDS)
  33.     TR_ERR_OPEN_FILE,                    // âtâ@âCâïé≡èJé¡é╠é╔Ä╕ösé╡é╜
  34.     TR_ERR_AUDIO_PARAM,                    // uAudioLayerParam é═ 1,2 ê╚èOé╠Ælé≡é╞é┴é╜
  35.     TR_ERR_SYSTEM_BYTE_RATE_PARAM,        // uSystemByteRateParam é═ 10 ê╚Åπ 5000 ê╚ë║é┼é╚é¡é─é═é╚éτé╚éó
  36.     TR_SEARCH_SIZE_ERR,                    // nSearchSize é═ 0 ê╚Åπ 4 ê╚ë║é╠Ælé┼é╚é¡é─é═é╚éτé╚éó
  37.     TR_FAST_MOTION_COMP_LEVEL_ERR,        // m_nFastMotionCompensationLevel é═ 0 ê╚Åπ 4 ê╚ë║é┼é╚é¡é─é═é╚éτé╚éó
  38.     TR_AUDIO_BITRATE_ERR,                // ÄwÆΦé│éΩé╜âîâCâäé╔æ╬é╡é─ârâbâgâîü[âgé¬ôKÉ╪é┼é╚éó
  39.     TR_ERR_MAKE_CLIPPING_TABLE,            // ClippingTable é╠ì∞ɼé╔Ä╕ösé╡é╜
  40.     TR_ERR_ALLOC_FRAMES,                // âtâîü[âÇèiö[ùpâüâéâèé╠èmò█é╔Ä╕ösé╡é╜
  41.     TR_ERR_ALLOC_BLOCK_INFO,            // âuâìâbâNÅεò±èiö[ùpâüâéâèé╠èmò█é╔Ä╕ösé╡é╜
  42.     TR_ERR_ALLOC_TEMP_UV_BUFFER,        // UV ùpé╠êΩÄ₧âüâéâèé╠èmò█é╔Ä╕ösé╡é╜
  43.     TR_ERR_ALLOC_BLOCK_ARRAY,            // âuâìâbâNùpözù±é╠âüâéâèé╠èmò█é╔Ä╕ösé╡é╜
  44.     TR_WRSEQH2GOP_ERR,                    // nWriteSequenceGrounp é¬ 0ü@ê╚ë║é╠Ælé≡ĵé┴é╜
  45.     TR_FRAME_NUMBER_IN_GROOUP_ERR,
  46.     TR_DISTANCE_BETWEEN_IP_FRAMES_ERR,
  47.     TR_FNIG_MULTIPLE_DBIPF_ERR,
  48.     TR_ERR_ALLOC_MOTION_STRUCT,            // ô«é½Åεò±èiö[ùpâüâéâèé╠èmò█é╔Ä╕ösé╡é▄é╡é╜
  49.     TR_HFRAME_SIZE_ERR,
  50.     TR_CHROMA_FORMAT_ERR,
  51.     TR_VFRAME_SIZE_ERR,
  52.     TR_ASPECT_RATIO_ERR,
  53.     TR_FRAME_RATE_CODE_ERR,
  54.     TR_BITRATE_ERR,
  55.     TR_VBV_BUFFER_SIZE_ERR,
  56.     TR_VIDEO_FORMAT_ERR,
  57.     TR_COLOR_PRIMARIES_ERR,
  58.     TR_TRANSFER_CHARACTERISTICS_ERR,
  59.     TR_MATRIX_COEFFICIENTS_ERR,
  60.     TR_DISPLAY_HSIZE_ERR,
  61.     TR_DISPLAY_VSIZE_ERR,
  62.     TR_INTRA_DC_PRECISION_ERR,
  63.     TR_FHCODE_ERR,
  64.     TR_FVCODE_ERR,
  65.     TR_SXF_ERR,
  66.     TR_SYF_ERR,
  67.     TR_BHCODE_ERR,
  68.     TR_BVCODE_ERR,
  69.     TR_SXB_ERR,
  70.     TR_SYB_ERR,
  71.     TR_DC_VALUE_OUT_OF_RANGE,
  72.     TR_AC_VALUE_OUT_OF_RANGE,
  73.     TR_AVISTREAMINFO_ERR,                // AVIStreamInfo é╔Ä╕ös
  74.     TR_AVISTREAMREADFORMAT_ERR,            // AVIStreamReadFormat é╔Ä╕ös
  75.     TR_NOT_PCM,                            // PCM ë╣î╣é╢éßé╚éó
  76.     TR_SAMPLE_PER_SEC_ERR,                // âTâôâvâèâôâOâîü[âgé╔ûΓæΦéáéΦ
  77.     TR_BITS_PER_SAMPLE_ERR,                // ârâbâgâîü[âgé╔ûΓæΦéáéΦ
  78.     TR_OPEN_TMP_AUDIO_FILE_ERR,
  79.     TR_ALLOC_BIT_STREAM_BUFFER_ERR,
  80.     TR_SAMPLING_FREQUENCY_ERR,
  81.     TR_ERR_RENAME_TMP_FILE,
  82.     TR_CHECK_FILE_ERR,
  83.     TR_NO_SUPPORTED_AUDIO_LAYER,
  84.     TR_I_MAIN_BIT_ALLOCATION_ERR,
  85.     TR_II_MAIN_BIT_ALLOCATION_ERR,
  86.     TR_HDR_TO_FRPS_ERR,
  87.     TR_OUTPUT_VIDRO_ERR,
  88.  
  89.  
  90.     // âGâëü[âRü[âhé╠æìÉö
  91.     TOMPGRET_ELEM_NUM
  92. }TOMPGRET;
  93.  
  94. #define    TPG_AUDIO_LAYER_1 0
  95. #define    TPG_AUDIO_LAYER_2 1
  96. /**********************************************************
  97.     TOMPEGFORMAT é╠ÉΘî╛
  98. **********************************************************/
  99. typedef struct
  100. {
  101.     PAVISTREAM pAudioStream;
  102.     unsigned char uAudioLayerParam;        // 0é⌐1    
  103.     unsigned int uAudioBitrateParam;    // 128
  104.     bool bJointStereoParam;
  105. }TOMPEG_AUDIO_FORMAT;
  106.  
  107. typedef struct
  108. {
  109.     int nSearchSize;
  110.     unsigned char* pQuantizerMatrix;    // 64 bit array
  111.     unsigned char* pNonIntraMatrix;        // 64 bit array
  112.     bool bUseImageNoiseReduction;
  113.     unsigned int uSystemByteRateParam;    // 150
  114.     unsigned int uLength;
  115.     int nWriteSequenceGrounp;
  116.     int nVBVBufferSize;
  117.     int nFastMotionCompensationLevel;
  118.     int nWidth,nHeight;
  119.     int nScale,nRate;
  120.     TOMPEG_AUDIO_FORMAT stAudioFormat;
  121. }TOMPEG_VIDEO_FORMAT;
  122.  
  123. /**********************************************************
  124.     è╓Éö é╠ÉΘî╛
  125. **********************************************************/
  126. /*---------------------------------------------------------
  127.     âëâCâuâëâèé╠Åëè·ë╗
  128. ---------------------------------------------------------*/
  129. EXPORT void CALLBACK TOMPEG_Init(void);
  130.  
  131. /*---------------------------------------------------------
  132.     âtâ@âCâïé≡ò█æ╢é╖éΘ
  133. ---------------------------------------------------------*/
  134. EXPORT TOMPGRET CALLBACK TOMPEG_SaveAs(const char* szFile);
  135.  
  136. /*---------------------------------------------------------
  137.     Äƒé╠âtâîü[âÇö╘ìåé≡ò╘é╖
  138. ---------------------------------------------------------*/
  139. EXPORT int CALLBACK TOMPEG_NextFrame(void);
  140.  
  141. /*---------------------------------------------------------
  142.     ëµæ£é≡Æ╟ë┴é╖éΘ
  143. ---------------------------------------------------------*/
  144. EXPORT TOMPGRET CALLBACK TOMPEG_AddFrame(const LPBITMAPINFO lpInfo,const unsigned char* pBytes);
  145.  
  146. /*---------------------------------------------------------
  147.     ì∞ɼèJÄn
  148. ---------------------------------------------------------*/
  149. EXPORT TOMPGRET CALLBACK TOMPEG_Start(const TOMPEG_VIDEO_FORMAT* pTompegVideoFormat,
  150.                                       const char* szTmpVideoPath,
  151.                                       const char* szTmpAudioPath,
  152.                                       bool(* CallBack)(TOMPEG_PROCESS_PARAM,int)=NULL);
  153.  
  154. /*---------------------------------------------------------
  155.     âIü[âfâBâIâfü[â^é╠ê│Åk
  156. ---------------------------------------------------------*/
  157. EXPORT TOMPGRET CALLBACK TOMPEG_PCM2MP(const char *tempfile,
  158.                                          const TOMPEG_AUDIO_FORMAT* pTompegAudioFormat,
  159.                                          bool(* CallBack)(TOMPEG_PROCESS_PARAM,int)=NULL);
  160. /*---------------------------------------------------------
  161.     âIü[âfâBâIâfü[â^é╞ârâfâIâfü[â^é╠ô¥ìç
  162. ---------------------------------------------------------*/
  163. EXPORT TOMPGRET CALLBACK TOMPEG_ConvAudioAndVideo(const char *vfile,
  164.                                                    const char *afile,
  165.                                                    const char *mfile,
  166.                                                    bool(* CallBack)(TOMPEG_PROCESS_PARAM,int)=NULL);
  167. /*---------------------------------------------------------
  168.     âüâéâèé≡ë≡ò·é╖éΘ
  169. ---------------------------------------------------------*/
  170. EXPORT void CALLBACK TOMPEG_Clear(void);
  171. #endif