home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- tompeg.h
-
- 03/02/08 Xiaohong
- *************************************************************************/
- #ifndef _INCLUDE_TOMPEG_H____________________________________
- #define _INCLUDE_TOMPEG_H____________________________________
- #define EXPORT extern "C" __declspec(dllexport)
-
- #include <windows.h>
- #include <vfw.h>
-
- /**********************************************************
- âRü[âïâoâbâNè╓Éöé╔ôné╖âvâìâZâXâpâëâüü[â^
- **********************************************************/
- typedef enum
- {
- TOMPEG_PROCESS_ENCODE_M1V = 0, // ëµæ£âfü[â^é≡ MPEG1 é╔ê│ÅkÆå
- TOMPEG_PROCESS_ENCODE_MP2, // âIü[âfâBâIâfü[â^é≡ MPEG2 é╔ê│ÅkÆå
- TOMPEG_PROCESS_COMBINE, // MPEG1 2 é≡îïìçÆå
- TOMPEG_PROCESS_ELSE // é╗é╠æ╝
- }TOMPEG_PROCESS_PARAM;
- /**********************************************************
- âGâëü[âRü[âh é╠ÉΘî╛
- **********************************************************/
- typedef enum
- {
- TR_OK = 0, // É│Åφé╔ÅIù╣é╡é╜
- TR_CANCEL, // âåü[âUü[é╔éµé┴é─ CANCEL é│éΩé╜
- TR_ERR, // ù\è·é╡é╚éóâGâëü[
- TR_BITCOUNT_ERR, // ûóæ╬ë₧é╠ârâbâgâéü[âh
- TR_BICOMPRESSION_ERR, // ûóæ╬ë₧é╠DIB COLOR MODE(ex.BI_BITFIELDS)
- TR_ERR_OPEN_FILE, // âtâ@âCâïé≡èJé¡é╠é╔Ä╕ösé╡é╜
- TR_ERR_AUDIO_PARAM, // uAudioLayerParam é═ 1,2 ê╚èOé╠Ælé≡é╞é┴é╜
- TR_ERR_SYSTEM_BYTE_RATE_PARAM, // uSystemByteRateParam é═ 10 ê╚Åπ 5000 ê╚ë║é┼é╚é¡é─é═é╚éτé╚éó
- TR_SEARCH_SIZE_ERR, // nSearchSize é═ 0 ê╚Åπ 4 ê╚ë║é╠Ælé┼é╚é¡é─é═é╚éτé╚éó
- TR_FAST_MOTION_COMP_LEVEL_ERR, // m_nFastMotionCompensationLevel é═ 0 ê╚Åπ 4 ê╚ë║é┼é╚é¡é─é═é╚éτé╚éó
- TR_AUDIO_BITRATE_ERR, // ÄwÆΦé│éΩé╜âîâCâäé╔æ╬é╡é─ârâbâgâîü[âgé¬ôKÉ╪é┼é╚éó
- TR_ERR_MAKE_CLIPPING_TABLE, // ClippingTable é╠ì∞ɼé╔Ä╕ösé╡é╜
- TR_ERR_ALLOC_FRAMES, // âtâîü[âÇèiö[ùpâüâéâèé╠èmò█é╔Ä╕ösé╡é╜
- TR_ERR_ALLOC_BLOCK_INFO, // âuâìâbâNÅεò±èiö[ùpâüâéâèé╠èmò█é╔Ä╕ösé╡é╜
- TR_ERR_ALLOC_TEMP_UV_BUFFER, // UV ùpé╠êΩÄ₧âüâéâèé╠èmò█é╔Ä╕ösé╡é╜
- TR_ERR_ALLOC_BLOCK_ARRAY, // âuâìâbâNùpözù±é╠âüâéâèé╠èmò█é╔Ä╕ösé╡é╜
- TR_WRSEQH2GOP_ERR, // nWriteSequenceGrounp é¬ 0ü@ê╚ë║é╠Ælé≡ĵé┴é╜
- TR_FRAME_NUMBER_IN_GROOUP_ERR,
- TR_DISTANCE_BETWEEN_IP_FRAMES_ERR,
- TR_FNIG_MULTIPLE_DBIPF_ERR,
- TR_ERR_ALLOC_MOTION_STRUCT, // ô«é½Åεò±èiö[ùpâüâéâèé╠èmò█é╔Ä╕ösé╡é▄é╡é╜
- TR_HFRAME_SIZE_ERR,
- TR_CHROMA_FORMAT_ERR,
- TR_VFRAME_SIZE_ERR,
- TR_ASPECT_RATIO_ERR,
- TR_FRAME_RATE_CODE_ERR,
- TR_BITRATE_ERR,
- TR_VBV_BUFFER_SIZE_ERR,
- TR_VIDEO_FORMAT_ERR,
- TR_COLOR_PRIMARIES_ERR,
- TR_TRANSFER_CHARACTERISTICS_ERR,
- TR_MATRIX_COEFFICIENTS_ERR,
- TR_DISPLAY_HSIZE_ERR,
- TR_DISPLAY_VSIZE_ERR,
- TR_INTRA_DC_PRECISION_ERR,
- TR_FHCODE_ERR,
- TR_FVCODE_ERR,
- TR_SXF_ERR,
- TR_SYF_ERR,
- TR_BHCODE_ERR,
- TR_BVCODE_ERR,
- TR_SXB_ERR,
- TR_SYB_ERR,
- TR_DC_VALUE_OUT_OF_RANGE,
- TR_AC_VALUE_OUT_OF_RANGE,
- TR_AVISTREAMINFO_ERR, // AVIStreamInfo é╔Ä╕ös
- TR_AVISTREAMREADFORMAT_ERR, // AVIStreamReadFormat é╔Ä╕ös
- TR_NOT_PCM, // PCM ë╣î╣é╢éßé╚éó
- TR_SAMPLE_PER_SEC_ERR, // âTâôâvâèâôâOâîü[âgé╔ûΓæΦéáéΦ
- TR_BITS_PER_SAMPLE_ERR, // ârâbâgâîü[âgé╔ûΓæΦéáéΦ
- TR_OPEN_TMP_AUDIO_FILE_ERR,
- TR_ALLOC_BIT_STREAM_BUFFER_ERR,
- TR_SAMPLING_FREQUENCY_ERR,
- TR_ERR_RENAME_TMP_FILE,
- TR_CHECK_FILE_ERR,
- TR_NO_SUPPORTED_AUDIO_LAYER,
- TR_I_MAIN_BIT_ALLOCATION_ERR,
- TR_II_MAIN_BIT_ALLOCATION_ERR,
- TR_HDR_TO_FRPS_ERR,
- TR_OUTPUT_VIDRO_ERR,
-
-
- // âGâëü[âRü[âhé╠æìÉö
- TOMPGRET_ELEM_NUM
- }TOMPGRET;
-
- #define TPG_AUDIO_LAYER_1 0
- #define TPG_AUDIO_LAYER_2 1
- /**********************************************************
- TOMPEGFORMAT é╠ÉΘî╛
- **********************************************************/
- typedef struct
- {
- PAVISTREAM pAudioStream;
- unsigned char uAudioLayerParam; // 0é⌐1
- unsigned int uAudioBitrateParam; // 128
- bool bJointStereoParam;
- }TOMPEG_AUDIO_FORMAT;
-
- typedef struct
- {
- int nSearchSize;
- unsigned char* pQuantizerMatrix; // 64 bit array
- unsigned char* pNonIntraMatrix; // 64 bit array
- bool bUseImageNoiseReduction;
- unsigned int uSystemByteRateParam; // 150
- unsigned int uLength;
- int nWriteSequenceGrounp;
- int nVBVBufferSize;
- int nFastMotionCompensationLevel;
- int nWidth,nHeight;
- int nScale,nRate;
- TOMPEG_AUDIO_FORMAT stAudioFormat;
- }TOMPEG_VIDEO_FORMAT;
-
- /**********************************************************
- è╓Éö é╠ÉΘî╛
- **********************************************************/
- /*---------------------------------------------------------
- âëâCâuâëâèé╠Åëè·ë╗
- ---------------------------------------------------------*/
- EXPORT void CALLBACK TOMPEG_Init(void);
-
- /*---------------------------------------------------------
- âtâ@âCâïé≡ò█æ╢é╖éΘ
- ---------------------------------------------------------*/
- EXPORT TOMPGRET CALLBACK TOMPEG_SaveAs(const char* szFile);
-
- /*---------------------------------------------------------
- ăé╠âtâîü[âÇö╘ìåé≡ò╘é╖
- ---------------------------------------------------------*/
- EXPORT int CALLBACK TOMPEG_NextFrame(void);
-
- /*---------------------------------------------------------
- ëµæ£é≡Æ╟ë┴é╖éΘ
- ---------------------------------------------------------*/
- EXPORT TOMPGRET CALLBACK TOMPEG_AddFrame(const LPBITMAPINFO lpInfo,const unsigned char* pBytes);
-
- /*---------------------------------------------------------
- ì∞ɼèJÄn
- ---------------------------------------------------------*/
- EXPORT TOMPGRET CALLBACK TOMPEG_Start(const TOMPEG_VIDEO_FORMAT* pTompegVideoFormat,
- const char* szTmpVideoPath,
- const char* szTmpAudioPath,
- bool(* CallBack)(TOMPEG_PROCESS_PARAM,int)=NULL);
-
- /*---------------------------------------------------------
- âIü[âfâBâIâfü[â^é╠ê│Åk
- ---------------------------------------------------------*/
- EXPORT TOMPGRET CALLBACK TOMPEG_PCM2MP(const char *tempfile,
- const TOMPEG_AUDIO_FORMAT* pTompegAudioFormat,
- bool(* CallBack)(TOMPEG_PROCESS_PARAM,int)=NULL);
- /*---------------------------------------------------------
- âIü[âfâBâIâfü[â^é╞ârâfâIâfü[â^é╠ô¥ìç
- ---------------------------------------------------------*/
- EXPORT TOMPGRET CALLBACK TOMPEG_ConvAudioAndVideo(const char *vfile,
- const char *afile,
- const char *mfile,
- bool(* CallBack)(TOMPEG_PROCESS_PARAM,int)=NULL);
- /*---------------------------------------------------------
- âüâéâèé≡ë≡ò·é╖éΘ
- ---------------------------------------------------------*/
- EXPORT void CALLBACK TOMPEG_Clear(void);
- #endif