VideoCodec.h
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:1k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. // VideoCode.h: interface for the CVideoCodec class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #ifndef __VIDEOCODEC_H__
  5. #define __VIDEOCODEC_H__
  6. #include "vfw.h"
  7. class CVideoCodec  
  8. {
  9. public:
  10.             CVideoCodec();
  11.   
  12. virtual ~CVideoCodec();
  13.     //初始化解压器
  14. virtual  BITMAPINFOHEADER * InitDecode( int width , int height , int depth , const char * szType );
  15.     //初始化解压器
  16. virtual  bool InitDecode( BITMAPINFOHEADER * header );
  17.     //初始化压缩器
  18. virtual  BITMAPINFOHEADER * InitEncode( int width , int height , int depth , const char * szType = NULL , int kbps = 0 );
  19.     //初始化压缩器
  20. virtual  bool InitEncode( BITMAPINFOHEADER header );
  21.     //解压
  22. void   * Decode( void * in_buffer , int size );
  23.     //压缩
  24. void   * Encode( void * in_buffer , int * size );
  25.     //释放解压器
  26. bool     ReleaseDecode( void );
  27.     //释放压缩器
  28. bool     ReleaseEncode( void );
  29. //通过一个Word取mmioFOURCC 的4个字节
  30. static  char * GetString(int word );
  31. time_t   GetEncodeTime( void );
  32.     
  33. protected:
  34. enum{ DECODE  = 1, ENCODE };
  35.    
  36. private:
  37.     //压缩解压器结构体
  38. COMPVARS cv;
  39.     //输出内存
  40. char   * out_buffer;
  41. //压缩 or 解压标志
  42. int      codec_type;
  43. //帧压缩的当前时间
  44. time_t   encode_time;
  45. //压缩方式
  46. bool    sequent_compress;
  47.     //输入数据位图头信息
  48. BITMAPINFOHEADER in ;
  49.     //输出位兔头信息
  50. BITMAPINFOHEADER out;
  51. };
  52. #endif