大华播放SDK开发手册.docx

上传人:b****1 文档编号:14179728 上传时间:2023-06-21 格式:DOCX 页数:68 大小:46.20KB
下载 相关 举报
大华播放SDK开发手册.docx_第1页
第1页 / 共68页
大华播放SDK开发手册.docx_第2页
第2页 / 共68页
大华播放SDK开发手册.docx_第3页
第3页 / 共68页
大华播放SDK开发手册.docx_第4页
第4页 / 共68页
大华播放SDK开发手册.docx_第5页
第5页 / 共68页
大华播放SDK开发手册.docx_第6页
第6页 / 共68页
大华播放SDK开发手册.docx_第7页
第7页 / 共68页
大华播放SDK开发手册.docx_第8页
第8页 / 共68页
大华播放SDK开发手册.docx_第9页
第9页 / 共68页
大华播放SDK开发手册.docx_第10页
第10页 / 共68页
大华播放SDK开发手册.docx_第11页
第11页 / 共68页
大华播放SDK开发手册.docx_第12页
第12页 / 共68页
大华播放SDK开发手册.docx_第13页
第13页 / 共68页
大华播放SDK开发手册.docx_第14页
第14页 / 共68页
大华播放SDK开发手册.docx_第15页
第15页 / 共68页
大华播放SDK开发手册.docx_第16页
第16页 / 共68页
大华播放SDK开发手册.docx_第17页
第17页 / 共68页
大华播放SDK开发手册.docx_第18页
第18页 / 共68页
大华播放SDK开发手册.docx_第19页
第19页 / 共68页
大华播放SDK开发手册.docx_第20页
第20页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大华播放SDK开发手册.docx

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

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

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多显卡初始化

初始化多显卡设备

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.

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2