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. void   * Decode( void * in_buffer , int size );
  21.     //压缩
  22. void   * Encode( void * in_buffer , int * size );
  23.     //释放解压器
  24. bool     ReleaseDecode( void );
  25.     //释放压缩器
  26. bool     ReleaseEncode( void );
  27. //通过一个Word取mmioFOURCC 的4个字节
  28. static  char * GetString(int word );
  29. time_t   GetEncodeTime( void );
  30.     
  31. protected:
  32. enum{ DECODE  = 1, ENCODE };
  33.    
  34. private:
  35.     //压缩解压器结构体
  36. COMPVARS cv;
  37.     //输出内存
  38. char   * out_buffer;
  39. //压缩 or 解压标志
  40. int      codec_type;
  41. //帧压缩的当前时间
  42. time_t   encode_time;
  43. //压缩方式
  44. bool    sequent_compress;
  45.     //输入数据位图头信息
  46. BITMAPINFOHEADER in ;
  47.     //输出位兔头信息
  48. BITMAPINFOHEADER out;
  49. };
  50. #endif