DECORE.H
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /**************************************************************************
  2.  *                                                                        *
  3.  *                                                                        *
  4.  **************************************************************************/
  5. // 这个头文件描述了编码器核心的入口函数
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif 
  9. #ifndef _DECORE_H_
  10. #define _DECORE_H_
  11. #ifdef WIN32
  12. #define STDCALL _stdcall
  13. #else
  14. #define STDCALL
  15. #endif
  16. #if ( (! defined (WIN32)) && (! defined (LINUX)) )
  17. #define BIG_ENDIAN
  18. #endif
  19. // 解码器选项
  20. #define DEC_OPT_MEMORY_REQS 0x00004000
  21. #define DEC_OPT_INIT 0x00008000
  22. #define DEC_OPT_RELEASE 0x00010000
  23. #define DEC_OPT_SETPP 0x00020000 // 设置后处理模式
  24. #define DEC_OPT_SETOUT 0x00040000 // 设置输出模式
  25. // 解码器返回值
  26. #define DEC_OK 0
  27. #define DEC_MEMORY 1
  28. #define DEC_BAD_FORMAT 2
  29. #define DEC_EXIT 3
  30. // 解码器的YUV色度格式
  31. #define DEC_YUV2 1
  32. #define DEC_UYVY 2
  33. #define DEC_420 3
  34. // 解码器的RGB颜色格式
  35. #define DEC_RGB32 4 
  36. #define DEC_RGB24 5 
  37. #define DEC_RGB555 6 
  38. #define DEC_RGB565 7
  39. #define DEC_RGB32_INV 8
  40. #define DEC_RGB24_INV 9
  41. #define DEC_RGB555_INV 10
  42. #define DEC_RGB565_INV 11
  43. #define DEC_MBC         45
  44. #define DEC_MBR         36
  45. typedef struct _DEC_MEM_REQS_
  46. {
  47. unsigned long mp4_edged_ref_buffers_size;
  48. unsigned long mp4_edged_for_buffers_size;
  49. unsigned long mp4_display_buffers_size;
  50. unsigned long mp4_state_size;
  51. unsigned long mp4_tables_size;
  52. unsigned long mp4_stream_size;
  53. } DEC_MEM_REQS;
  54. typedef struct _DEC_BUFFERS_ 
  55. {
  56. void * mp4_edged_ref_buffers;  
  57. void * mp4_edged_for_buffers;  
  58. void * mp4_display_buffers;
  59. void * mp4_state;
  60. void * mp4_tables;
  61. void * mp4_stream;
  62. } DEC_BUFFERS;
  63. typedef struct _DEC_PARAM_ 
  64. {
  65. int x_dim; // 被解码的帧的x维
  66. int y_dim; // 被解码的帧的y维
  67. int output_format; // 输出颜色格式
  68. int time_incr;
  69. DEC_BUFFERS buffers;
  70. } DEC_PARAM;
  71. typedef struct _DEC_FRAME_
  72. {
  73. void *bmp; // 被解码的bitmap 
  74. void *bitstream; // 解码器的缓冲
  75. long length; // 解码器流的长度
  76. int render_flag; // 1: 帧正被补偿
  77. unsigned int stride; // 解码位图(bitmap)时的步长
  78. } DEC_FRAME;
  79. typedef struct _DEC_SET_
  80. {
  81. int postproc_level; // 有效间隔在[0..100]
  82. } DEC_SET;
  83. /**
  84.  *
  85. **/
  86. // decore()函数的原型
  87. //  ——主解码引擎的入口
  88. //
  89. typedef int (STDCALL *decoreFunc)(unsigned long handle, // handle - 用于调用实体(该实体必须是唯一的)的句柄
  90.   unsigned long dec_opt,   // dec_opt  - 解码选项,参看以下参数
  91.   void *param1,          // param1 - 参数1(实际意义依赖参数dec_opt)
  92.   void *param2);         // param2 - 参数2(实际意义依赖参数dec_opt)
  93. #endif // _DECORE_H_
  94. #ifdef __cplusplus
  95. }
  96. #endif