123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #ifndef _WT_H264_H
- #define _WT_H264_H
- #include "stdafx.h"
- #include "targetver.h"
- typedef unsigned int WT_H264HANDLE;
- // 像素格式
- enum WT_PixelFormat_t{
- WT_PIX_FMT_BGR24, //BGR24
- WT_PIX_FMT_YUV420P,//yuv420P
- };
- /*解码后图像信息*/
- typedef struct
- {
- unsigned uWidth; /**<宽度*/
- unsigned uHeight; /**<高度*/
- unsigned uPitch[6]; /**<图像宽度的一行像素所占内存字节数
- EP_PIX_FMT_BGR24:
- uPitch[0]: BGR一行像素所占内存字节数
-
- EP_PIX_FMT_YUV420P:
- uPitch[0]: Y一行像素所占内存字节数
- uPitch[1]: U一行像素所占内存字节数
- uPitch[2]: V一行像素所占内存字节数
- */
- unsigned uPixFmt; /**<图像像素格式,参考枚举定义图像格式(PixelFormat_t)*/
- unsigned char *pBuffer[6]; /**<图像内存的首地址
- EP_PIX_FMT_BGR24:
- pBuffer[0]: BGR首地址
-
- EP_PIX_FMT_YUV420P:
- pBuffer[0]: Y首地址
- pBuffer[1]: U首地址
- pBuffer[2]: V首地址
- */
- }
- WT_ImageInfo_t;
- /*
- 解码信息结构体
- */
- typedef struct WT_H264Decode_t{
- WT_H264HANDLE handle; //解码器句柄
- WT_ImageInfo_t imageInfo;//解码后图像信息
- char reserved[100];//预留
- }WT_H264Decode_t;
- /*******************************************
- 函数名
- WT_H264Init
- 函数功能
- 初始化解码库
- 参数
- 无
- 返回值
- 成功:0
- 失败:<0
- 特殊说明
- 此接口仅需调用一次
- *******************************************/
- int __stdcall WT_H264Init();
- /***************************************************************
- 函数名称:
- WT_H264Start
- 函数功能
- 打开H.264流,并解码显示
- 参数
- device_ip[in]:要连接的设备IP地址
- show_window_hwnd[in]:要显示的控件句柄
- pixelFormat[in]:设置H264解码后的像素格式参照像素格式定义
- show_enable[in]:设置解码后是否主动显示到控件上 1:显示0:不显示
- 返回值
- 成功:返回H264句柄
- 失败:0
- *******************************************************************/
- WT_H264HANDLE __stdcall WT_H264Start(char *device_ip, HWND show_window_hwnd, enum WT_PixelFormat_t pixelFormat, int show_enable) ;
- /**************************************************************************************
- 函数名称:
- WT_H264End
- 函数说明:
- 结束H264的链接
- 参数:
- decode_handle[in]:解码器的句柄
- 返回值:
- 成功:0
- 失败:<0
- 说明
- 断开H.264后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
- **************************************************************************************/
- int __stdcall WT_H264End(WT_H264HANDLE decode_handle);
- /*************************************************************************************
- 函数名称
- WT_H264Destory
- 函数功能
- 销毁解码库,释放资源
- 参数
- 无
- 返回值
- 无
- 说明
- 销毁资源后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
- ***************************************************************************************/
- void __stdcall WT_H264Destory();
- /**************************************************************************************
- 函数名称
- WT_ChangeH264ShowWindows
- 函数功能
- 更改H264显示的窗口
- 参数
- decode_handle: 解码器句柄
- hwnd: 窗体控件句柄
- 返回值
- 成功:0
- 失败:<0
- *************************************************************************************/
- int __stdcall WT_ChangeH264ShowWindows(WT_H264HANDLE decode_handle, HWND hwnd);
- /***********************************************************************
- 说明
- H.264流解码后的回调,通过该回调可以获取解码后的数据
- 参数:
- h264_decode_info[in]:解码后的数据和信息具体的参照WT_H264Decode_t结构体
- */
- typedef void (*WT_H264DecodeCallback)(WT_H264Decode_t *h264_decode_info);
- /***************************************
- 函数说明
- 注册H.264解码后回调函数
- 参数
- h264_decode_callback[in]:指向回调函数的指针
- 返回值
- 无
- ***************************************/
- void __stdcall WT_RegH264DecodeEvent(WT_H264DecodeCallback h264_decode_callback);
- /*********************************************************
- 函数名称
- WT_Snap_JPEG
- 函数功能
- 抓拍,并保存一张JPEG图像
- 参数
- image_path[in]:存储图像的路径(包括文件名)
- decode_handle[in]:已经打开的解码器句柄
- 返回值
- -1:解码器句柄不合法
- -2:存储路径不合法
- -3: 解码器没有打开
- 1:成功
- ***********************************************************/
- int __stdcall WT_Snap_JPEG(char *image_path,WT_H264HANDLE decode_handle);
- #endif
|