大华播放SDK开发手册.docx

上传人:b****7 文档编号:10503143 上传时间:2023-02-17 格式:DOCX 页数:70 大小:41.87KB
下载 相关 举报
大华播放SDK开发手册.docx_第1页
第1页 / 共70页
大华播放SDK开发手册.docx_第2页
第2页 / 共70页
大华播放SDK开发手册.docx_第3页
第3页 / 共70页
大华播放SDK开发手册.docx_第4页
第4页 / 共70页
大华播放SDK开发手册.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

大华播放SDK开发手册.docx

《大华播放SDK开发手册.docx》由会员分享,可在线阅读,更多相关《大华播放SDK开发手册.docx(70页珍藏版)》请在冰豆网上搜索。

大华播放SDK开发手册.docx

大华播放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简介6

1.1概述6

1.2适用性6

2设计原则6

2.1典型调用6

2.2编程补充说明10

3数据结构定义11

3.1宏定义11

3.2媒体信息结构14

3.3帧信息结构14

4接口定义15

4.1通道控制15

4.2播放文件16

4.3播放流数据17

4.4回放控制21

4.5音频控制22

4.6数据回调24

4.7消息回调29

4.8函数回调30

4.9文件索引33

4.10文件定位33

4.11设置属性34

4.12获得属性39

4.13多显卡控制45

4.14抓图47

4.15字符叠加50

4.16多区域显示51

4.17数据流录像51

4.18清缓冲52

4.19智能搜索52

4.20获得版本号53

4.21获得错误号54

4.22其它54

简介

概述

播放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)。

适用性

v支持大华所有码流以及ADI的h264码流和海思的h264码流的解码

v支持HB、HBE、LB、LBE、GB、GBE、NVS机型码流设计原则

设计原则

典型调用

多显卡初始化

初始化多显卡设备

PLAY_InitDDrawDevice

获取显卡数目

PLAY_GetDDrawDeviceTotalNums

设置播放窗口使用的显卡

PLAY_SetDDrawDevice

获取显卡信息

PLAY_GetDDrawDeviceInfo

获取显卡功能

PLAY_GetCapsEx

关闭多显卡设备

PLAY_RealeseDDraw

回调及功能设置

设置文件结束消息回调

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

打开文件或数据流

创建文件

PLAY_CreateFile

打开文件

PLAY_OpenFile

创建流文件

PLAY_CreateStream

打开流

PLAY_OpenStream

PLAY_OpenStreamEx

播放

播放开始

PLAY_Play

各功能操作及信息获取

播放声音

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

停止

播放停止

PLAY_Stop

结束

关闭创建的文件

PLAY_DestroyFile

关闭文件

PLAY_CloseFile

关闭创建的流

PLAY_DestroyStream

关闭流

PLAY_CloseStream

PLAY_CloseStreamEx

释放多显卡资源

PLAY_ReleaseDDrawDevice

可随时调用的函数

获取系统功能

PLAY_GetCaps

转BMP文件

PLAY_ConvertToBmpFile

获取文件头长度

PLAY_GetFileHeadLength

获取版本信息

PLAY_GetSdkVersion

编程补充说明

Ø步骤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中的功能大部分之间没有调用先后顺序,当然对同一个功能还是应该按先打开再操作最后关闭的顺序。

数据结构定义

宏定义

最大通道数

#defineFUNC_MAX_PORT501//最大播放通道数

声音波形范围

#defineMIN_WAVE_COEF-100

#defineMAX_WAVE_COEF100

定时器类型

#defineTIMER_11//默认定时器,精确定时,但一个进程中最多只有16个

#defineTIMER_22//不精确定时,个数据不限制

缓冲类型

#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数据定为一帧

错误类型

#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

最大区域显示数

#defineMAX_DISPLAY_WND4//同时最多打开4个区域显示窗口

显示类型

#defineDISPLAY_NORMAL1//以正常分辨率显示

#defineDISPLAY_QUARTER2//以四分之一分辨率显示

解码缓冲数

#defineMAX_DIS_FRAMES50//最大解码缓冲帧数

#defineMIN_DIS_FRAMES6//最小解码缓冲帧数

定位类型

#defineBY_FRAMENUM1//按帧号

#defineBY_FRAMETIME2//按时间

数据流原始缓冲大小

#defineSOURCE_BUF_MAX1024*100000//最大原始缓冲

#defineSOURCE_BUF_MIN1024*50//最小原始缓冲

