WT_H264.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. #ifndef _WT_H264_H
  2. #define _WT_H264_H
  3. #include "stdafx.h"
  4. #include "targetver.h"
  5. typedef unsigned int WT_H264HANDLE;
  6. // 像素格式
  7. enum WT_PixelFormat_t{
  8. WT_PIX_FMT_BGR24, //BGR24
  9. WT_PIX_FMT_YUV420P,//yuv420P
  10. };
  11. /*解码后图像信息*/
  12. typedef struct
  13. {
  14. unsigned uWidth; /**<宽度*/
  15. unsigned uHeight; /**<高度*/
  16. unsigned uPitch[6]; /**<图像宽度的一行像素所占内存字节数
  17. EP_PIX_FMT_BGR24:
  18. uPitch[0]: BGR一行像素所占内存字节数
  19. EP_PIX_FMT_YUV420P:
  20. uPitch[0]: Y一行像素所占内存字节数
  21. uPitch[1]: U一行像素所占内存字节数
  22. uPitch[2]: V一行像素所占内存字节数
  23. */
  24. unsigned uPixFmt; /**<图像像素格式,参考枚举定义图像格式(PixelFormat_t)*/
  25. unsigned char *pBuffer[6]; /**<图像内存的首地址
  26. EP_PIX_FMT_BGR24:
  27. pBuffer[0]: BGR首地址
  28. EP_PIX_FMT_YUV420P:
  29. pBuffer[0]: Y首地址
  30. pBuffer[1]: U首地址
  31. pBuffer[2]: V首地址
  32. */
  33. }
  34. WT_ImageInfo_t;
  35. /*
  36. 解码信息结构体
  37. */
  38. typedef struct WT_H264Decode_t{
  39. WT_H264HANDLE handle; //解码器句柄
  40. WT_ImageInfo_t imageInfo;//解码后图像信息
  41. char reserved[100];//预留
  42. }WT_H264Decode_t;
  43. /*******************************************
  44. 函数名
  45. WT_H264Init
  46. 函数功能
  47. 初始化解码库
  48. 参数
  49. 返回值
  50. 成功:0
  51. 失败:<0
  52. 特殊说明
  53. 此接口仅需调用一次
  54. *******************************************/
  55. int __stdcall WT_H264Init();
  56. /***************************************************************
  57. 函数名称:
  58. WT_H264Start
  59. 函数功能
  60. 打开H.264流,并解码显示
  61. 参数
  62. device_ip[in]:要连接的设备IP地址
  63. show_window_hwnd[in]:要显示的控件句柄
  64. pixelFormat[in]:设置H264解码后的像素格式参照像素格式定义
  65. show_enable[in]:设置解码后是否主动显示到控件上 1:显示0:不显示
  66. 返回值
  67. 成功:返回H264句柄
  68. 失败:0
  69. *******************************************************************/
  70. WT_H264HANDLE __stdcall WT_H264Start(char *device_ip, HWND show_window_hwnd, enum WT_PixelFormat_t pixelFormat, int show_enable) ;
  71. /**************************************************************************************
  72. 函数名称:
  73. WT_H264End
  74. 函数说明:
  75. 结束H264的链接
  76. 参数:
  77. decode_handle[in]:解码器的句柄
  78. 返回值:
  79. 成功:0
  80. 失败:<0
  81. 说明
  82. 断开H.264后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
  83. **************************************************************************************/
  84. int __stdcall WT_H264End(WT_H264HANDLE decode_handle);
  85. /*************************************************************************************
  86. 函数名称
  87. WT_H264Destory
  88. 函数功能
  89. 销毁解码库,释放资源
  90. 参数
  91. 返回值
  92. 说明
  93. 销毁资源后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
  94. ***************************************************************************************/
  95. void __stdcall WT_H264Destory();
  96. /**************************************************************************************
  97. 函数名称
  98. WT_ChangeH264ShowWindows
  99. 函数功能
  100. 更改H264显示的窗口
  101. 参数
  102. decode_handle: 解码器句柄
  103. hwnd: 窗体控件句柄
  104. 返回值
  105. 成功:0
  106. 失败:<0
  107. *************************************************************************************/
  108. int __stdcall WT_ChangeH264ShowWindows(WT_H264HANDLE decode_handle, HWND hwnd);
  109. /***********************************************************************
  110. 说明
  111. H.264流解码后的回调,通过该回调可以获取解码后的数据
  112. 参数:
  113. h264_decode_info[in]:解码后的数据和信息具体的参照WT_H264Decode_t结构体
  114. */
  115. typedef void (*WT_H264DecodeCallback)(WT_H264Decode_t *h264_decode_info);
  116. /***************************************
  117. 函数说明
  118. 注册H.264解码后回调函数
  119. 参数
  120. h264_decode_callback[in]:指向回调函数的指针
  121. 返回值
  122. ***************************************/
  123. void __stdcall WT_RegH264DecodeEvent(WT_H264DecodeCallback h264_decode_callback);
  124. /*********************************************************
  125. 函数名称
  126. WT_Snap_JPEG
  127. 函数功能
  128. 抓拍,并保存一张JPEG图像
  129. 参数
  130. image_path[in]:存储图像的路径(包括文件名)
  131. decode_handle[in]:已经打开的解码器句柄
  132. 返回值
  133. -1:解码器句柄不合法
  134. -2:存储路径不合法
  135. -3: 解码器没有打开
  136. 1:成功
  137. ***********************************************************/
  138. int __stdcall WT_Snap_JPEG(char *image_path,WT_H264HANDLE decode_handle);
  139. #endif