大华播放开发管理守则
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大华播放SDK编程手册
VERSION3.28.2(Build100129)
2010-01-29
版权所有侵权必究
前言
非常感谢您使用我们公司的设备,我们将为您提供最好的服务。
本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。
我们将会定期更新手册的内容。
修订记录
目录
1简介
1.1概述
播放SDK是大华压缩卡和硬盘录像机的配套产品,支持大华所有码流格式以及海思公司的h264
码流和ADI的h264码流。
本文档详细描述了开发包中各函数实现的功能及接口
播放SDK的主要功能有:支持文件或流数据的播放、回放控制(如暂停\恢复、快放慢放)、音频
控制、流数据录像、多区域显示、按帧序号或按时间定位、数据回调、消息回调、字符叠加、抓图…….
开发包中包括的文件有:dhplay.dll、dhplay.h、dhplay.lib、底层mpeg4解码库(dllmpeg4.dll)、底层h264解码库dllh264.dll(解大华的h264码流和ADI公司的码流)和海思的h264解码库,包括(AmrDLL.dll、DLLDeinterlace.dll、hi_h264dec_w.dll)。
1.2适用性
❖支持大华所有码流以及ADI的h264码流和海思的h264码流的解码
❖支持HB、HBE、LB、LBE、GB、GBE、NVS机型码流设计原则
2设计原则
2.1典型调用
2.1.1多显卡初始化
2.1.2回调及功能设置
2.1.3打开文件或数据流
2.1.4播放
2.1.5各功能操作及信息获取
2.1.6停止
2.1.7结束
2.1.8可随时调用的函数
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最大通道数
3.1.2声音波形范围
3.1.3定时器类型
3.1.4缓冲类型
注:
3.1.5错误类型
3.1.6最大区域显示数
3.1.7显示类型
3.1.8解码缓冲数
3.1.9定位类型
3.1.10数据流原始缓冲大小
3.1.11数据流播放模式
3.1.12解码回调音频帧类型
3.1.13解码回调视频帧类型
3.1.14媒体信息查询指令
3.1.15系统功能
3.1.16抓图格式类型定义
3.2媒体信息结构
3.3帧信息结构3.3.1帧位置
3.3.2帧信息
3.3.3帧类型
4接口定义
4.1通道控制
4.1.1 PLAY_GetFreePort
4.1.2 PLAY_ReleasePort
4.2播放文件
4.2.1 PLAY_OpenFile
4.2.2 PLAY_CreateFile
4.2.3 PLAY_Play
4.2.4 PLAY_Stop
4.2.5 PLAY_CloseFile
4.2.6 PLAY_DestoryFile
4.3播放流数据
4.3.1 PLAY_OpenStream
4.3.2 PLAY_CreatStream
4.3.3 PLAY_InputData
4.3.4 PLAY_CloseStream
4.3.5 PLAY_DestoryStream
4.3.6 PLAY_OpenStreamEx
4.3.7 PLAY_InputVideoData
4.3.8 PLAY_InputAudioData
4.3.9 PLAY_CloseStreamEx
4.3.10流方式历史数据(包括本地文件和远程录像文件)播放简单示例:
PLAY_OpenStream(0,NULL,0,900*1024);
PLAY_SetStreamOpenMode(0,STREAME_FILE)//文件模式
PLAY_Play(0,hWnd);
FILE*fp=fopen(“file.dav”,”rb”);
BYTEpBuf[4096];
while(true)
{
intlen=fread(pBuf,1,4096,fp);
if(len<=0)
{
break;
}
While(PLAY_InputData(0,pBuf,len)==FALSE)
{
Sleep(45);
}
}
4.3.11实时流数据播放简单示例:
PLAY_OpenStream(0,NULL,0,900*1024);
PLAY_SetStreamOpenMode(0,STREAME_REALTIME)//实时模式,
//默认是实时模式
PLAY_Play(0,hWnd);
//网络流数据回调函数
voidWINAPICallFunction(LONGnPort,LPBYTEpDataBuffer,DWORDDataLength,longnUser) {
PLAY_InputData(nPort,pDataBuffer,DataLength);
//网络实时流数据,数据只送一次,以保证实时性
}
4.4回放控制
4.4.1 PLAY_Pause
4.4.2 PLAY_Fast
4.4.3 PLAY_Slow
4.4.4 PLAY_OneByOne
4.4.5 PLAY_OneByOneBack
4.4.6 PLAY_BackOne
4.4.7 PLAY_Back
4.5音频控制
4.5.1 PLAY_PlaySound
4.5.2 PLAY_StopSound
4.5.3 PLAY_PlaySoundShare
4.5.4 PLAY_StopSoundShare
4.5.5 PLAY_SetVolume
4.5.6 PLAY_GetVolume
4.5.7 PLAY_AdjustWaveAudio
4.6数据回调
4.6.1 PLAY_SetDecCallBack
回调函数参数说明:
☞结构说明:
4.6.2 PLAY_SetDecCallBackEx
回调函数参数说明:
4.6.3 PLAY_SetVisibleDecCallBack
4.6.4 PLAY_SetDecCBStream
4.6.5 PLAY_SetDisplayCallBack
回调函数参数说明:
4.6.6 PLAY_SetAudioCallBack
回调函数参数说明:
4.6.7 PLAY_SetVerifyCallBack
回调函数参数说明:
4.6.8 PLAY_SetDemuxCallBack
回调函数参数说明:
4.6.9 PLAY_SetWaterMarkCallBack
回调函数参数说明:
4.7消息回调
4.7.1 PLAY_SetEncChangeMsg
4.7.2 PLAY_SetFileEndMsg
4.8函数回调
4.8.1 PLAY_SetSourceBufCallBack
回调函数参数说明:
4.8.2 PLAY_ResetSourceBufFlag
4.8.3 PLAY_SetEncTypeChangeCallBack
回调函数参数说明:
4.8.4 PLAY_SetFileRefCallBack
回调函数参数说明:
4.8.5 PLAY_SetFileRefCallBackEx
回调函数参数说明:
4.8.6 PLAY_SetFileEndCallBack
回调函数参数说明:
4.9文件索引
4.9.1 PLAY_SetRefValue
4.9.2 PLAY_GetRefValue
4.10文件定位
4.10.1 PLAY_SetCurrentFrameNum
4.10.2 PLAY_SetPlayedTimeEx
4.10.3 PLAY_SetPlayPos
4.10.4 PLAY_GetPlayPos
4.11设置属性
4.11.1 PLAY_SetColor
4.11.2 PLAY_SetDisplayBuf
4.11.3 PLAY_SetDisplayType
4.11.4 PLAY_VerticalSyncEnable
4.11.5 PLAY_AdjustFluency
4.11.6 PLAY_ChangeRate
4.11.7 PLAY_OpenAudioRecord
回调函数参数说明:
4.11.8 PLAY_CloseAudioRecord
4.11.9 PLAY_SetOverlayMode
4.11.10 PLAY_SetPicQuality
4.11.11 PLAY_SetStreamOpenMode
4.11.12 PLAY_SetTimerType
4.12获得属性
4.12.1 PLAY_GetCaps
注:属性值,1~9位分别表示以下信息(位与是TRUE表示支持)
4.12.2 PLAY_GetColor
4.12.3 PLAY_GetDisplayBuf
4.12.4 PLAY_GetDisplayType
4.12.5 PLAY_GetColorKey
4.12.6 PLAY_GetOverlayMode
4.12.7 PLAY_GetPictureQuality
4.12.8 PLAY_GetStreamOpenMode
4.12.9 PLAY_GetTimerType
4.12.10 PLAY_GetBufferValue
4.12.11 PLAY_GetCurrentFrameNum
4.12.12 PLAY_GetCurrentFrameRate
4.12.13 PLAY_GetFileHeadLength
4.12.14 PLAY_GetFileTime
4.12.15 PLAY_GetFileTotalFrames
4.12.16 PLAY_GetKeyFramePos
4.12.17 PLAY_GetNextKeyFramePos
4.12.18 PLAY_GetPictureSize
4.12.19 PLAY_GetPlayedFrames
4.12.20 PLAY_GetPlayedTime
4.12.21 PLAY_GetPlayedTimeEx
4.12.22 PLAY_QueryInfo
Ex:
intlen;
MEDIA_INFOtMediaInfo;
PLAY_QueryInfo(0,PLAY_CMD_GetMediaInfo,(char*)&tMediaInfo,sizeof(MEDIA_INFO),&len);
4.12.23 PLAY_GetSourceBufferRemain
4.12.24 PLAY_GetRealFrameBitRate
4.13多显卡控制
4.13.1 PLAY_InitDDrawDevice
4.13.2 PLAY_ReleaseDDrawDevice
4.13.3 PLAY_SetDDrawDevice
4.13.4 LAY_SetDDrawDeviceEx
4.13.5 PLAY_GetDDrawDeviceInfo
4.13.6 PLAY_GetDDrawDeviceTotalNums
4.13.7 PLAY_GetCapsEx
补充说明:目前的多显卡显示方式和上述接口函数有所出入。
不需要由用户去指定用哪块显卡,会自动显示在窗口所在显示器所对应的显卡上。
4.14抓图
4.14.1 PLAY_ConvertToBmpFile
4.14.2 PLAY_ConvertToJpegFile
4.14.3 PLAY_CatchPic
4.14.4 PLAY_CatchPicEx
4.14.5 PLAY_CatchResizePic
4.14.6 PLAY_GetPicBMP
4.14.7 PLAY_GetPicJPEG
4.15字符叠加
4.1
5.1 PLAY_RigisterDrawFun
回调函数参数说明:
4.16多区域显示
4.16.1 PLAY_SetDisplayRegion
4.16.2 PLAY_RefreshPlayEx
4.17数据流录像
4.17.1 PLAY_StartDataRecord
4.17.2 PLAY_StopDataRecord
4.18清缓冲
4.18.1 PLAY_ResetSourceBuffer
4.18.2 PLAY_ResetBuffer
缓冲类型定义:
4.19智能搜索
该部分功能只对有数据帧信息的文件有效
数据帧指音频数据和视频数据之外的的数据块,譬如通道标题,LOGO等。
4.19.1 PLAY_SetMDRange
4.19.2 PLAY_SetMDThreShold
4.19.3 PLAY_GetMDPosition
4.20获得版本号
4.20.1 PLAY_GetSdkVersion
4.21获得错误号
4.21.1 PLAY_GetLastError。