数据流播放模式

#defineSTREAME_REALTIME0//最实时方式

#defineSTREAME_FILE1//最流畅方式

解码回调音频帧类型

#defineT_AUDIO16101

#defineT_AUDIO8100

解码回调视频帧类型

#defineT_UYVY1

#defineT_YV123

#defineT_RGB327

媒体信息查询指令

#definePLAY_CMD_GetTime1

#definePLAY_CMD_GetFileRate2

#definePLAY_CMD_GetMediaInfo3

系统功能

#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指令集

抓图格式类型定义

typedefenum__tPicFormats

{

PicFormat_BMP=0,

PicFormat_JPEG,

}tPicFormats;

媒体信息结构

typedefstruct{

longlWidth;

longlHeight;

longlFrameRate;

longlChannel;

longlBitPerSample;

longlSamplesPerSec;

}MEDIA_INFO;

帧信息结构

帧位置

typedefstruct{

longnFilePos;//指定帧在文件中的偏移位置

longnFrameLen;//帧长度

longnFrameNum;//帧序号

longnFrameTime;//帧时间

longnErrorFrameNum;//错误帧号

SYSTEMTIME*pErrorTime;//错误帧时间

longnErrorLostFrameNum;//错误帧帧号

longnErrorFrameSize;//错误帧大小

}FRAME_POS,*PFRAME_POS;

帧信息

typedefstruct{

longnWidth;//画面宽,单位像素。

如果是音频数据则为0

longnHeight;//画面高。

如果是音频数据则为0

longnStamp;//时标信息,单位毫秒

longnType;//视频帧类型,T_AUDIO16,T_RGB32,T_YV12

longnFrameRate;//编码时产生的图像帧率

}FRAME_INFO;

帧类型

typedefstruct{

char*pDataBuf;//帧数据

longnSize;//帧大小

longnFrameNum;//帧序号

BOOLbIsAudio;//是否音频帧

longnReserved;//保留字

}FRAME_TYPE;

接口定义

通道控制

PLAY_GetFreePort

函数名称

BOOLPLAY_GetFreePort(LONG*plPort)

功能描述

获取空闲的通道号,与PLAY_RealsePort成对使用

参数说明

plPort

获取的通道号

返回值

成功返回TRUE,不成功返回FALSE

PLAY_ReleasePort

函数名称

BOOLPLAY_ReleasePort(LONGlPort)

功能描述

释放端口号,与PLAY_GetFreePort成对使用

参数说明

lPort

通道号

返回值

成功返回TRUE,不成功返回FALSE

播放文件

PLAY_OpenFile

函数名称

BOOLPLAY_OpenFile(LONGnPort,LPSTRsFileName)

功能描述

打开文件

参数说明

nPort

通道号

sFileName

文件名,(文件不能超过4G或小于4K)

返回值

成功返回TRUE,不成功返回FALSE

PLAY_CreateFile

函数名称

BOOLPLAY_CreateFile(LONGnPort,LPSTRsFileName)

功能描述

打开文件,自动分配通道号

参数说明

nPort

未使用

sFileName

文件名,(文件不能超过4G或小于4K)

返回值

成功返回TRUE,不成功返回FALSE

PLAY_Play

函数名称

BOOLPLAY_Play(LONGnPort,HWNDhWnd)

功能描述

开始播放。

如果已经播放,改变当前播放状态为正常速度播放

参数说明

nPort

通道号

hWnd

播放窗口句柄

返回值

成功返回TRUE,不成功返回FALSE

PLAY_Stop

函数名称

BOOLPLAY_Stop(LONGnPort)

功能描述

结束播放

参数说明

nPort

通道号

返回值

成功返回TRUE,不成功返回FALSE

PLAY_CloseFile

函数名称

BOOLPLAY_CloseFile(LONGnPort)

功能描述

关闭播放文件,在PLAY_Stop后调用

参数说明

nPort

通道号

返回值

成功返回TRUE,不成功返回FALSE

PLAY_DestoryFile

函数名称

BOOLPLAY_DestoryFile(LONGnPort)

功能描述

关闭播放文件,并释放自动分配的通道号。

参数说明

nPort

通道号

返回值

成功返回TRUE,不成功返回FALSE

播放流数据

PLAY_OpenStream

函数名称

BOOLPLAY_OpenStream(LONGnPort,PBYTEpFileHeadBuf,DWORDnSize,DWORDnBufPoolSize)

功能描述

打开流

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1