大华播放SDK开发手册.docx
- 文档编号:27536968
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:68
- 大小:46.17KB
大华播放SDK开发手册.docx
《大华播放SDK开发手册.docx》由会员分享,可在线阅读,更多相关《大华播放SDK开发手册.docx(68页珍藏版)》请在冰豆网上搜索。
大华播放SDK开发手册
大华播放SDK编程手册
VERSION3.28.2(Build100129)
2010-01-29
版权所有XX
前言
非常感谢您使用我们公司的设备,我们将为您提供最好的服务。
本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。
我们将会定期更新手册的内容。
修订记录
日期
修订内容
修订者
2010-1-29
添加接口:
PLAY_SetFileRefCallBackEx
PLAY_GetRealFrameBitRate
金志贤
2010-1-22
添加接口:
PLAY_SetVisibleDecCallBack;
PLAY_CatchResizePic
金志贤
2009-10-26
添加接口说明:
PLAY_GetFreePort,PLAY_ReleasePort;
PLAY_VerticalSyncEnable;
PLAY_GetPicBMP,PLAY_GetPicJPEG;
添加媒体信息获取指令:
PLAY_CMD_GetMediaInfo
金志贤
2009-8-14
整理文档,修改文档版式,添加接口说明
金志贤
2009-07-15
整理文档,增加对最新接口的说明
张博
2008-03-25
整理文档,修改多显卡及设置高画质接口的定义
周国锋
2007-10-16
整理文档
周国锋、陈琼施
2007-9-3
增加对最新接口的说明
王兰君
2006-12-27
整理文档
周国锋、陈琼施
2006-12-18
创建
冯江、周国锋
1简介
1.1概述
播放SDK是大华压缩卡和硬盘录像机的配套产品,支持大华所有码流格式以及海思公司的h264码流和ADI的h264码流。
本文档详细描述了开发包中各函数实现的功能及接口
播放SDK的主要功能有:
支持文件或流数据的播放、回放控制(如暂停\恢复、快放慢放)、音频控制、流数据录像、多区域显示、按帧序号或按时间定位、数据回调、消息回调、字符叠加、抓图…….
开发包中包括的文件有:
、、、底层mpeg4解码库()、底层h264解码库(解大华的h264码流和ADI公司的码流)和海思的h264解码库,包括、、。
1.2适用性
支持大华所有码流以及ADI的h264码流和海思的h264码流的解码
支持HB、HBE、LB、LBE、GB、GBE、NVS机型码流设计原则
2设计原则
2.1典型调用
2.1.1多显卡初始化
初始化多显卡设备
PLAY_InitDDrawDevice
获取显卡数目
PLAY_GetDDrawDeviceTotalNums
设置播放窗口使用的显卡
PLAY_SetDDrawDevice
获取显卡信息
PLAY_GetDDrawDeviceInfo
获取显卡功能
PLAY_GetCapsEx
关闭多显卡设备
PLAY_RealeseDDraw
2.1.2回调及功能设置
设置文件结束消息回调
PLAY_SetFileEndMsg
设置文件结束函数回调
PLAY_SetFileEndCallBack
设置图像格式改变消息回调
PLAY_SetEncChangeMsg
设置图像格式改变函数回调
PLAY_SetEncTypeChangeCallBack
设置文件索引建立后回调
PLAY_SetFileRefCallBack
设置流缓冲小于阀值回调
PLAY_SetSourceBufCallBack
设置数据解码回调
PLAY_SetDecCallBack
PLAY_SetDecCallBackEx
设置数据解码回调同时显示视频
PLAY_SetVisibleDecCallBack
设置视频解码回调
PLAY_SetDisplayCallBack
设置音频解码回调
PLAY_SetAudioCallBack
设置水印数据回调
PLAY_SetVerifyCallBack
设置分析数据回调
PLAY_SetDemuxCallBack
设置文件索引
PLAY_SetRefValue
设置播放缓冲帧数
PLAY_SetDisplayBuf
设置overlay模式及关键色
PLAY_SetOverlayMode
设置流打开模式
PLAY_SetStreamOpenMode
设置定时器类型
PLAY_SetTimerType
设置水印数据回调
PLAY_SetWaterMarkCallBack
2.1.3打开文件或数据流
创建文件
PLAY_CreateFile
打开文件
PLAY_OpenFile
创建流文件
PLAY_CreateStream
打开流
PLAY_OpenStream
PLAY_OpenStreamEx
2.1.4播放
播放开始
PLAY_Play
2.1.5各功能操作及信息获取
播放声音
PLAY_PlaySound
PLAY_PlaySoundShare
设置音量
PLAY_SetVolume
获取音量
PLAY_GetVolume
关闭声音
PLAY_StopSound
PLAY_StopSoundShare
开始流数据录像
PLAY_StartDataRecord
获取空闲的通道号
PLAY_GetFreePort
释放通道号
PLAY_ReleasePort
输入流数据
PLAY_InputData
PLAY_InputVideoData
PLAY_InputAudioData
结束流数据录像
PLAY_StopDataRecord
重置流缓冲回调标志
PLAY_ResetSourceBufFlag
快放
PLAY_Fast
慢放
PLAY_Slow
暂停
PLAY_Pause
按帧号定位
PLAY_SetCurrentFrameNum
按时间定位
PLAY_SetPlayedTimeEx
按文件偏移定位
PLAY_SetPlayPos
刷新
PLAY_RefreshPlay
PLAY_RefreshPlayEx
单帧播放
PLAY_OneByOne
单帧倒放
PLAY_OneByOneBack
PLAY_BackOne
反向回放
PLAY_Back
抓图(写文件)
PLAY_CatchPic
PLAY_CatchPicEx
PLAY_CatchResizePic
抓图(获取图片数据)
PLAY_GetPicBMP
PLAY_GetPicJPEG
清缓冲
PLAY_ResetBuffer
颜色调整
PLAY_SetColor
多区域显示
PLAY_SetDisplayRegion
显示模式设置
PLAY_SetDisplayType
垂直同步使能
PLAY_VerticalSyncEnable
调整图象播放的流畅性
PLAY_AdjustFluency
改变图象播放的帧率
PLAY_ChangeRate
打开音频采集功能
PLAY_OpenAudioRecord
关闭音频采集功能
PLAY_CloseAudioRecord
获取颜色参数
PLAY_GetColor
获取关键色
PLAY_GetColorKey
获取当前帧数
PLAY_GetCurrentFrameNum
获取当前帧率
PLAY_GetCurrentFrameRate
获取缓冲帧数
PLAY_GetDisplayBuf
获取显示类型
PLAY_GetDisplayType
获取当前时间
PLAY_GetPlayedTime
PLAY_GetPlayedTimeEx
获取当前信息状态
PLAY_QueryInfo
获取总帧数
PLAY_GetFileTotalFrames
获取总时间
PLAY_GetFileTime
获取文件偏移
PLAY_GetPlayPos
获取索引信息
PLAY_GetRefValue
获取流剩余缓冲
PLAY_GetSourceBufferRemain
获取流打开模式
PLAY_GetStreamOpenMode
获取关键帧信息
PLAY_GetKeyFramePos
PLAY_GetNextKeyFramePos
获取OVERLAY模式
PLAY_GetOverlayMode
获取图像大小
PLAY_GetPictureSize
获取已播放的桢数
PLAY_GetPlayedFrames
获取视频实时码率
PLAY_GetRealFrameBitRate
2.1.6停止
播放停止
PLAY_Stop
2.1.7结束
关闭创建的文件
PLAY_DestroyFile
关闭文件
PLAY_CloseFile
关闭创建的流
PLAY_DestroyStream
关闭流
PLAY_CloseStream
PLAY_CloseStreamEx
释放多显卡资源
PLAY_ReleaseDDrawDevice
2.1.8可随时调用的函数
获取系统功能
PLAY_GetCaps
转BMP文件
PLAY_ConvertToBmpFile
获取文件头长度
PLAY_GetFileHeadLength
获取版本信息
PLAY_GetSdkVersion
2.2编程补充说明
步骤A中的操作用于支持多显卡,目前播放库暂不支持,采用默认的显卡。
步骤B中的功能设置操作只能在PLAY_play之前设置一次。
如果用户不调用这些函数,播放库会采用默认值,如播放缓冲帧数默认为15帧,默认用overlay显示,默认流打开模式为最实时模式。
要使播放SDK能正常工作,步骤C和步骤D是必须的
大部分操作集中在步骤E中,即在PLAY_Play和PLAY_Stop之间调用。
但其中播放声音的函数PLAY_PlaySound、PLAY_PlaySoundShare可以在PLAY_Play之前调用,以防止部分声音数据不能播放,这在播放一个纯音频文件时较为明显对D、E、F、G、H、I中的功能大部分之间没有调用先后顺序,当然对同一个功能还是应该按先打开再操作最后关闭的顺序。
3数据结构定义
3.1宏定义
3.1.1最大通道数
#defineFUNC_MAX_PORT501//最大播放通道数
3.1.2声音波形范围
#defineMIN_WAVE_COEF-100
#defineMAX_WAVE_COEF100
3.1.3定时器类型
#defineTIMER_11//默认定时器,精确定时,但一个进程中最多只有16个
#defineTIMER_22//不精确定时,个数据不限制
3.1.4缓冲类型
#defineBUF_VIDEO_SRC1//视频源缓冲
#defineBUF_AUDIO_SRC2//音频源缓冲
#defineBUF_VIDEO_RENDER3//解码后视频数据缓冲
#defineBUF_AUDIO_RENDER4//解码后音频数据缓冲
注:
BUF_VIDEO_SRC
视频数据源缓冲,缓冲解码之前视频数据,只对流模式有效,单位byte
BUF_AUDIO_SRC
音频数据源缓冲,缓冲解码之前音频数据,只对流模式有效,单位byte
BUF_VIDEO_RENDER
解码后视频数据缓冲,单位帧数
BUF_AUDIO_RENDER
解码后音频数据缓冲,单位帧数,音频40ms数据定为一帧
3.1.5错误类型
#defineDH_PLAY_NOERROR0//没有错误
#defineDH_PLAY_PARA_OVER1//输入参数非法
#defineDH_PLAY_ORDER_ERROR2//调用顺序不对
#defineDH_PLAY_TIMER_ERROR3//多媒体时钟设置失败
#defineDH_PLAY_DEC_VIDEO_ERROR4//视频解码失败
#defineDH_PLAY_DEC_AUDIO_ERROR5//音频解码失败
#defineDH_PLAY_ALLOC_MEMORY_ERROR6//分配内存失败
#defineDH_PLAY_OPEN_FILE_ERROR7//文件操作失败
#defineDH_PLAY_CREATE_OBJ_ERROR8//创建线程事件等失败
#defineDH_PLAY_CREATE_DDRAW_ERROR9//创建directDraw失败
#defineDH_PLAY_CREATE_OFFSCREEN_ERROR10//创建后端缓存失败
#defineDH_PLAY_BUF_OVER11//缓冲区满,输入流失败
#defineDH_PLAY_CREATE_SOUND_ERROR12//创建音频设备失败
#defineDH_PLAY_SET_VOLUME_ERROR13//设置音量失败
#defineDH_PLAY_SUPPORT_FILE_ONLY14//只能在播放文件时才能使用
#defineDH_PLAY_SUPPORT_STREAM_ONLY15//只能在播放流时才能使用
#defineDH_PLAY_SYS_NOT_SUPPORT16//系统不支持,解码器只能工作在Pentium3以上
#defineDH_PLAY_FILEHEADER_UNKNOWN17//没有文件头
#defineDH_PLAY_VERSION_INCORRECT18//解码器和编码器版本不对应
#defineDH_PLAY_INIT_DECODER_ERROR19//初始化解码器失败
#defineDH_PLAY_CHECK_FILE_ERROR20//文件太短或码流无法识别
#defineDH_PLAY_INIT_TIMER_ERROR21//初始化多媒体时钟失败
#defineDH_PLAY_BLT_ERROR22//位拷贝失败
#defineDH_PLAY_UPDATE_ERROR23//显示overlay失败
#defineDH_PLAY_MEMORY_TOOSMALL24//memorytoosmall
3.1.6最大区域显示数
#defineMAX_DISPLAY_WND4//同时最多打开4个区域显示窗口
3.1.7显示类型
#defineDISPLAY_NORMAL1//以正常分辨率显示
#defineDISPLAY_QUARTER2//以四分之一分辨率显示
3.1.8解码缓冲数
#defineMAX_DIS_FRAMES50//最大解码缓冲帧数
#defineMIN_DIS_FRAMES6//最小解码缓冲帧数
3.1.9定位类型
#defineBY_FRAMENUM1//按帧号
#defineBY_FRAMETIME2//按时间
3.1.10数据流原始缓冲大小
#defineSOURCE_BUF_MAX1024*100000//最大原始缓冲
#defineSOURCE_BUF_MIN1024*50//最小原始缓冲
3.1.11数据流播放模式
#defineSTREAME_REALTIME0//最实时方式
#defineSTREAME_FILE1//最流畅方式
3.1.12解码回调音频帧类型
#defineT_AUDIO16101
#defineT_AUDIO8100
3.1.13解码回调视频帧类型
#defineT_UYVY1
#defineT_YV123
#defineT_RGB327
3.1.14媒体信息查询指令
#definePLAY_CMD_GetTime1
#definePLAY_CMD_GetFileRate2
#definePLAY_CMD_GetMediaInfo3
3.1.15系统功能
#defineSUPPORT_DDRAW1//支持DIRECTDRAW;如果不支持,则播放器不能工作
#defineSUPPORT_BLT2//显卡支持BLT操作;如果不支持,则播放器不能工作
#defineSUPPORT_BLTFOURCC4//显卡BLT支持颜色转换
#defineSUPPORT_BLTSHRINKX8//显卡BLT支持X轴缩小
#defineSUPPORT_BLTSHRINKY16//显卡BLT支持Y轴缩小
#defineSUPPORT_BLTSTRETCHX32//显卡BLT支持X轴放大
#defineSUPPORT_BLTSTRETCHY64//显卡BLT支持Y轴放大
#defineSUPPORT_SSE128//CPU支持SSE指令,IntelPentium3以上支持SSE指令
#defineSUPPORT_MMX256//CPU支持MMX指令集
3.1.16抓图格式类型定义
typedefenum__tPicFormats
{
PicFormat_BMP=0,
PicFormat_JPEG,
}tPicFormats;
3.2媒体信息结构
typedefstruct{
longlWidth;
longlHeight;
longlFrameRate;
longlChannel;
longlBitPerSample;
longlSamplesPerSec;
}MEDIA_INFO;
3.3帧信息结构
3.3.1帧位置
typedefstruct{
longnFilePos;//指定帧在文件中的偏移位置
longnFrameLen;//帧长度
longnFrameNum;//帧序号
longnFrameTime;//帧时间
longnErrorFrameNum;//错误帧号
SYSTEMTIME*pErrorTime;//错误帧时间
longnErrorLostFrameNum;//错误帧帧号
longnErrorFrameSize;//错误帧大小
}FRAME_POS,*PFRAME_POS;
3.3.2帧信息
typedefstruct{
longnWidth;//画面宽,单位像素。
如果是音频数据则为0
longnHeight;//画面高。
如果是音频数据则为0
longnStamp;//时标信息,单位毫秒
longnType;//视频帧类型,T_AUDIO16,T_RGB32,T_YV12
longnFrameRate;//编码时产生的图像帧率
}FRAME_INFO;
3.3.3帧类型
typedefstruct{
char*pDataBuf;//帧数据
longnSize;//帧大小
longnFrameNum;//帧序号
BOOLbIsAudio;//是否音频帧
longnReserved;//保留字
}FRAME_TYPE;
4接口定义
4.1通道控制
4.1.1PLAY_GetFreePort
函数名称
BOOLPLAY_GetFreePort(LONG*plPort)
功能描述
获取空闲的通道号,与PLAY_RealsePort成对使用
参数说明
plPort
获取的通道号
返回值
成功返回TRUE,不成功返回FALSE
4.1.2PLAY_ReleasePort
函数名称
BOOLPLAY_ReleasePort(LONGlPort)
功能描述
释放端口号,与PLAY_GetFreePort成对使用
参数说明
lPort
通道号
返回值
成功返回TRUE,不成功返回FALSE
4.2播放文件
4.2.1PLAY_OpenFile
函数名称
BOOLPLAY_OpenFile(LONGnPort,LPSTRsFileName)
功能描述
打开文件
参数说明
nPort
通道号
sFileName
文件名,(文件不能超过4G或小于4K)
返回值
成功返回TRUE,不成功返回FALSE
4.2.2PLAY_CreateFile
函数名称
BOOLPLAY_CreateFile(LONGnPort,LPSTRsFileName)
功能描述
打开文件,自动分配通道号
参数说明
nPort
未使用
sFileName
文件名,(文件不能超过4G或小于4K)
返回值
成功返回TRUE,不成功返回FALSE
4.2.3PLAY_Play
函数名称
BOOLPLAY_Play(LONGnPort,HWNDhWnd)
功能描述
开始播放。
如果已经播放,改变当前播放状态为正常速度播放
参数说明
nPort
通道号
hWnd
播放窗口句柄
返回值
成功返回TRUE,不成功返回FALSE
4.2.4PLAY_Stop
函数名称
BOOLPLAY_Stop(LONGnPort)
功能描述
结束播放
参数说明
nPort
通道号
返回值
成功返回TRUE,不成功返回FALSE
4.2.5PLAY_CloseFile
函数名称
BOOLPLAY_CloseFile(LONGnPort)
功能描述
关闭播放文件,在PLAY_Stop后调用
参数说明
nPort
通道号
返回值
成功返回TRUE,不成功返回FALSE
4.2.6PLAY_DestoryFile
函数名称
BOOLPLAY_DestoryFile(LONGnPort)
功能描述
关闭播放文件,并释放自动分配的通道号。
参数说明
nPort
通道号
返回值
成功返回TRUE,不成功返回FALSE
4.3播放流数据
4.3.1PLAY_OpenStream
函数名称
BOOLPLAY_OpenStream(LONGnPort,PBYTEpFileHeadBuf,DWORDnSize,DWO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大华 播放 SDK 开发 手册