GYGY/T303.
5—2018智能电视操作系统第5部分:功能组件接口SmartTVoperatingsystem—Part5:FunctionalComponentInterface2018-07-06发布2018-07-06实施国家广播电视总局发布中华人民共和国广播电视行业标准GY/T303.
5—2018I目次前言III引言IV1范围12规范性引用文件13缩略语14功能组件接口概述25功能组件模型46功能组件接口说明46.
1组件服务管理组件接口.
56.
2数字电视组件接口.
56.
3媒体引擎组件接口.
86.
4HTML5引擎组件接口96.
5DRM组件接口106.
6DCAS组件接口106.
7人机交互组件接口.
116.
8多屏互动组件接口.
126.
9广播信息服务组件接口.
136.
10ATV组件接口146.
11应用管理组件接口.
156.
12消息管理组件接口.
16附录A(规范性附录)组件服务管理组件.
17A.
1概述17A.
2组件服务管理功能模块.
17附录B(规范性附录)数字电视组件.
19B.
1概述19B.
2调谐解调功能模块.
19B.
3节目搜索功能模块.
26B.
4广播协议信息查询与数据过滤功能模块.
31B.
5电子节目指南功能模块.
53B.
6节目信息管理功能模块.
62附录C(规范性附录)媒体引擎组件.
68C.
1概述68C.
2媒体播放功能模块.
68附录D(规范性附录)HTML5引擎组件81D.
1概述81D.
2HTML5功能模块81附录E(规范性附录)DRM组件87E.
1概述87GY/T303.
5—2018IIE.
2DRM功能模块87附录F(规范性附录)DCAS组件.
94F.
1概述94F.
2CA应用功能模块94F.
3解扰操作功能模块.
103附录G(规范性附录)人机交互组件109G.
1概述109G.
2键盘与鼠标消息处理功能模块.
109G.
3语音消息处理功能模块.
116附录H(规范性附录)多屏互动组件119H.
1概述119H.
2设备发现及连接功能模块.
119H.
3跨屏UI操控功能模块.
124附录I(规范性附录)广播信息服务组件128I.
1概述128I.
2广播信息服务业务监测模块.
128I.
3OSD更新功能模块132I.
4广告更新功能模块.
133I.
5应急广播监测功能模块.
136I.
6信息服务功能模块.
137附录J(规范性附录)ATV组件.
139J.
1概述139J.
2频道管理功能模块.
139J.
3通道管理功能模块.
142J.
4电视设置功能模块.
145附录K(规范性附录)应用管理组件152K.
1概述152K.
2应用管理功能模块.
152附录L(规范性附录)消息管理组件159L.
1概述159L.
2消息管理功能模块.
159GY/T303.
5—2018III前言GY/T303《智能电视操作系统》已经或计划发布以下部分:——第1部分:功能与架构;——第2部分:安全;——第3部分:应用程序编程接口;——第4部分:硬件抽象接口;——第5部分:功能组件接口;——第6部分:可信执行环境接口;——第7部分:符合性测试.
本部分为GY/T303的第5部分.
本部分按照GB/T1.
1—2009给出的规则起草.
本部分由全国广播电影电视标准化技术委员会(SAC/TC239)归口.
本部分起草单位:国家新闻出版广电总局广播科学研究院、国家广播电视网工程技术研究中心、华为技术有限公司、四川长虹网络科技有限责任公司、深圳市海思半导体有限公司、四川九州电子科技股份有限公司、深圳市茁壮网络股份有限公司、东方有线网络有限公司、深圳创维-RGB电子有限公司、北京数码视讯科技股份有限公司、杭州国芯科技股份有限公司、上海高清数字科技产业有限公司、北京永新视博数字电视技术有限公司、上海联彤网络通讯技术有限公司、中兴通讯股份有限公司、北京数字太和科技有限责任公司、湖南国科微电子股份有限公司、国家新闻出版广电总局卫星直播管理中心、江苏银河电子股份有限公司、江苏省广电有线信息网络股份有线公司、中国有线电视网络有限公司.
本部分主要起草人:盛志凡、黎政、同磊、昝元宝、程伯钦、严海峰、蒋艳山、李洪浩、杨明磊、万乾荣、马万铮、袁宏伟、来永胜、王旭升、解伟、郭沛宇、赵良福、王强、王磊、郭晓霞、王明敏、杨勍、白伟、张晶、赵学庆、何剑、郝建伟、董进刚、梁志坚、王继刚、郭永伟、赵鹏、郑力铮、刘锦阳、李小雨、王东飞、王欣刚、王佳敏、李玮帆、贾汇东、张雷鸣、张伟、施玉海、付瑞、张定京、王颖、汤新坤、万倩、贾庭兰、朱里越、林宝成、白鹤、谌颖、杨旭、李爽、刘江.
GY/T303.
5—2018IV引言本部分的发布机构提请注意,声明符合本部分时,可能使用涉及本部分有关内容的相关授权的和正在申请的专利如下:序号章条号专利名称14、5、6一种智能电视操作系统24、5、6一种智能电视系统36.
3、附录C一种在智能电视操作系统中支持全媒体播放的方法及智能电视终端46.
6、附录F一种用于智能操作系统的条件接收方法和系统(201510882112.
9)56.
6、附录F一种用于智能操作系统的条件接收方法和系统(201510884736.
4)66.
5、附录E一种用于智能操作系统的数字版权管理(DRM)方法和系统76.
5、附录E一种支持数字版权管理(DRM)的媒体网关/终端实现方法及其设备本部分的发布机构对于该专利的真实性、有效性和范围无任何立场.
该专利持有人已向本部分的发布机构保证,他愿意同任何申请人在合理且无歧视的条款和条件下,就专利授权许可进行谈判.
该专利持有人的声明已在本部分的发布机构备案,相关信息可以通过以下联系方式获得:专利权利人联系地址联系人邮政编码电话电子邮箱国家新闻出版广电总局广播科学研究院北京市西城区复兴门外大街2号孟祥昆100866010-86098010mengxiangkun@abs.
ac.
cn请注意除上述专利外,本部分的某些内容仍可能涉及专利.
本部分的发布机构不承担识别这些专利的责任.
GY/T303.
5—20181智能电视操作系统第5部分:功能组件接口1范围GY/T303的本部分规定了智能电视操作系统的功能组件接口相关技术要求.
本部分适用于智能电视操作系统功能组件接口的研发、生产、应用和测试.
2规范性引用文件下列文件对于本部分的应用是必不可少的.
凡是注日期的引用文件,仅所注日期的版本适用于本部分.
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本部分.
GB/T28160—2011数字电视广播电子节目指南规范GY/T255—2012可下载条件接收系统规范GY/T303.
1—2016智能电视操作系统第1部分:功能与架构GY/T303.
2—2016智能电视操作系统第2部分:安全W3CHTML5.
2超文本标记语言5.
2(HyperTextMarkupLanguage5.
2)W3CCSS2.
1级联样式表2级修订1(CSS2.
1)规范(CascadingStyleSheetsLevel2Revision1(CSS2.
1)Specification)W3CDOM2.
1文档对象模型(DOM2级)HTML规范第1版(DocumentObjectModelLevel2HTMLSpecificationVersion1.
0)3缩略语下列缩略语适用于本部分.
App应用程序(Application)API应用程序编程接口(ApplicationProgrammingInterface)ATV模拟电视(AnalogTelevision)BAT业务群关联表(BouquetAssociationTable)CA认证机构(CertificationAuthority)DCAS可下载条件接收系统(DownloadableConditionalAccessSystem)DOM文档对象模型(DocumentObjectModel)DRM数字版权管理(DigitalRightsManagement)DTV数字电视(DigitalTelevision)DTVAL数字电视适应层(DTVAdaptationLayer)DVB数字视频广播(DigitalVideoBroadcasting)ECM授权控制信息(EntitlementControlMessage)EIT事件信息表(EventInformationTable)GY/T303.
5—20182EMM授权管理信息(EntitlementManagementMessage)EPG电子节目指南(ElectronicProgramGuide)ES基本码流(ElementaryStream)HTML超文本标记语言(HyperTextMarkupLanguage)JSJavaScript脚本语言(JavaScript)TVOS-H基于HTML的TVOS(TVOperatingSystem-HTML)TVOS-J基于Java的TVOS(TVOperatingSystem-Java)NIT网络信息表(NetworkInformationTable)NVM固定存储器(NonVolatileMemory)NVOD准互动点播系统(NearVideoOnDemand)OSD屏幕叠加显示(On-ScreenDisplay)PAT节目关联表(ProgramAssociationTable)PID包识别码(PacketIdentifier)PMT节目映射表(ProgramMapTable)PSI节目特定信息(ProgramSpecificInformation)RAM随机存取存储器(RamdomAccessMemory)SDT业务描述表(ServiceDescriptorTable)SI业务信息(ServiceInformation)TApp可信应用(TrustedApplication)TEE可信执行环境(TrustedExecutionEnvironment)TS传送流(TransportStream)URL统一资源定位符(UniformResourceLocator)4功能组件接口概述TVOS功能组件应向应用框架层功能接口单元和组件层其他功能组件提供调用接口.
TVOS功能组件接口应包括组件服务管理、数字电视、媒体引擎、HTML5引擎、DRM、DCAS、人机交互、多屏互动、广播信息服务、ATV、应用管理、消息管理等功能组件接口.
如图1所示.
GY/T303.
5—20183图1TVOS功能组件接口TVOS功能组件接口应包含向应用框架层提供的软件调用接口以及向其它功能组件提供的软件调用接口.
TVOS公共功能组件接口应支持被应用框架层封装为Java和Web两类应用编程接口.
TVOS功能组件变更应保持组件接口的前向兼容.
TVOS功能组件接口简表见表1.
TVOS功能组件接口降低功能组件层和应用框架层之间的耦合,既起到架构看护作用,又为系统演进提供空间.
表1TVOS功能组件接口序号功能组件接口描述备注1组件服务管理组件接口提供组件服务管理相关调用接口.
详见6.
12数字电视组件接口提供调谐、解调和Tuner状态监控等功能接口;提供DVB单向广播节目搜索、业务信息获取、存储和查询等功能接口;提供单向广播EPG数据的获取和解析、以及频道管理等功能接口.
详见6.
23媒体引擎组件接口提供对各类媒体音视频的播放和控制等功能接口.
详见6.
34HTML5引擎组件接口提供HTML5网页的加载和解析等功能接口.
详见6.
45DRM组件接口提供DRMApp注册、注销和运行状态等管理接口;提供DRMApp与DRMTApp之间的消息传递接口;提供媒体引擎组件与DRMApp和DRMTApp之间的消息传递接口.
详见6.
56DCAS组件接口提供DCASApp注册和管理等功能接口;提供与DTV组件和媒体引擎组件协同实现带内传输条件接收授权控制信息和授权管理信息的接收和转发等功能接口;提供与相关网络协议栈模块协同实现带外传输条件接收授权管理信息的接收和转发功能接口;提供CA版本、ChipID和授权状态等CA相关信息的查询接口;为DCASApp与DCASTApp提供信息交换通道接口.
详见6.
6GY/T303.
5—20184表1(续)序号功能组件接口描述备注7人机交互组件接口提供对遥控器、键盘、鼠标、游戏手柄和移动终端等输入设备的信息处理接口;提供语音操控输入的信息处理接口.
详见6.
78多屏互动组件接口提供手机、平板和电视等设备发现及连接功能接口;提供跨屏UI操控功能接口.
详见6.
89广播信息服务组件接口提供广播信息服务、OSD更新、广告更新、应急广播监测、信息服务、DCAS数据监测等相关业务功能接口.
详见6.
910ATV组件接口提供ATV频道搜索和管理、信号源通道管理和TV相关设置参数管理等功能接口.
详见6.
1011应用管理组件接口提供应用安装、卸载、启动、停止和应用信息获取等应用管理功能接口.
详见6.
1112消息管理组件接口提供DCAS和DRM组件与其他组件之间的消息传送接口.
详见6.
125功能组件模型组件模型原理如图2所示.
其中,BnFooService为服务桩代码(Stub),BpFooService为服务代理(Proxy).
TVOS组件应由服务端和客户端组成,服务端和客户端运行在不同的进程空间,且使用i-Binder机制实现跨进程通信.
组件服务端负责实现相应组件功能并通过硬件抽象层调用内核层软件模块和底层硬件;组件服务端主要包括服务实现和服务Stub等软件模块;组件服务端是一个系统常驻的运行实例,一个组件服务端运行实例服务多个不同的组件客户端运行实例;组件客户端主要包括客户端实现、服务Proxy和客户端API等软件模块.
公共功能组件的服务端和客户端均应采用C/C++编程语言实现.
图2功能组件模型框图6功能组件接口说明GY/T303.
5—201856.
1组件服务管理组件接口组件服务管理组件遵从TVOS功能组件架构,采用C/S组件模型,提供组件服务管理功能.
组件服务管理服务端在独立的进程中运行,服务进程在系统启动时先于其他组件服务启动,并一直在后台运行.
组件服务管理客户端封装成Client.
lib(静态库)和Client.
so(动态库)的形式供其他组件和系统其他部分调用.
组件服务管理组件接口的实现应符合GY/T303.
1—2016中8.
2的相关规定.
附录A定义了组件服务管理组件对外提供的接口,包括组件服务管理功能模块对外接口.
组件服务管理组件接口简表见表2.
表2组件服务管理组件接口接口说明组件服务管理功能模块addService注册一个服务到组件服务管理组件.
checkService根据服务名称以非堵塞方式获取服务对象.
getService根据服务名称以堵塞方式获取服务对象.
listServices获取当前运行中的服务名称列表.
6.
2数字电视组件接口数字电视组件遵从TVOS功能组件架构,数字电视功能组件的服务端在独立的进程中运行,服务进程在系统启动时启动,并一直在后台运行.
数字电视功能组件的客户端封装成DTVClient.
lib(静态库)和DTVClient.
so(动态库)的形式供其他组件和系统其他部分调用.
数字电视组件接口的实现应符合GY/T303.
1—2016中8.
3的相关规定.
附录B定义了数字电视组件对外提供的接口,包括调谐解调、节目搜索、数据过滤、广播协议信息查询、电子节目指南和节目信息管理等功能模块对外接口.
数字电视组件接口简表见表3.
表3数字电视组件接口接口说明调谐解调功能模块DTVAL_getAllTunerID获取所有Tuner的ID.
DTVAL_tuneStream将Tuner调谐到指定的传送流.
DTVAL_tune将Tuner调谐到指定的频点.
DTVAL_getSystemDeliveryType获取Tuner的传送流类型.
DTVAL_getSignalStatus获取信号状态.
DTVAL_getTunerStatus获取Tuner的锁定状态.
DTVAL_getCurrentTunningParam获取当前调谐参数.
DTVAL_getCurrentTransportStream获取当前流信息.
DTVAL_getCurrentService获取当前正在播放的业务.
DTVAL_setCurrentService设置当前正在播放的业务.
节目搜索功能模块DTVAL_startScan开始进行频道搜索.
DTVAL_stopScan取消频道搜索.
GY/T303.
5—20186表3(续)接口说明DTVAL_startScanByJson下载Json数据并解析.
DTVAL_JSON_Start解析Json数据,并保存到数据库中.
DTVAL_JSON_Stop停止Json数据下载解析.
DTVAL_updateScanResult更新PSI/SI数据.
DTVAL_saveScanResult保存PSI/SI数据到NVM.
DTVAL_revertScanResult从NVM导入PSI/SI数据到RAM中.
DTVAL_deleteScanResult清除RAM和NVM中的PSI/SI数据.
广播协议信息查询与数据过滤功能模块DTVAL_getUnusedFilterNumber获得系统中当前未使用的段过滤器数量.
DTVAL_requestFilter申请使用一个段过滤器.
DTVAL_releaseFilter释放占用的段过滤器.
DTVAL_attachStream将段过滤器与传送流绑定.
DTVAL_detachStream将段过滤器与其绑定的传送流断开.
DTVAL_startFiltering开始过滤.
DTVAL_stopFiltering停止过滤.
DTVAL_startTableMonitor启动表格更新的监控.
DTVAL_stopTableMonitor停止对表格更新事件的监控.
DTVAL_getSIInfo获取SI信息.
DTVAL_releaseSIInfo释放SI信息.
DTVAL_retrieveActualNetwork从现行NIT表中获取当前网络信息.
DTVAL_retrieveActualTransportStreams从现行NIT表中获取当前网络的所有传送流信息.
DTVAL_releaseDVBService释放DVBService_t*结构体.
DTVAL_releaseDVBTS释放DVBTS_t*结构体.
DTVAL_retrieveActualServices从当前传输流中获取所有业务信息.
DTVAL_retrievePMTService获取某个业务相关的PMT描述的业务信息.
DTVAL_retrieveTimeFromTDT从当前传送流承载的TDT表中获取时间信息.
DTVAL_retrieveTimeFromTOT从当前传送流承载的TOT表中获取时间信息.
电子节目指南功能模块DTVAL_EPGManager_getPresentProgram获取指定业务的当前节目.
DTVAL_EPGManager_getPresentProgramsByContentType根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的当前节目信息.
DTVAL_EPGManager_getPresentProgramsByName根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的当前节目信息.
DTVAL_EPGManager_getFollowingProgram获取后续节目信息.
DTVAL_EPGManager_getFollowingProgramsByContentType根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的后续节目信息.
DTVAL_EPGManager_getFollowingProgramsByName根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的后续节目信息.
GY/T303.
5—20187表3(续)接口说明DTVAL_EPGManager_getProgramsByService根据参数中指定的业务信息,获取指定业务中符合条件的节目信息.
DTVAL_EPGManager_getProgramsByDate根据参数中指定的起始日期和结束日期,获取指定业务中符合条件的节目信息.
DTVAL_EPGManager_getProgramsByDirection根据参数中指定的起始日期和检索方向,获取指定业务中指定个数的节目信息.
DTVAL_EPGManager_getProgramsByContentType根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的节目信息.
DTVAL_EPGManager_getProgramsByName根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的节目信息.
DTVAL_EPGManager_getReferenceEvents获取到搜索的ReferenceEvent对象数组.
DTVAL_EPGManager_getReferencePrograms获取指定参考业务上的参考节目.
DTVAL_ReferenceEvent_getSchedules获取该参考事件从此时此刻起,若干天之内的所有时移事件列表,当天已经播放完毕的时移事件将被丢弃,时移事件按照起始时间进行排序.
DTVAL_ReferenceEvent_getPresentSchedules获取该参考事件所带的当前正播放的所有时移事件对象,数组中的元素按照播放起始时间进行排序.
DTVAL_ReferenceEvent_getFollowingSchedules获取所有的时移事件信息.
DTVAL_EPGManager_getAllProgramServices返回所有的Service节目信息.
DTVAL_releaseJS_PROGRAMEVENT_PRIVATE释放JS_PROGRAMEVENT_PRIVATE结构体.
节目信息管理功能模块DTVAL_ChannelManager_getChannelByChannelID根据频道ID获取频道对象.
DTVAL_ChannelManager_getChannelByLogicalID根据逻辑频道号获取频道对象.
DTVAL_ChannelManager_getChannelByServiceID根据业务ID获取频道对象.
DTVAL_ChannelManager_getLastChannel获取前一个打开的指定业务类型的频道.
DTVAL_ChannelManager_getShutDownChannel获取指定类型的关机频道.
DTVAL_ChannelManager_delChannel从频道列表中删除指定的频道.
DTVAL_ChannelManager_deleteAllChannels从频道列表中删除所有的频道.
DTVAL_ChannelManager_deleteAllFavorites从频道列表中删除所有的喜爱频道.
DTVAL_ChannelManager_deleteAllDelMarkedChannels从频道列表中删除所有带删除标记的频道.
DTVAL_ChannelManager_resetProperties将用户所有设置为喜爱、锁定、隐藏等标记的频道全部重置,所有的频道全部更改为非喜爱、非锁定、非隐藏.
DTVAL_ChannelManager_swapChannel交换频道对象obj1和频道对象obj2在频道列表中的位置.
DTVAL_ChannelManager_sortChannels按照指定的方式进行频道排序.
DTVAL_ChannelManager_filterChannels在当前频道列表中过滤出指定条件的新的频道列表.
DTVAL_ChannelManager_saveChannels将RAM中的频道列表数据保存到NVM中.
DTVAL_ChannelManager_restoreChannels将NVM中的频道列表数据恢复到RAM中.
GY/T303.
5—20188表3(续)接口说明DTVAL_ChannelManager_getServiceByChannel获取当前频道对象对应的DvbService对象.
DTVAL_ChannelManager_updateChannel将应用设置的channel属性同步到数据库中.
DTVAL_releaseJS_CHANNEL_PRIVATE释放JS_CHANNEL_PRIVATE结构体.
DTVAL_ChannelManager_getTunerIDOfLastChannel获取最后保存节目的TunerID.
DTVAL_SetCarriesList存储频点列表.
DTVAL_SetServiceList存储节目列表.
DTVAL_UpdateChannelData更新节目信息.
DTVAL_ChannelManager_getChannelByServiceType根据业务类型获取频道对象.
6.
3媒体引擎组件接口媒体引擎组件遵从TVOS功能组件架构,采用C/S组件模型,媒体引擎组件的服务端在独立的进程中运行,服务进程在系统启动时启动,并一直在后台运行.
媒体引擎组件的客户端封装成libmedia.
so(动态库)的形式供其他组件和系统其他部分调用.
媒体引擎组件接口的实现应符合GY/T303.
1—2016中8.
4的相关规定.
附录C定义了媒体引擎组件对外提供的接口,包括媒体播放功能模块对外接口.
媒体引擎组件接口简表见表4.
表4媒体引擎组件接口接口说明媒体播放功能模块setDataSource以path和HashKey对的方式设置数据源.
setDataSource以文件句柄方式设置数据源.
setVideoSurfaceTexture设置视频显示画幕.
setListener设置媒体播放监听器.
prepare同步的方式让播放器准备,直到播放器准备好才返回.
prepareAsync异步的方式让播放器准备,调用后该接口立刻返回.
start从pause或者stop状态启动播放.
stop停止播放.
pause暂停播放.
isPlaying获取播放器状态是否处于播放中.
getVideoWidth获取视频播放窗口宽度.
getVideoHeight获取视频播放窗口高度.
setVideoArea设置视频播放窗口区域.
getVideoArea获取视频播放窗口区域.
seekTo让播放器在指定的位置播放.
getCurrentPosition获取当前播放位置.
getDuration获取播放源的可播放长度.
reset重置播放器.
GY/T303.
5—20189表4(续)setPace设置播放器速率.
getPace获取播放器速率.
setStopMode设置媒体播放暂停效果.
getStopMode获取媒体播放暂停效果.
setClip设置视频源图像的剪切区域.
getClip获取视频源图像的剪切区域.
getStartTime获取时移(或者回看)节目的起始时间.
selectAudioStream选择当前播放器的音频流.
setLooping设置播放器是否循环播放.
isLooping获取当前状态是否为循环播放.
setDisplayMode设置播放器显示模式.
setDisplayRatio设置播放时视频的宽高比率.
setMetadataFilter设置媒体元数据过滤器.
getMetadata获取媒体元数据.
setVideoDisplay设置视频输出.
getVideoDisplay获取视频输出状态.
6.
4HTML5引擎组件接口HTML5引擎组件遵从TVOS功能组件架构,采用C/S组件模型,提供HTML5网页支撑功能.
HTML5引擎功能组件的服务端在独立的进程中运行,服务进程由客户端启动与销毁.
HTML5引擎功能组件的客户端封装成HTML5Client.
so(动态库)的形式供其他组件和系统其他部分调用.
HTML5引擎组件接口的实现应符合GY/T303.
1—2016中8.
5的相关规定.
附录D定义了HTML5引擎组件对外提供的接口,包括HTML5功能模块对外接口.
HTML5引擎组件接口简表见表5.
表5HTML5引擎组件接口接口说明HTML5功能模块browser_main启动浏览器服务.
page_open打开一个新的页面.
page_load加载网址.
page_reload刷新当前页面.
page_stop停止加载当前页面.
page_backForward对当前页面进行前进后退操作.
page_close关闭当前页面.
page_setPageCreateCallback设置页面创建完成回调函数.
page_setStartLoadCallback设置页面开始加载回调函数.
page_setFinishLoadCallback设置页面结束加载回调函数.
page_setFailLoadCallback设置页面加载失败回调函数.
GY/T303.
5—2018106.
5DRM组件接口DRM组件遵从TVOS功能组件架构,采用C/S组件模型.
DRM组件应实现对DRMApp注册、注销和运行状态的管理,实现DRMApp与DRMTApp之间的消息传递,实现媒体引擎组件与DRMApp和DRMTApp之间的消息传递,支持DRMApp和DRMTApp与媒体组件协同实现对加密媒体流的解密,为应用框架层功能接口单元和功能组件层的其他组件提供DRM调用接口.
DRM组件接口的实现应符合GY/T303.
1—2016中8.
6和GY/T303.
2—2016的相关规定.
附录E定义了DRM组件对外提供的接口,包括DRM功能模块对外接口.
DRM组件接口简表见表6.
表6DRM组件接口接口说明DRM功能模块CHDRMAPI_RegisterApp注册.
CHDRMAPI_RegisterApp注册拓展,可以自定义私有的与TApp通信的查询许可证和解密命令ID.
CHDRMAPI_UnRegisterApp注销.
CHDRMAPI_SendCommandToTEE发送命令到TEE.
CHDRMAPI_SendMessageToPlayer通知播放器消息.
CHDRMAL_CreateCryptoSession创建解密句柄.
CHDRMAL_DestroyCryptoSession销毁解密句柄.
CHDRMAL_UpdateCryptoSession更新DRM信息.
CHDRMAL_CheckRights查询许可证信息.
CHDRMAL_Decrypt内容解密.
CHDRMAPI_SetLicenseReq_Callback注册许可证监听函数.
CHDRMAPI_SetDecryptReq_Callback注册解密监听函数.
CHDRMAPI_SetMessage_Callback注册消息监听函数.
CHDRMAL_SetPlayerEventListenser注册播放器时间监听函数.
6.
6DCAS组件接口DCAS组件与DTV组件协同实现带内传输条件接收授权控制信息和授权管理信息的接收和转发,与相关网络协议栈模块协同实现带外传输条件接收授权管理信息的接收和转发,为DCASApp与DCASTApp提供信息交换通道,支撑媒体引擎组件与DCASApp和DCASTApp实现信息交互,实现对DCASApp的注册和管理,支持CA版本、ChipID和授权状态等CA相关信息的查询.
DCAS组件接口的实现应符合GY/T303.
1—2016中8.
7、GY/T303.
2—2016和GY/T255—2012的相关规定.
附录F定义了DCAS组件对外提供的接口,包括CA应用功能模块和解扰操作功能模块对外接口.
DCAS组件接口简表见表7.
表7DCAS组件接口接口说明CA应用功能模块DCASAL_registerCASModule注册DCAS回调函数.
DCASAL_removeCASModule删除DCAS模块的注册.
GY/T303.
5—201811表7(续)接口说明DCASAL_enableDescramblingRequests启动接收解扰请求.
DCASAL_disableDescramblingRequests停止接收解扰请求.
DCASAL_startEcmLoading启动接收ECM.
DCASAL_stopEcmLoading停止接收ECM.
DCASAL_startInbandEmmLoading启动接收带内EMM.
DCASAL_stopInbandEmmLoading停止接收带内EMM.
DCASAL_sendCommandToTEE发送命令到TEE中.
DCASAL_getChipPublicId获取ChipId.
DCASAL_sendDescramblingEvent发送解扰状态.
DCASAL_setData存储数据接口.
DCASAL_getDSD获得DSD句柄.
DCASAL_registerDSDListener注册DSDListener.
DCASAL_removeDSDListener删除DSDListener.
DCASAL_getData读取数据接口.
DCASAL_setCAInfo设置接口.
DCASAL_getCAInfo查询接口.
解扰操作功能模块DCASAL_startDescrambling开始解扰接口.
DCASAL_updateDescrambling更新解扰接口.
DCASAL_stopDescrambling停止解扰接口.
DCASAL_notifyFreqChange频点切换通知.
6.
7人机交互组件接口人机交互组件应实现对遥控器、键盘、鼠标、游戏手柄和移动终端等输入设备的输入信息处理;对语音操控输入和传感器输入的信息处理;对基于游戏的触屏输入与游戏手柄输入的适配;对上层软件模块和其他组件提供调用接口.
人机交互组件接口的实现应符合GY/T303.
1—2016中第8章和第10章的相关规定.
附录G定义了人机交互组件对外提供的接口,包括键盘与鼠标消息处理和语音消息处理功能模块对外接口.
人机交互组件接口简表见表8.
表8人机交互组件接口接口说明键盘与鼠标消息处理功能模块getDeviceClasses获取设备类别.
getDeviceIdentifier获取设备描述信息.
getDeviceControllerNumber获取设备对应的控制号.
getConfiguration获取设备对应的配置信息.
getAbsoluteAxisInfo获取绝对轴信息.
GY/T303.
5—201812表8(续)接口说明hasRelativeAxis判断是否有相对轴.
hasInputProperty判断设备是否具有某属性.
mapKey将系统层的按键映射到应用层的定义.
mapAxis将系统层的原始轴信息映射到应用层的定义.
setExcludedDevices设置需要忽略的设备.
getEvents获取设备原始事件.
getScanCodeState获取指定设备的指定扫描码的状态.
getKeyCodeState获取指定设备的指定按键的状态.
getSwitchState获取指定开关的状态.
getAbsoluteAxisValue获取指定设备的指定轴的绝对值.
markSupportedKeyCodes标记支持的按键.
hasScanCode获取指定设备是否支持指定扫描码.
hasLed获取指定设备是否有指定LED.
setLedState设置指定设备的指定LED的状态.
setFrontPanelString设置前面板的显示字符.
getVirtualKeyDefinitions获取指定设备的虚拟按键定义.
getKeyCharacterMap获取指定设备的按键映射表.
setKeyboardLayoutOverlay设定指定设备的按键映射表.
vibrate设置指定设备的震动时间.
cancelVibrate取消指定设备的震动.
requestReopenDevices请求重新打开设备.
wake设备输入唤醒.
语音消息处理功能模块hci_vpInstance_create创建识别实例.
hci_vpRecognize_start启动语音识别输入.
hci_vpRecognize_stop停止语音识别输入.
hci_vpRecognize_cancel取消语音识别输入.
hci_vpRecognize_destroy销毁语音识别引擎实例.
6.
8多屏互动组件接口多屏互动组件应实现手机、平板、电视等多设备间图片和视音频多媒体内容的传送和播控操作,实现跨屏UI操控,应支持UPNP、DLNA和Miracast等协议.
多屏互动组件接口的实现应符合GY/T303.
1—2016中8.
11的相关规定.
附录H定义了多屏互动组件对外提供的接口,包括设备发现及连接功能模块和跨屏UI操控功能模块对外接口.
多屏互动组件接口简表见表9.
GY/T303.
5—201813表9多屏互动组件接口接口说明设备发现及连接功能模块startMultiScreenClient启动发起端.
stopMultiScreenClient与接收端断开连接.
findSPs发现多屏互动组件服务.
connect初始化多屏互动组件服务,连接接收端.
setCallBack设置组件远程接口的回调.
跨屏UI操控功能模块queryInfo向接收端发送的请求指令.
execCmd向接收端发送的执行指令请求.
inputKeyCode向接收端发送的按键事件指令请求.
notifyAllTarget向已连接的组件设备发送通知.
6.
9广播信息服务组件接口广播信息服务组件是TVOS中广播信息服务业务的核心组件,主要包括业务监测和处理、业务数据下载等功能模块,用于支撑应急广播、信息服务、广告图片、文本更新等相关业务.
广播信息服务组件遵从TVOS组件架构,采用C/S组件模型,服务端在独立的进程中运行,服务进程在系统启动时启动,并一直在后台运行.
广播信息服务组件接口的实现应符合GY/T303.
1—2016中8.
14的相关规定.
附录I定义了广播信息服务组件对外提供的接口,包括广播信息服务业务监测、OSD更新、广告更新、应急广播监测和信息服务等功能模块的对外接口.
广播信息服务组件接口简表见表10.
表10广播信息服务组件接口接口说明广播信息服务业务监测功能模块startServer启动广播信息服务组件监控.
stopServer停止广播信息服务业务的监控.
setTunerIdToDth设置高频头标识到广播信息服务组件.
setListener注册监听广播信息服务组件消息.
restoreFactorySettings恢复出厂设置.
SaveNITServiceUpdateVersion对业务更新描述符的版本号进行保存.
DCASM_sendDataToDTHDCAS组件将数据传输给广播信息服务组件.
OSD更新功能模块getOsdXmlFile获取osdxml文件下载路径.
getOSDTAGLength获取相应tag对应的文本长度.
getOSDTAGValue获取相应tag对应的文本内容.
广告更新功能模块getAdFinishStatus开机时获取开机广告处理状态.
getAdInfoCnt根据广告位获取广告数量.
GY/T303.
5—201814表10(续)接口说明getAdInfo根据广告位获取广告内容.
startAdPCT开始接收实时广告.
应急广播监测功能模块stopEMBDAction停止本次应急广播上报.
信息服务功能模块startDataBD启动信息服务接收.
getDataBDFinishPercent获取信息服务下载完成的百分比.
stopDataBD终止信息服务接收.
deleteDataBDFiles删除下载的信息服务所有文件.
6.
10ATV组件接口ATV功能组件遵从TVOS功能组件架构,采用C/S组件模型.
ATV功能组件的服务端在独立的进程中运行,服务进程在系统启动时启动,并一直在后台运行.
ATV功能组件的客户端封装成Client.
lib(静态库)和Client.
so(动态库)的形式供其他组件和系统其他部分调用.
ATV组件接口的实现应符合GY/T303.
1—2016中8.
15的相关规定.
附录J定义了ATV组件对外提供的接口,包括频道管理、通道管理和电视设置等功能模块对外接口.
ATV组件接口简表见表11.
表11ATV组件接口接口说明频道管理功能模块hsTVsetChannel切换频道.
hsTVautoScan自动搜台功能.
hsTVmanualScan手动搜台功能.
hsTVstopScan取消搜台功能.
hsTVsetAudioSystem设置声音制式.
hsTVgetAudioSystem获取声音制式.
hsTVsetColorSystem设置彩色制式.
hsTVgetColorSystem获取彩色制式.
hsTVgetProgramInfo获取频道信息.
通道管理功能模块hsTVsetInputSource切换信号源.
hsTVgetCurInputSource获取当前信号源.
hsTVgetCurInputSourceStatus获取当前通道的信号状态.
电视设置功能模块SetPictureMode设置图像模式.
GetPictureMode获取图像模式.
SetBrightness设置图像亮度.
GY/T303.
5—201815表11(续)接口说明GetBrightness获取图像亮度.
SetContrast设置图像对比度.
GetContrast获取图像对比度.
SetSaturation设置图像饱和度.
GetSaturation获取图像饱和度.
SetSharpness设置图像清晰度.
GetSharpness获取图像清晰度.
SetHue设置图像色调.
GetHue获取图像色调.
setColorTemp设置色温.
getColorTemp获取色温.
hsTVsetBacklightCustom设置背光自定义值.
hsTVgetBacklightCustom获取背光自定义值.
hsTVsetMute设置静音.
hsTVgetMute获取当前静音状态.
hsTVsetVolume设置音量.
hsTVgetVolume获取当前音量值.
hsTVsetBalance设置平衡.
hsTVgetBalance获取当前平衡值.
hsTVsetSoundMode设置声音模式.
hsTVgetSoundMode获取当前声音模式.
hsTVsetSpdifMode设置SPDIF输出模式.
hsTVgetSpdifMode获取当前SPDIF输出模式.
hsTVsetAudioEQGainData设置均衡.
hsTVgetAudioEQGainData获取当前均衡设置.
hsTVsetAudioSyncDelay设置音频同步延时.
hsTVgetAudioSyncDelay获取音频同步延时.
hsTVsetAutoVolumeControl设置自动音量控制开关.
hsTVgetAutoVolumeControl获取自动音量控制开关.
6.
11应用管理组件接口应用管理组件遵从TVOS功能组件架构,应用管理功能组件的服务端在独立的进程中运行,服务进程在系统启动时启动,并一直在后台运行.
应用管理功能组件的客户端封装成AppmanClient.
lib(静态库)和AppmanClient.
so(动态库)的形式供其他组件和系统其他部分调用.
应用管理组件接口的实现应符合GY/T303.
1-2016中8.
17的相关规定.
附录K定义了应用管理组件对外提供的接口,包括应用管理功能模块对外接口.
应用管理组件接口简表见表12.
GY/T303.
5—201816表12应用管理组件接口接口说明应用管理功能模块registerApp注册应用进程,告知应用管理服务.
requestApp请求改变应用状态.
Install安装应用.
uninstall卸载应用.
removeUserData删除应用的缓冲.
start启动应用.
stop停止应用.
showHome显示主页屏幕界面.
registerService注册服务.
setInstallBwList安装黑白名单.
delInstallBwList删除黑白名单.
getInstallBwList获取已经安装的黑白名单.
getPackageInfo获取安装包信息.
getPackages获取已安装的应用安装包列表.
getStatus获取所有应用状态.
getAppStatus获取指定应用状态.
6.
12消息管理组件接口消息管理组件用于DCAS组件和其他组件(如TVOS-J/TVOS-H等)之间的消息传送.
附录L定义了消息管理组件对外提供的接口,包括消息管理功能模块对外接口.
消息管理组件接口简表见表13.
表13消息管理组件接口接口说明消息管理功能模块EMAL_AddListener注册事件的监听器.
EMAL_Notify发送事件消息.
GY/T303.
5—201817附录A(规范性附录)组件服务管理组件A.
1概述本附录定义了组件服务管理组件对外提供的接口,包括组件服务管理功能模块对外接口,见表A.
1.
表A.
1组件服务管理组件功能模块模块说明组件服务管理功能模块定义了注册、查询和获取服务等功能接口.
A.
2组件服务管理功能模块A.
2.
1概述本模块定义了注册、查询和获取服务等功能接口,见表A.
2.
表A.
2组件服务管理功能模块接口接口说明addService注册一个服务到组件服务管理组件.
checkService根据服务名称以非堵塞方式获取服务对象.
getService根据服务名称以堵塞方式获取服务对象.
listServices获取当前运行中的服务名称列表.
A.
2.
2常量定义A.
2.
2.
1错误码原型:enum{SVC_FAIL=-1,SVC_OK=0,SVC_INVALID_PARAM,SVC_PERMISSION_DENIED};描述:接口返回错误码.
成员:SVC_FAIL:内部错误;SVC_OK:执行成功;SVC_INVALID_PARAM:无效参数;SVC_PERMISSION_DENIED:权限不足.
GY/T303.
5—201818A.
2.
3事件类型无.
A.
2.
4数据结构无.
A.
2.
5回调函数定义无.
A.
2.
6接口定义A.
2.
6.
1addService接口原型:status_taddService(constString16&name,constsp&service,boolallowIsolated=false);功能:注册一个服务到组件服务管理组件.
参数:name--输入参数,注册的服务名称;service--输入参数,注册的服务对象;allowIsolated--输入参数,是否允许独立沙盒进程的访问.
返回:status_t,正常则返回0,否则返回错误码.
A.
2.
6.
2checkService接口原型:spcheckService(constString16&name)const;功能:尝试从组件服务管理组件获取指定的服务对象,如果获取失败立即返回.
参数:name--输入参数,需要获取的服务名称.
返回:sp,正常则返回获取到的服务对象,否则返回NULL.
A.
2.
6.
3getService接口原型:spgetService(constString16&name)const;功能:从组件服务管理组件获取指定的服务对象,会阻塞直到获取成功或超时.
参数:name--输入参数,需要获取的服务名称.
返回:sp,正常则返回获取到的服务对象,否则返回NULL.
A.
2.
6.
4listServices接口原型:VectorlistServices();功能:从组件服务管理组件获取当前运行中的服务列表.
参数:无.
返回:Vector,返回的服务列表数组.
GY/T303.
5—201819附录B(规范性附录)数字电视组件B.
1概述本附录定义了数字电视组件对外提供的接口,包括调谐解调、节目搜索、数据过滤、广播协议信息查询、电子节目指南和节目信息管理等功能模块对外接口,见表B.
1.
表B.
1数字电视组件功能模块模块说明调谐解调功能模块定义了调谐解调控制相关的功能接口.
节目搜索功能模块定义了单向广播节目信息搜索功能接口.
广播协议信息查询与数据过滤功能模块定义了从传输流中查询相关信息和过滤通过DVB标准传输的各种数据的功能接口.
电子节目指南功能模块定义了电子节目指南信息查询相关功能接口.
节目信息管理功能模块定义了节目信息查询和管理相关功能接口.
B.
2调谐解调功能模块B.
2.
1概述本模块定义了调谐解调控制相关的功能接口,见表B.
2.
表B.
2调谐解调功能模块接口接口说明DTVAL_getAllTunerID获取所有Tuner的ID.
DTVAL_tuneStream将Tuner调谐到指定的传送流.
DTVAL_tune将Tuner调谐到指定的频点.
DTVAL_getSystemDeliveryType获取Tuner的传送流类型.
DTVAL_getSignalStatus获取信号状态.
DTVAL_getTunerStatus获取Tuner的锁定状态.
DTVAL_getCurrentTunningParam获取当前调谐参数.
DTVAL_getCurrentTransportStream获取当前流信息.
DTVAL_getCurrentService获取当前正在播放的业务.
DTVAL_setCurrentService设置当前正在播放的业务.
B.
2.
2常量定义B.
2.
2.
1错误码原型:enum{DTVAL_FAIL1=-1,GY/T303.
5—201820DTVAL_OK=0,DTVAL_INVALID_PARAM,DTVAL_FAIL2,DTVAL_TIMEOUT};描述:DTVAL层接口返回值.
成员:DTVAL_FAIL1:操作失败1;DTVAL_OK:操作成功;DTVAL_INVALID_PARAM:无效参数;DTVAL_FAIL2:操作失败2;DTVAL_TIMEOUT:操作超时.
B.
2.
2.
2单向广播网络接入类型原型:typedefenum{SATELLITE_DELIVERY_SYSTEM=0x0,CABLE_DELIVERY_SYSTEM=0x1,TERRESTRIAL_DELIVERY_SYSTEM=0x2,ABSS_DELIVERY_SYSTEM=0xA,DTMB_DELIVERY_SYSTEM=0xC,}DVB_DELIVERY_TYPE_e;描述:传输类型枚举值.
成员:SATELLITE_DELIVERY_SYSTEM:卫星传输类型;CABLE_DELIVERY_SYSTEM:有线传输类型;TERRESTRIAL_DELIVERY_SYSTEM:地面数字电视传输类型;ABSS_DELIVERY_SYSTEM:直播卫星传输类型;DTMB_DELIVERY_SYSTEM:DTMB传输类型.
B.
2.
2.
3调制方式原型:typedefenum{DVB_MOD_TYPE_DEFAULT=0,DVB_MOD_TYPE_QAM_16,DVB_MOD_TYPE_QAM_32,DVB_MOD_TYPE_QAM_64,DVB_MOD_TYPE_QAM_128,DVB_MOD_TYPE_QAM_256,DVB_MOD_TYPE_QAM_512,DVB_MOD_TYPE_BPSK,DVB_MOD_TYPE_QPSK,DVB_MOD_TYPE_DQPSK,DVB_MOD_TYPE_8PSK,GY/T303.
5—201821DVB_MOD_TYPE_16APSK,DVB_MOD_TYPE_32APSK,DVB_MOD_TYPE_8VSB,DVB_MOD_TYPE_16VSB,DVB_MOD_TYPE_S_AUTO,DVB_MOD_TYPE_BUTT}DVB_MOD_TYPE_E;描述:DVB调制类型.
成员:DVB_MOD_TYPE_DEFAULT:默认值;DVB_MOD_TYPE_QAM_16:QAM16;DVB_MOD_TYPE_QAM_32:QAM32;DVB_MOD_TYPE_QAM_64:QAM64;DVB_MOD_TYPE_QAM_128:QAM128;DVB_MOD_TYPE_QAM_256:QAM256;DVB_MOD_TYPE_QAM_512:QAM512;DVB_MOD_TYPE_BPSK:BPSK;DVB_MOD_TYPE_QPSK:QPSK;DVB_MOD_TYPE_DQPSK:DQPSK;DVB_MOD_TYPE_8PSK:8PSK;DVB_MOD_TYPE_16APSK:16APSK;DVB_MOD_TYPE_32APSK:32APSK;DVB_MOD_TYPE_8VSB:8VSB;DVB_MOD_TYPE_16VSB:16VSB;DVB_MOD_TYPE_S_AUTO:S_AUTO;DVB_MOD_TYPE_BUTT:BUTT.
B.
2.
2.
4DVB-TTS流优先级原型:typedefenum{TUNER_TS_PRIORITY_NONE=0,TUNER_TS_PRIORITY_HP,TUNER_TS_PRIORITY_LP,TUNER_TS_PRIORITY_INVALID}TUNER_TS_PRIORITY_E;描述:TS流极性.
成员:TUNER_TS_PRIORITY_NONE:无优先级;TUNER_TS_PRIORITY_HP:高优先级;TUNER_TS_PRIORITY_LP:低优先级;TUNER_TS_PRIORITY_INVALID:无效值.
B.
2.
2.
5卫星信号极化方向GY/T303.
5—201822原型:typedefenum{TUNER_FE_POLARIZATION_H,TUNER_FE_POLARIZATION_V,TUNER_FE_POLARIZATION_L,TUNER_FE_POLARIZATION_R,TUNER_FE_POLARIZATION_INVALID,}TUNER_FE_POLARIZATION_E;描述:卫星信号极化方向.
成员:TUNER_FE_POLARIZATION_H:水平极化;TUNER_FE_POLARIZATION_V:垂直极化;TUNER_FE_POLARIZATION_L:左旋圆极化;TUNER_FE_POLARIZATION_R:右旋圆极化;TUNER_FE_POLARIZATION_INVALID:无效值.
B.
2.
2.
6信号锁定状态原型:typedefenum{DVB_TUNER_LOCK=0x0,DVB_TUNER_UNLOCK=0x1,DVB_TUNER_TUNING=0x2}DVB_TUNER_STATUS_e;描述:信号锁定状态.
成员:DVB_TUNER_LOCK:信号锁定;DVB_TUNER_UNLOCK:信号丢失;DVB_TUNER_TUNING:信号调制中.
B.
2.
2.
7TER模式原型:typedefenum{TUNER_TER_MODE_BASE=0,TUNER_TER_MODE_LITE,TUNER_TER_MODE_INVALID}TUNER_TER_MODE_E;描述:通道中的信号模式.
成员:TUNER_TER_MODE_BASE:支持base信号;TUNER_TER_MODE_LITE:支持lite信号;TUNER_TER_MODE_INVALID:无效值.
B.
2.
3事件类型无.
B.
2.
4数据结构GY/T303.
5—201823B.
2.
4.
1有线解调参数原型:typedefstruct{intfrequency;intsymbolrate;intmodulation;}DVBCTuningParameters_t;描述:DVBC解调参数.
成员:frequency:频率;symbolrate:符号率;modulation:调制方式.
B.
2.
4.
2卫星解调参数原型:typedefstruct{intfrequency;intsymbolRate;TUNER_FE_POLARIZATION_EenPolar;intscrambleValue;}DVBSTuningParameters_t;描述:DVBS解调参数.
成员:frequency:下行频率,单位:kHz;symbolRate:符号率,单位:Symb/s;enPolar:极化方式;scrambleValue:物理层扰码初始值,范围0~262141,该值为非0时属于特殊信号,该值只能由信号发送方告知;当频点不是特殊信号时,该值必须配置为默认值0.
B.
2.
4.
3地面数字电视解调参数原型:typedefstruct{intfrequency;intbandWidth;DVB_MOD_TYPE_EenModType;unsignedcharbReverse;TUNER_TER_MODE_EenChannelMode;TUNER_TS_PRIORITY_EenDVBTPrio;}DVBTTuningParameters_t;描述:DVBT解调参数.
成员:frequency:频率,单位kHz;bandWidth:带宽,单位kHz;enModType:调制方式;GY/T303.
5—201824bReverse:频谱翻转处理方式;enChannelMode:通道中TER模式;enDVBTPrio:优先级,针对dvb-t.
B.
2.
4.
4调谐解调参数原型:typedefstruct{intdelivery_type;union{DvbCTuningParameters_tcable_param;DVBSTuningParameters_tsat_param;DVBTTuningParameters_tter_param;}tuning_param;}DvbTuningParameters_t;描述:DVB调谐解调参数成员:delivery_type:传输类型;cable_param:DVBC调谐解调参数;sat_param:DVBS调谐解调参数;ter_param:DVBT调谐解调参数.
B.
2.
4.
5信号状态信息原型:typedefstruct{intsignalQuality;intsignalStrength;interrorRate;intsignalLevel;intsignalNoiseRatio;}DvbSignalStatus_t;描述:信号状态信息.
成员:signalQuality:信号质量;signalStrength:信号强度;errorRate:误码率;signalLevel:信号电平;signalNoiseRatio:信噪比.
B.
2.
5回调函数定义无.
B.
2.
6接口定义B.
2.
6.
1DTVAL_getAllTunerID接口原型:intDTVAL_getAllTunerID(int*ids,intmax_count);GY/T303.
5—201825功能:获取机顶盒的所有Tuner的ID.
参数:ids--输出参数,Tuner的ID;max_count--输入参数,ids数组的长度,若Tuner的数量超过该值,则返回ERROR_TUNER_MAX_LENGTH.
返回:int,Tuner的数量.
B.
2.
6.
2DTVAL_tuneStream接口原型:intDTVAL_tuneStream(inttuner_id,intoriginal_network_id,inttransport_stream_id);功能:异步方法,将Tuner调谐到指定的传送流.
参数:tuner_id--输入参数,Tuner的ID,若输入的Tuner的ID无效,则返回ERROR_TUNER_INVALID_TUNER_ID;若该Tuner所接入的网络中没有该传送流,则返回ERROR_TUNER_INVALID_TRANSPORT_STREAM;original_network_id--输入参数,传送流的原始网络ID;transport_stream_id--输入参数,传送流的ID.
返回:int,正常则返回NO_ERROR,否则返回错误码.
B.
2.
6.
3DTVAL_tune接口原型:intDTVAL_tune(inttuner_id,DvbTuningParameters_tparam);功能:异步方法,将Tuner调谐到指定的频点.
参数:tuner_id--输入参数,Tuner的ID,若输入的Tuner的ID无效,则返回ERROR_TUNER_INVALID_TUNER_ID;若频点参数无效,则返回ERROR_TUNER_INVALID_FREQUENCY;param--输入参数,调谐频点.
返回:int,正常则返回NO_ERROR,否则返回错误码.
B.
2.
6.
4DTVAL_getSystemDeliveryType接口原型:intDTVAL_getSystemDeliveryType(inttuner_id);功能:获取Tuner的传送流类型.
参数:tuner_id--输入参数,Tuner的ID,若输入的Tuner的ID无效,则返回ERROR_TUNER_INVALID_TUNER_ID.
返回:int,Tuner的传送流类型,见DVB_DELIVERY_TYPE_e.
B.
2.
6.
5DTVAL_getSignalStatus接口原型:intDTVAL_getSignalStatus(inttuner_id,DvbSignalStatus_t*status);功能:获取信号状态.
参数:tuner_id--输入参数,Tuner的ID,若输入的Tuner的ID无效,则返回ERROR_TUNER_INVALID_TUNER_ID.
status:输出参数,信号状态.
返回:int,正常则返回NO_ERROR,否则返回错误码.
B.
2.
6.
6DTVAL_getTunerStatus接口原型:intDTVAL_getTunerStatus(inttuner_id);GY/T303.
5—201826功能:获取Tuner的锁定状态.
参数:tuner_id--输入参数,Tuner的ID,若输入的Tuner的ID无效,则返ERROR_TUNER_INVALID_TUNER_ID.
返回:int,Tuner的锁定状态,见DVB_TUNER_STATUS_e.
B.
2.
6.
7DTVAL_getCurrentTunningParam接口原型:intDTVAL_getCurrentTunningParam(inttunerID,DvbTuningParameters_t*tunningParam);功能:获取当前调谐参数.
参数:tunerID--输入参数,Tuner的ID;tunningParam--输出参数,Tuner锁定的频点信息.
返回:成功返回0,失败返回-1.
B.
2.
6.
8DTVAL_getCurrentTransportStream接口原型:intDTVAL_getCurrentTransportStream(inttunerId,DVBTS_t*currentStream);功能:获取当前流信息.
参数:tunerID--输入参数,Tuner标识;currentStream--输出参数,传输流信息.
返回:成功返回0,失败返回-1.
B.
2.
6.
9DTVAL_getCurrentService接口原型:intDTVAL_getCurrentService(inttunerID,DVBService_t*service);功能:获取当前正在播放的业务.
参数:tunerID--Tuner标识;service--当前业务.
返回:成功返回0,失败返回-1.
B.
2.
6.
10DTVAL_setCurrentService接口原型:voidDTVAL_setCurrentService(inttunerID,unsignedshortnetworkID,unsignedshortoriNetworkID,unsignedshorttsID,unsignedshortserviceID);功能:设置当前正在播放的业务.
参数:tunerID--Tuner标识.
返回:无.
B.
3节目搜索功能模块B.
3.
1概述本模块定义了单向广播节目信息搜索功能接口,见表B.
3.
表B.
3节目搜索功能模块接口接口说明DTVAL_startScan开始进行频道搜索.
DTVAL_stopScan取消频道搜索.
GY/T303.
5—201827表B.
3(续)接口说明DTVAL_startScanByJson下载Json数据并解析.
DTVAL_startScan开始进行频道搜索.
DTVAL_stopScan取消频道搜索.
DTVAL_startScanByJson下载Json数据并解析.
DTVAL_JSON_Start解析Json数据,并保存到数据库中.
DTVAL_JSON_Stop停止Json数据下载解析.
DTVAL_updateScanResult更新PSI/SI数据.
DTVAL_saveScanResult保存PSI/SI数据到NVM.
DTVAL_revertScanResult从NVM导入PSI/SI数据到RAM中.
DTVAL_deleteScanResult清除RAM和NVM中的PSI/SI数据.
B.
3.
2常量定义B.
3.
2.
1搜索状态原型:typedefenum{MSG_DVB_SCAN_UNKNOWN=-1,MSG_DVB_SCAN_SUCCESS=10023,MSG_DVB_SCAN_START=10025,MSG_DVB_SCAN_FINISHED=10026,MSG_DVB_SCAN_TUNERLOCK_FAILED=10027,MSG_DVB_SCAN_PAT_FAILED=10108,MSG_DVB_SCAN_PMT_FAILED=10109,MSG_DVB_SCAN_NIT_FAILED=10110,MSG_DVB_SCAN_NIT_SUCCESS=10024,MSG_DVB_SCAN_FIND_SERVICES=10028,MSG_DVB_SCAN_STOP_SUCCESS=10029,MSG_DVB_SCAN_STOP_FAILED=10030,MSG_DVB_SCAN_SAVE_SUCCESS=10101,MSG_DVB_SCAN_SAVE_FAILED=10102,MSG_DVB_SCAN_REVERT_SUCCESS=10103,MSG_DVB_SCAN_REVERT_FAILED=10104,MSG_DVB_SCAN_DELETE_SUCCESS=10105,MSG_DVB_SCAN_DELETE_FAILED=10106,MSG_DVB_SCAN_TUNER_SETDONE=10107}MSG_DVB_SCAN_STATUS_e;描述:搜索过程事件信息.
成员:MSG_DVB_SCAN_UNKNOWN:未知状态;MSG_DVB_SCAN_SUCCESS:搜索成功;GY/T303.
5—201828MSG_DVB_SCAN_START:搜索开始;MSG_DVB_SCAN_FINISHED:搜索完成;MSG_DVB_SCAN_TUNERLOCK_FAILED:搜索锁频失败;MSG_DVB_SCAN_PAT_FAILED:搜索PAT失败;MSG_DVB_SCAN_PMT_FAILED:搜索PMT失败;MSG_DVB_SCAN_NIT_FAILED:搜索NIT失败;MSG_DVB_SCAN_NIT_SUCCESS:NIT搜索成功;MSG_DVB_SCAN_FIND_SERVICES:搜索到节目;MSG_DVB_SCAN_STOP_SUCCESS:搜索停止成功;MSG_DVB_SCAN_STOP_FAILED:搜索停止失败;MSG_DVB_SCAN_SAVE_SUCCESS:数据保存成功;MSG_DVB_SCAN_SAVE_FAILED:数据保存失败;MSG_DVB_SCAN_REVERT_SUCCESS:数据转存成功;MSG_DVB_SCAN_REVERT_FAILED:数据转存失败;MSG_DVB_SCAN_DELETE_SUCCESS:数据删除成功;MSG_DVB_SCAN_DELETE_FAILED:数据删除失败;MSG_DVB_SCAN_TUNER_SETDONE:锁频成功.
B.
3.
3事件类型无.
B.
3.
4数据结构B.
3.
4.
1搜索结果原型:typedefstruct{inttsCount;intserviceCount;}DVBScanResultCount_t;描述:搜索结果.
成员:tsCount:搜索到的传输流个数;serviceCount:搜索到的节目个数.
B.
3.
5回调函数定义B.
3.
5.
1DTVAL_scanNotify回调原型:typedefvoid(*DTVAL_scanNotify)(void*env,intscanstatuscode,unsignedintfrequency,intcb_priv,void*pChainIndex,intnumofChainIndex);功能:频道扫描回调函数.
参数:env--TVOS-J环境变量;scanstatuscode--搜索过程状态值,取值见MSG_DVB_SCAN_STATUS_e;frequency--频点;GY/T303.
5—201829cb_priv--对象指针(TVOS-H使用);pChainIndex--链表指针(TVOS-J使用),用于返回搜索的结果.
TVOS-J只使用MSG_DVB_SCAN_STATUS_e中的四个选项:——MSG_DVB_SCAN_NIT_SUCCESS:当NIT搜索完成后进行回调,此时第二个参数频点等于0,第四个参数void*为DVBTS_t*,即返回的是搜索NIT搜索到的所有TS流的结构体链表头指针.
——MSG_DVB_SCAN_SUCCESS:当搜索某个频点完成后进行回调,此时第二个参数为该频点,第四个参数void*为DVBService_t*,即返回的是搜索到的所有service的结构体链表头指针.
——MSG_DVB_SCAN_FAILED:当搜索某个频点失败后进行回调,此时第二个参数为该频点,第四个参数为空.
——MSG_DVB_SCAN_FINISHED:当整体搜索(自动搜索、手动搜索、区间搜索)完成后进行回调,此时第二个参数为0,第四个参数void*为DVBScanResultCount_t*,即返回本次搜索共搜索到的TS流数量和Service数量.
numofChainIndex--描述pChainIndex指针个数或空间.
返回:无.
B.
3.
6接口定义B.
3.
6.
1DTVAL_startScan接口原型:voidDTVAL_startScan(void*env,inttype,inttunerID,DvbTuningParameters_t*params,intparams_count,DTVAL_scanNotifycb,intcb_priv);功能:开始进行频道搜索,同步方法.
参数:env--TVOS-J环境变量;type--表示搜索类型;tunerID--表示从哪个Tuner搜索;params--表示调谐参数;--type=0,手动搜索,数组的长度为1;--type=1,自动搜索,数组的长度等于运营商部署的起始频点数量;--type=2,区间搜索,数组的长度为2,params[0]表示开始搜索频点的调谐参数,params[1]表示终止搜索频点的调谐参数.
params_count--表示调谐参数数量;cb--回调函数;cb_priv--回调函数参数,对象指针.
返回:无.
B.
3.
6.
2DTVAL_stopScan接口原型:voidDTVAL_stopScan(inttunerid);功能:取消搜索.
参数:tunerid--表示从哪个Tuner搜索.
返回:无.
B.
3.
6.
3DTVAL_startScanByJson接口GY/T303.
5—201830原型:voidDTVAL_startScanByJson(void*env,inttype,inttunerID,DvbTuningParameters_t*params,intparams_count,DTVAL_scanNotifycb,intcb_priv,intpid,inttableid);功能:下载json数据并解析.
Tuner锁定rpstru_ScanParam参数的频点,下载对应pid、tableid下的数据,根据描述信息,dtv内部再下载对应的json数据,并解析json数据保存到DB中.
参数:env--TVOS-J环境变量;type--表示搜索类型;tunerID--保存对应的TunerID;params--节目信息数据所在频点的调谐解调参数;cb--回调函数;cb_priv--回调函数参数,对象指针;pid--节目信息数据所在TS包的PID;tableid--节目信息数据分配的tableid.
返回:无B.
3.
6.
4DTVAL_JSON_Start接口原型:intDTVAL_JSON_Start(inttunerID,char*pJson,intnLen);描述:解析pJson数据,并保存到数据库中.
参数:tunerID--主要用于指定保存到哪个数据库;pJson--节目信息数据;nLen--长度.
返回:int,返回错误码.
B.
3.
6.
5DTVAL_JSON_Stop接口原型:intDTVAL_JSON_Stop(inttunerID);描述:停止数据下载解析.
参数:tunerID—表示停止哪个Tuner的搜索.
返回:int,返回错误码.
B.
3.
6.
6DTVAL_updateScanResult接口原型:intDTVAL_updateScanResult(inttunerID);功能:更新PSI/SI数据.
参数:tunerID--表示更新哪个Tuner的搜索结果.
返回:int,成功返回0,失败返回-1.
B.
3.
6.
7DTVAL_saveScanResult接口原型:intDTVAL_saveScanResult(inttunerID);功能:保存PSI/SI数据到NVM.
在搜索完毕后,调用此方法更新NVM中的数据,否则重启接收终端后还将保持原有的频道数据.
参数:tunerID--表示保存哪个Tuner的搜索结果.
返回:int,成功返回0,失败返回-1.
B.
3.
6.
8DTVAL_revertScanResult接口GY/T303.
5—201831原型:intDTVAL_revertScanResult(inttunerID);功能:从NVM导入PSI/SI数据到RAM中.
参数:tunerID--表示导入哪个Tuner的搜索结果.
返回:int,成功返回0,失败返回-1.
B.
3.
6.
9DTVAL_deleteScanResult接口原型:intDTVAL_deleteScanResult(inttunerID);功能:清除RAM和NVM中的PSI/SI数据.
参数:tunerID--表示清除哪个Tuner的搜索结果.
返回:int,成功返回0,失败返回-1.
B.
4广播协议信息查询与数据过滤功能模块B.
4.
1概述定义了从传输流中查询相关信息和过滤通过DVB标准传输的各种数据的功能接口,见表B.
4.
表B.
4广播协议信息查询与数据过滤功能模块接口接口说明DTVAL_getUnusedFilterNumber获得系统中当前未使用的段过滤器数量.
DTVAL_requestFilter申请使用一个段过滤器.
DTVAL_releaseFilter释放占用的段过滤器.
DTVAL_attachStream将段过滤器与传送流绑定.
DTVAL_detachStream将段过滤器与其绑定的传送流断开.
DTVAL_startFiltering开始过滤.
DTVAL_stopFiltering停止过滤.
DTVAL_startTableMonitor启动表格更新的监控.
DTVAL_stopTableMonitor停止对表格更新事件的监控.
DTVAL_getSIInfo获取SI信息.
DTVAL_releaseSIInfo释放SI信息.
DTVAL_retrieveActualNetwork从现行NIT表中获取当前网络信息.
DTVAL_retrieveActualTransportStreams从现行NIT表中获取当前网络的所有传送流信息.
DTVAL_releaseDVBService释放DVBService_t*结构体.
DTVAL_releaseDVBTS释放DVBTS_t*结构体.
DTVAL_retrieveActualServices从当前传输流中获取所有业务信息.
DTVAL_retrievePMTService获取某个业务相关的PMT描述的业务信息.
DTVAL_retrieveTimeFromTDT从当前传送流承载的TDT表中获取时间信息.
DTVAL_retrieveTimeFromTOT从当前传送流承载的TOT表中获取时间信息.
B.
4.
2常量定义B.
4.
2.
1常用PIDGY/T303.
5—201832原型:#definePAT_PID0x0000描述:PSI/SIPATPID原型:#defineCAT_PID0x0001描述:PSI/SICATPID原型:#defineTSDT_PID0x0002描述:PSI/SITSDTPID原型:#defineNIT_PID0x0010描述:PSI/SINITPID原型:#defineSDT_PID0x0011描述:PSI/SISDTPID原型:#defineBAT_PID0x0011描述:PSI/SIBATPID原型:#defineEIT_PID0x0012描述:PSI/SIEITPID原型:#defineRST_PID0x0013描述:PSI/SIRSTPID原型:#defineTDT_PID0x0014描述:PSI/SITDTPID原型:#defineTOT_PID0x0014描述:PSI/SITOTPID原型:#defineDIT_PID0x001E描述:PSI/SIDITPID原型:#defineSIT_PID0x001F描述:PSI/SISITPIDB.
4.
2.
2常用TableID原型:#definePAT_TABLE_ID0x00描述:PSI/SIPATTABLEID原型:#defineCAT_TABLE_ID0x01描述:PSI/SICATTABLEID原型:#definePMT_TABLE_ID0x02描述:PSI/SIPMTTABLEID原型:#defineTSDT_TABLE_ID0x03描述:PSI/SITSDTTABLEID原型:#defineNIT_TABLE_ID0x40描述:PSI/SINITTABLEID原型:#defineNIT_OTHER_TABLE_ID0x41描述:PSI/SINIT_OTHERTABLEID原型:#defineSDT_TABLE_ID0x42描述:PSI/SISDTTABLEID原型:#defineSDT_OTHER_TABLE_ID0x46描述:PSI/SISDT_OTHERTABLEIDGY/T303.
5—201833原型:#defineBAT_TABLE_ID0x4A描述:PSI/SIBATTABLEID原型:#defineEIT_TABLE_ID0x4E描述:PSI/SIEITTABLEID原型:#defineEIT_OTHER_TABLE_ID0x4F描述:PSI/SIEIT_OTHERTABLEID原型:#defineTDT_TABLE_ID0x70描述:PSI/SITDTTABLEID原型:#defineRST_TABLE_ID0x71描述:PSI/SIRSTTABLEID原型:#defineTOT_TABLE_ID0x73描述:PSI/SITOTTABLEID原型:#defineDIT_TABLE_ID0x7E描述:PSI/SIDITTABLEID原型:#defineSIT_TABLE_ID0x7F描述:PSI/SISITTABLEIDB.
4.
2.
3表格类型原型:enumSI_TABLE_TYPE_E{SI_TABLE_TYPE_UNKNOWN=0,SI_TABLE_TYPE_BAT=1,SI_TABLE_TYPE_NIT=2,SI_TABLE_TYPE_PAT=3,SI_TABLE_TYPE_PMT=4,SI_TABLE_TYPE_SDT=5,SI_TABLE_TYPE_EIT=6,SI_TABLE_TYPE_EIT_PF=7,SI_TABLE_TYPE_EIT_SCHEDULE=8,SI_TABLE_TYPE_TDT=9,SI_TABLE_TYPE_TOT=10,SI_TABLE_TYPE_DATA=11};描述:标准PSI/SI表格.
成员:SI_TABLE_TYPE_UNKNOWN:无效表格;SI_TABLE_TYPE_BAT:BAT表格;SI_TABLE_TYPE_NIT:NIT表格;SI_TABLE_TYPE_PAT:PAT表格;SI_TABLE_TYPE_PMT:PMT表格;SI_TABLE_TYPE_SDT:SDT表格;SI_TABLE_TYPE_EIT:EIT表格;SI_TABLE_TYPE_EIT_PF:EIT_PF表格;GY/T303.
5—201834SI_TABLE_TYPE_EIT_SCHEDULE:EIT_SCHEDULE表格;SI_TABLE_TYPE_TDT:TDT表格;SI_TABLE_TYPE_TOT:TOT表格;SI_TABLE_TYPE_DATA:私有数据.
B.
4.
2.
4节目过滤类型原型:#defineFILTER_TYPE_SERVICETYPE1000描述:依据类型过滤节目原型:#defineFILTER_TYPE_FAV1001描述:依据喜好过滤节目原型:#defineFILTER_TYPE_BAT1002描述:依据BAT过滤节目原型:#defineFILTER_TYPE_FTA1003描述:依据FTA过滤节目原型:#defineFILTER_TYPE_HIDE1004描述:依据隐藏过滤节目B.
4.
2.
5排序方法原型:#defineNGB_DVB_SORT_TYPE_NETWORK_ID0x01描述:依据network_id排序.
原型:#defineNGB_DVB_SORT_TYPE_BOUQUET_ID0x02描述:依据bouquet_id排序.
原型:#defineNGB_DVB_SORT_TYPE_ONET_ID0x03描述:依据original_network_id排序.
原型:#defineNGB_DVB_SORT_TYPE_TS_ID0x04描述:依据transport_stream_id排序.
原型:#defineNGB_DVB_SORT_TYPE_SERVICE_ID0x05描述:依据service_id排序.
原型:#defineNGB_DVB_SORT_TYPE_SERVICE_TYPE0x06描述:依据service_type排序.
原型:#defineNGB_DVB_SORT_TYPE_SERVICE_NAME0x07描述:依据service_name排序.
原型:#defineNGB_DVB_SORT_TYPE_CHANNEL_ID0x10描述:依据用户频道号排序.
原型:#defineNGB_DVB_SORT_TYPE_LOGICAL_ID0x11描述:依据逻辑频道号排序.
原型:#defineNGB_DVB_SORT_TYPE_FTA_SCR0x20描述:依据是否加密排序.
原型:#defineNGB_DVB_SORT_ORDER_NON0x00描述:不进行排列.
原型:#defineNGB_DVB_SORT_ORDER_ASC0x01GY/T303.
5—201835描述:若排序依据为DVB_SORT_TYPE_FTA_SCR,则表示非加密到加密排列,若排序依据为其它,则表示升序排列.
原型:#defineNGB_DVB_SORT_ORDER_DESC0x02描述:若排序依据为DVB_SORT_TYPE_FTA_SCR,则表示加密到非加密排列,若排序依据为其它,则表示降序排列B.
4.
2.
6业务类型原型:#defineNGB_DVB_SERVICE_TYPE_DTV0x01描述:数字电视广播业务原型:#defineNGB_DVB_SERVICE_TYPE_DAB0x02描述:数字声音广播业务原型:#defineNGB_DVB_SERVICE_TYPE_TELETEXT0x03描述:图文电视业务原型:#defineNGB_DVB_SERVICE_TYPE_NVOD_REF0x04描述:NVOD参考业务原型:#defineNGB_DVB_SERVICE_TYPE_NVOD_SHIFT0x05描述:NVOD时移业务原型:#defineNGB_DVB_SERVICE_TYPE_MOSAIC0x06描述:马赛克业务原型:#defineNGB_DVB_SERVICE_TYPE_DATA0x0c描述:数据广播业务原型:#defineMAX_FILTER_ATTACH33描述:最大过滤器数量原型:#defineSI_MAX_NETOWRK_NAME_LE64描述:最大网络名称长度原型:#defineSI_MAX_BOUQUET_NAME_LEN64描述:最大分组名称长度原型:#defineMAX_NAME_LENGTH256描述:最大名称长度原型:#defineSI_MAX_SERVICE_STREAMS_NU20描述:节目最大基本流个数原型:#defineMAX_BOUQUET_GRP_NUM10描述:节目最多分组数原型:#defineMAX_SHIFT_SERVICES_NUM100描述:时移参考节目的最大传输节目个数原型:#defineMAX_SCAN_LENGTH100描述:搜索最多频点个数原型#defineSI_MAX_FILTER_CAPTURE_NUM64描述:最大filter个数B.
4.
2.
7排序类型原型:enum{GY/T303.
5—201836SI_INFO_SORT_NONE=0,SI_INFO_SORT_ASC=1,SI_INFO_SORT_DESC=2};描述:排序类型.
成员:SI_INFO_SORT_NONE:不排序;SI_INFO_SORT_ASC:升序;SI_INFO_SORT_DESC:降序.
B.
4.
2.
8信息类型原型:typedefenum{SI_INFO_UNKNOWN=0,SI_INFO_NETWORK,SI_INFO_BOUQUET,SI_INFO_TS,SI_INFO_ES,SI_INFO_SERVICE,SI_INFO_EVENT,SI_INFO_MOSAIC,SI_INFO_TIME,}DVB_SI_INFO_TYPE_E;描述:SI信息类型.
成员:SI_INFO_UNKNOWN:未知类型;SI_INFO_NETWORK:SI信息结构体为DVBNetwork_t;SI_INFO_BOUQUET:SI信息结构体为DVBBouquet_t;SI_INFO_TS:SI信息结构体为DVBTS_t;SI_INFO_ES:SI信息结构体为DVBElementaryStream_t;SI_INFO_SERVICE:SI信息结构体为DVBService_t;SI_INFO_EVENT:SI信息结构体为DVBEvent_t;SI_INFO_MOSAIC:SI信息结构体为DVBMosaic_t;SI_INFO_TIME:预留.
B.
4.
2.
9信息过滤屏蔽类型原型:typedefenum{SI_INFO_NO_MASK=0,SI_INFO_NETWORK_ID_MASK=0x1,SI_INFO_ON_ID_MASK=(0x10;GY/T303.
5—201840mask:过滤条件屏蔽字;tableID:过滤tableID,对应section[0];tableExt:过滤扩展tableID,对应section[3]§ion[4];tableExt2:过滤扩展tableID2,对应section[8]§ion[9];tableExt3:过滤扩展tableID3,对应section[10]§ion[11].
B.
4.
4.
6过滤描述子参数原型:typedefstruct{unsignedshortpid;inttimeout;unsignedcharmask;unsignedchartableID;unsignedchardescTag;unsignedshorttableExt;unsignedshorttableExt2;unsignedshorttableExt3;}DVBSi_get_descriptor_config_t;描述:描述子配置信息.
成员:pid:过滤PID;timeout:超时时间,单位:毫秒(取值范围为≥0);mask:过滤条件屏蔽字;tableID:过滤tableID,对应section[0];descTag:描述子标识;tableExt:过滤扩展tableID,对应section[3]§ion[4];tableExt2:过滤扩展tableID2,对应section[8]§ion[9];tableExt3:过滤扩展tableID3,对应section[10]§ion[11].
B.
4.
4.
7节目定位符原型:typedefstruct__NGB_SERVICELOCATOR__{intri_TsID;intri_NetworkId;intri_OrgNetId;intri_ServiceID;}NGB_SERVICELOCATOR;描述:节目信息.
成员:ri_TsID:传输流ID;ri_NetworkId:网络ID;ri_OrgNetId:原始网络ID;ri_ServiceID:节目ID.
B.
4.
4.
8网络信息GY/T303.
5—201841原型:typedefstruct{unsignedshortnetwork_id;unsignedchardelivery_type;charnetwork_name[SI_MAX_NETOWRK_NAME_LEN];charshort_network_name[SI_MAX_NETOWRK_NAME_LEN];DVBDescriptor_t*descriptors;}DVBNetwork_t;描述:网络信息.
成员:network_id:网络ID;delivery_type:传输类型;network_name[SI_MAX_NETOWRK_NAME_LEN]:网络名称(长);short_network_name[SI_MAX_NETOWRK_NAME_LEN]:网络名称(短);descriptors:描述信息.
B.
4.
4.
9传输流信息原型:typedefstruct{unsignedshortnetwork_id;unsignedshortoriginal_network_id;unsignedshorttransport_stream_id;intbouquet_id;intdelivery_type;union{DVBCTuningParameters_tcableParam;DVBSTuningParameters_tsat_param;DVBTTuningParameters_tter_param;}deliveryParameter;DVBDescriptor_t*descriptors;}DVBTS_t;描述:传输流信息.
成员:network_id:网络ID;original_network_id:原始网络ID;transport_stream_id:传输流ID;bouquet_id:bouquetID;delivery_type:传输类型;cableParam:DVBC参数;sat_param:DVBS参数;ter_param:DVBT参数;descriptors:描述信息.
B.
4.
4.
10条件接收信息GY/T303.
5—201842原型:typedefstruct{intcas_id;intecm_pid;intemm_pid;}DVBCA_info_t;描述:CA信息.
成员:cas_id:CASystemID;ecm_pid:ECMPID;emm_pid:EMMPID.
B.
4.
4.
11节目分组信息原型:typedefstruct{unsignedshortnetwork_id;unsignedshortbouquet_id;charbouquet_name[SI_MAX_BOUQUET_NAME_LEN];charshort_bouquet_name[SI_MAX_BOUQUET_NAME_LEN];DVBDescriptor_t*descriptors;}DVBBouquet_t;描述:节目分组信息.
成员:network_id:网络ID;bouquet_id:BouquetID;bouquet_name[SI_MAX_BOUQUET_NAME_LEN]:BouquetName(长);short_bouquet_name[SI_MAX_BOUQUET_NAME_LEN]:BouquetName(短);descriptors:描述信息.
B.
4.
4.
12基本流信息定义原型:typedefstruct{unsignedcharstream_type;unsignedshortelem_pid;unsignedcharcomponent_tag;intdata_broadcast_ID;intassociation_tag;unsignedshortnetwork_id;unsignedshortoriginal_network_id;unsignedshorttransport_stream_id;unsignedshortservice_id;charlingual[4];intbitrate;intwidth;intheight;GY/T303.
5—201843intDVBCA_info_num;DVBCA_info_tstru_CaData[8];DVBDescriptor_t*descriptors;}DVBElementaryStream_t;描述:基本流信息.
成员:stream_type:基本流类型;elem_pid:基本流PID;component_tag:基本流组件标签;data_broadcast_ID:数据广播ID;association_tag:关联描述子标识;network_id:网络标识;original_network_id:原始网络标识;transport_stream_id:传输流标识;service_id:业务标识;lingual[4]:语种,适用于音频和图文;bitrate:视频传输速率,单位:bps;width:视频宽度:pixel,仅适用于视频;height:高度:pixel,仅适用于音频;DVBCA_info_num:条件接收信息个数;stru_CaData[8]:条件接收信息;descriptors:描述符.
B.
4.
4.
13节目信息原型:typedefstruct{unsignedshortnetwork_id;unsignedshortoriginal_network_id;unsignedshorttransport_stream_id;unsignedshortservice_id;unsignedcharEIT_sch_flag;unsignedcharEIT_pf_flag;unsignedcharrunning_status;unsignedcharfree_ca_mode;unsignedshortpcr_pid;unsignedshortlogic_channel_number;unsignedcharservice_type;intstream_count;intcurrent_vstream;intcurrent_astream;DVBElementaryStream_tstreams[SI_MAX_SERVICE_STREAMS_NUM];charservice_provider_name[MAX_NAME_LENGTH];charshort_service_provider_name[MAX_NAME_LENGTH];GY/T303.
5—201844charservice_name[MAX_NAME_LENGTH];charshort_service_name[MAX_NAME_LENGTH];unsignedshorttime_ref_service_id;inttime_shift_service_count;unsignedshorttime_shift_service_ids[MAX_SHIFT_SERVICES_NUM];intbouquet_ids_count;unsignedshortbouquet_ids[MAX_BOUQUET_GRP_NUM];DVBDescriptor_t*descriptors;}DVBService_t;描述:节目信息.
成员:network_id:网络id;original_network_id:原始网络id;transport_stream_id:传输流id;service_id:节目id;EIT_sch_flag:EITschflag;EIT_pf_flag:eitpresentfollowingflag;running_status:运行状态;free_ca_mode:加密或清流标识;pcr_pid:service的pcrpid;logic_channel_number:逻辑频道号BAT;service_type:节目类型;stream_count:service里面stream数量;current_vstream:当前的视频stream索引号,在streams中的索引;current_astream:当前的音频stream索引号,在streams中的索引;streams[SI_MAX_SERVICE_STREAMS_NUM]:service里面的所有stream;service_provider_name[MAX_NAME_LENGTH]:serviceprovidername;short_service_provider_name[MAX_NAME_LENGTH]:shortserviceprovidername;service_name[MAX_NAME_LENGTH]:servicename;short_service_name[MAX_NAME_LENGTH]:shortservicename;time_ref_service_id:onlyonceexisttime_ref_service_idtimeshiftedservicedescriptorr;time_shift_service_count:包含多少个时移service;time_shift_service_ids[MAX_SHIFT_SERVICES_NUM]:时移servicelist;bouquet_ids_count:BouquetID个数;shortbouquet_ids[MAX_BOUQUET_GRP_NUM]:属于多少个bouquet组;descriptors:描述符.
B.
4.
4.
14调制信息原型:typedefstruct{inti_CarrierIndex;inti_TsID;inti_NetID;GY/T303.
5—201845inti_OrgNetId;inti_FrequencyKHz;inti_SymbolRateKb;inti_QAM;}DVBCarrierInfo_t;描述:调制信息.
成员:i_CarrierIndex:所在的频点索引;i_TsID:传输流ID;i_NetID:网络ID;i_OrgNetId:原始网络ID;i_FrequencyKHz:频点;i_SymbolRateKb:符号率;i_QAM:QAM.
B.
4.
4.
15网络匹配信息原型:typedefstruct{unsignedshortm_networkID;}DVBNetwork_match_t;描述:网络匹配信息.
成员:m_networkID:网络ID.
B.
4.
4.
16业务分群匹配信息原型:typedefstruct{unsignedshortm_networkID;unsignedshortm_originalNetworkID;unsignedshortm_transportStreamID;unsignedshortm_serviceID;unsignedshortm_bouquetID;}DVBBouquet_match_t;描述:业务分群匹配信息.
成员:m_networkID:网络ID;m_originalNetworkID:原始网络ID;m_transportStreamID:传输流ID;m_serviceID:节目ID;m_bouquetID:业务群ID.
B.
4.
4.
17传输流匹配信息原型:typedefstruct{unsignedshortm_networkID;GY/T303.
5—201846unsignedshortm_originalNetworkID;unsignedshortm_transportStreamID;unsignedshortm_bouquetID;}DVBTransport_stream_match_t;描述:传输流匹配信息.
成员:m_networkID:网络ID;m_originalNetworkID:原始网络ID;m_transportStreamID:传输流ID;m_bouquetID:业务群ID.
B.
4.
4.
18业务匹配信息原型:typedefstruct{unsignedshortm_networkID;unsignedshortm_originalNetworkID;unsignedshortm_transportStreamID;unsignedshortm_serviceID;unsignedshortm_bouquetID;unsignedshortm_serviceType;}DVBService_match_t;描述:业务匹配信息.
成员:m_networkID:网络ID;m_originalNetworkID:原始网络ID;m_transportStreamID:传输流ID;m_serviceID:业务ID;m_bouquetID:业务群ID;m_serviceType:业务类型.
B.
4.
4.
19事件匹配信息原型:typedefstruct{unsignedshortm_networkID;unsignedshortm_originalNetworkID;unsignedshortm_transportStreamID;unsignedshortm_serviceID;unsignedshortm_eventID;DVBDateTime_tm_startTime;DVBDateTime_tm_endTime;charm_eventTable;unsignedshortm_eventContentType;}DVBEvent_match_t;描述:事件匹配信息.
GY/T303.
5—201847成员:m_networkID:网络ID;m_originalNetworkID:原始网络ID;m_transportStreamID:传输流ID;m_serviceID:业务ID;m_eventID:节目ID;m_startTime:节目起始时间,bcd格式;m_endTime:节目结束时间,bcd格式;m_eventTable:节目table,取值代表prsent0x00,following0x01,schedule0x02;m_eventContentType:节目内容类型.
B.
4.
4.
20基本流匹配信息原型:typedefstruct{unsignedshortm_networkID;unsignedshortm_originalNetworkID;unsignedshortm_transportStreamID;unsignedshortm_serviceID;unsignedshortm_elementaryStreamID;}DVBDescriptor_match_t;描述:基本流匹配信息.
成员:m_networkID:网络ID;m_originalNetworkID:原始网络ID;m_transportStreamID:传输流ID;m_serviceID:业务ID;m_elementaryStreamID:基本流ID.
B.
4.
4.
21匹配信息原型:typedefstruct{intm_type;intm_mask;union{DVBNetwork_match_tm_network;DVBBouquet_match_tm_bouquet;DVBTransport_stream_match_tm_transportStream;DVBService_match_tm_service;DVBEvent_match_tm_event;}m_match;}DVBInfo_match_t;描述:SI匹配信息.
成员:m_type:要过滤的type,参考DVB_SI_INFO_TYPE_E;GY/T303.
5—201848m_mask:要过滤的mask,参考DVB_SI_INFO_MASK_E;m_match:要匹配的内容.
B.
4.
4.
22排序信息原型:typedefstruct{intnum;intsortType[MAX_SORT_NUM];intsortOrder[MAX_SORT_NUM];}DVBInfo_sortorder_t;描述:排序信息.
成员:num:排序基准数量;sortType[MAX_SORT_NUM]:排序依据;sortOrder[MAX_SORT_NUM]:排序顺序.
B.
4.
5回调函数定义B.
4.
5.
1DTVAL_reportFilteredSection回调原型:typedefvoid(*DTVAL_reportFilteredSection)(void*data,intfilter_id,char*section_data,intsection_length);功能:PSI/SIsection过滤.
参数:data--传入的附加参数;filter_id--输入参数,上报数据的过滤器的ID;section_data--输入参数,过滤到的段数据;section_length--输入参数,过滤到的段数据的长度.
返回:无.
B.
4.
5.
2DTVAL_reportFilterForceDisconnected回调原型:typedefvoid(*DTVAL_reportFilterForceDisconnected)(void*data,intfilter_id);功能:传送流断开的过滤器.
参数:data--传入的附加参数;filter_id--输入参数,与传送流断开的过滤器的ID.
返回:无.
B.
4.
5.
3DTVAL_onTableUpdate回调原型:typedefvoid(*DTVAL_onTableUpdate)(inttunerid,intcapturehandle,intversion,intnetworkid,intorgnetid,intbouquetid,inttsid,intserviceid);功能:PSI/SI表格更新回调函数.
参数:tunerid--Tuner标识;capturehandle--过滤器句柄;version--更新后的版本号;networkid--网络标识符;orgnetid--原始网络标识符;GY/T303.
5—201849bouquetid--业务群标识符;tsid--传输流标识符;serviceid--业务标识符.
返回:无.
B.
4.
6接口定义B.
4.
6.
1DTVAL_getUnusedFilterNumber接口原型:intDTVAL_getUnusedFilterNumber();功能:获得系统中当前未使用的段过滤器数量.
参数:无.
返回:int,系统中当前未使用的段过滤器数量.
B.
4.
6.
2DTVAL_requestFilter接口原型:intDTVAL_requestFilter();功能:申请使用一个段过滤器.
参数:无.
返回:int,系统分配的段过滤器ID.
B.
4.
6.
3DTVAL_releaseFilter接口原型:intDTVAL_releaseFilter(intfilter_id);功能:释放占用的段过滤器.
参数:filter_id--输入参数,段过滤器的ID,若输入的段过滤器的ID无效,则返回ERROR_FILTER_INVALID_FILTER_ID.
返回:int,返回错误码.
B.
4.
6.
4DTVAL_attachStream接口原型:intDTVAL_attachStream(intfilter_id,inttuner_id,inttransport_stream_id,DTVAL_reportFilterForceDisconnected*cb,void*data);功能:将段过滤器与传送流绑定.
参数:filter_id--输入参数,段过滤器的ID,若输入的段过滤器的ID无效,则返回ERROR_FILTER_INVALID_FILTER_ID;若与段过滤器绑定的Tuner的当前传送流与参数中指定的传送流不同,则返回ERROR_FILTER_INVALID_TRANSPORT_STREAM.
若绑定成功,并且段过滤器已经开始过滤,则开始上报过滤到的段数据.
tuner_id--输入参数,绑定的Tuner的ID;transport_stream_id--输入参数,绑定的传送流的ID;cb--回调函数,当正常过滤中发生Tuner被调谐到其他的频点或者传送流事件时调用;data--传入回调函数的附加数据.
返回:int,返回错误码.
B.
4.
6.
5DTVAL_detachStream接口原型:intDTVAL_detachStream(intfilterID);GY/T303.
5—201850功能:将段过滤器与其绑定的传送流断开,并停止发送过滤数据.
该操作不改变过滤器的开始/停止状态.
参数:filter_id--输入参数,段过滤器的ID,若输入的段过滤器的ID无效,则返回ERROR_FILTER_INVALID_FILTER_ID.
返回:int,返回错误码.
B.
4.
6.
6DTVAL_startFiltering接口原型:intDTVAL_startFiltering(intfilter_id,intpid,inttable_id,intoffset,char*pos_filter_def,char*pos_filter_mask,intpos_length,char*neg_filter_def,char*neg_filter_mask,intneg_length,DTVAL_reportFilteredSectioncb,void*data);功能:开始过滤,若本过滤器当前未与传送流绑定,则不上报过滤数据.
过滤条件:((pos_filter_def[i]&pos_filter_mask[i])==(section_data[offset+i]&pos_filter_mask[i]neg_filter_def[i])!
=(section_data[offset+i]&neg_filter_mask[i])).
当过滤到段数据之后,通过DTVAL_reportFilteredSection回调上报.
参数:filter_id--输入参数,段过滤器的ID,若输入的段过滤器的ID无效,则返回ERROR_FILTER_INVALID_FILTER_ID;pid--输入参数,过滤的Section的PID,若指定的pid无效则返回ERROR_FILTER_INVALID_PID;table_id--输入参数,过滤的Section的表ID,若该参数为-1,则表示不设置表ID;offset--输入参数,Section匹配条件,取值大于等于0;pos_filter_def--输入参数,Section匹配条件,若为NULL,则表示不设置该条件;pos_filter_mask--输入参数,Section匹配条件,若为NULL,则表示不设置该条件,本参数需与pos_filter_def同时使用;pos_length--输入参数,Section匹配条件,pos_filter_def和pos_filter_mask的长度,取值大于等于0;neg_filter_def--输入参数,Section匹配条件,若为NULL,则表示不设置该条件;neg_filter_mask--输入参数,Section匹配条件,若为NULL,则表示不设置该条件,本参数需与neg_filter_def同时使用;neg_length--输入参数,Section匹配条件,neg_filter_def和neg_filter_mask的长度,取值大于等于0;cb--回调函数,当过滤到正确的段数据时调用.
data--传入回调函数的附加数据.
返回:int,返回错误码.
B.
4.
6.
7DTVAL_stopFiltering接口原型:intDTVAL_stopFiltering(intfilterID);功能:停止过滤.
该操作不改变过滤器与传送流的绑定状态.
参数:filterID--输入参数,段过滤器的ID,若输入的段过滤器的ID无效,则返回ERROR_FILTER_INVALID_FILTER_ID.
返回:int,返回错误码.
B.
4.
6.
8DTVAL_startTableMonitor接口GY/T303.
5—201851原型:intDTVAL_startTableMonitor(inttunerID,SI_TABLE_TYPE_Etype,NGB_SERVICELOCATORparams,DTVAL_onTableUpdatecb);功能:启动表格更新的监控,监控内容包括BAT、NIT、PAT、PMT、SDT、PF/Schedule事件,并设置回调函数.
参数:tunerID--Tuner标识;type--表格类型;params--业务参数,仅当type指示为PMT表时需要此参数查找PMTPID;cb--回调函数,当监测到PSI/SI信息表版本变化调用.
返回:int,监听器标识.
B.
4.
6.
9DTVAL_stopTableMonitor接口原型:voidDTVAL_stopTableMonitor(inttuner,intmonitorID);功能:停止对表格更新事件的监控;参数:tuner—Tuner标识;monitorID--监听器标识.
返回:无.
B.
4.
6.
10DTVAL_getSIInfo接口原型:intDTVAL_getSIInfo(inttunerID,DVBInfo_match_t*match,DVBInfo_sortorder_t*sortorder,void**siInfo,int*num);功能:获取SI信息.
参数:tunerID--输入参数,所属的TunerID,也就是数据库ID;match--输入参数,匹配过滤所需的信息;sortorder--输入参数,排序的依据和顺序;siInfo--输出参数,获取到的siinfo;num--输出参数,获取到的si信息数量.
返回:int,成功返回0,失败返回-1.
B.
4.
6.
11DTVAL_releaseSIInfo接口原型:intDTVAL_releaseSIInfo(inttunerID,void*siInfo,intnum);功能:释放SI信息.
参数:tunerID--输入参数,所属的TunerID,也就是数据库ID;siInfo--输出参数,通过DTVAL_getSIInfo获取到的siinfo;num--输出参数,si信息数量.
返回:int,成功返回0,失败返回-1.
B.
4.
6.
12DTVAL_retrieveActualNetwork接口原型:intDTVAL_retrieveActualNetwork(inttunerID,DVBNetwork_t*network);功能:从现行NIT表中获取当前网络信息.
参数:tunerID--Tuner标识;network--网络信息.
返回:int,成功返回0,失败返回-1.
GY/T303.
5—201852B.
4.
6.
13DTVAL_retrieveActualTransportStreams接口原型:DVBTS_t*DTVAL_retrieveActualTransportStreams(inttunerID,int*num);功能:从现行NIT表中获取当前网络的所有传送流信息.
参数:tunerID--Tuner标识;num--流个数.
返回:DVBTS_t*,传输流信息链表头指针.
B.
4.
6.
14DTVAL_releaseDVBService接口原型:voidDTVAL_releaseDVBService(DVBService_t*server);功能:释放DVB业务结构体.
参数:server--DVB业务结构体指针.
返回:无.
B.
4.
6.
15DTVAL_releaseDVBTS接口原型:voidDTVAL_releaseDVBTS(DVBTS_t*TS);功能:释放DVB传输流结构体.
参数:TS--DVB传输流结构体指针.
返回:无.
B.
4.
6.
16DTVAL_retrieveActualServices接口原型:DVBService_t*DTVAL_retrieveActualServices(inttunerID,int*num);功能:从当前传输流中获取所有业务信息.
参数:tunerID--Tuner标识.
num—业务数量返回:DVBService_t*,业务信息链表头指针.
B.
4.
6.
17DTVAL_retrievePMTService接口原型:intDTVAL_retrievePMTService(inttunerID,NGB_SERVICELOCATORparams,DVBService_t*server);功能:获取某个业务相关的PMT描述的业务信息.
参数:tunerID--Tuner标识;params--业务参数;server--业务信息链表头指针.
返回:int,成功返回0,失败返回-1.
B.
4.
6.
18DTVAL_retrieveTimeFromTDT接口原型:intDTVAL_retrieveTimeFromTDT(inttunerID,DVBDateTime_t*tdttime);功能:从当前传送流承载的TDT表中获取时间信息.
参数:tunerID--Tuner标识;tdttime--日期时间信息指针.
返回:int,成功返回0,失败返回-1.
GY/T303.
5—201853B.
4.
6.
19DTVAL_retrieveTimeFromTOT接口原型:intDTVAL_retrieveTimeFromTOT(inttunerID,DVBDateTime_t*tottime);功能:从当前传送流承载的TOT表中获取时间信息.
参数:tunerID--Tuner标识;tottime--日期时间信息指针.
返回:int,成功返回0,失败返回-1.
B.
5电子节目指南功能模块B.
5.
1概述本模块定义了电子节目指南信息查询相关功能接口,见表B.
5.
本模块接口的实现应符合GB/T28160—2011的相关规定.
表B.
5电子节目指南功能模块接口接口说明DTVAL_EPGManager_getPresentProgram获取指定业务的当前节目.
DTVAL_EPGManager_getPresentProgramsByContentType根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的当前节目信息.
DTVAL_EPGManager_getPresentProgramsByName根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的当前节目信息.
DTVAL_EPGManager_getFollowingProgram获取后续节目信息.
DTVAL_EPGManager_getFollowingProgramsByContentType根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的后续节目信息.
DTVAL_EPGManager_getFollowingProgramsByName根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的后续节目信息.
DTVAL_EPGManager_getProgramsByService根据参数中指定的业务信息,获取指定业务中符合条件的节目信息.
DTVAL_EPGManager_getProgramsByDate根据参数中指定的起始日期和结束日期,获取指定业务中符合条件的节目信息.
DTVAL_EPGManager_getProgramsByDirection根据参数中指定的起始日期和检索方向,获取指定业务中指定个数的节目信息.
DTVAL_EPGManager_getProgramsByContentType根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的节目信息.
DTVAL_EPGManager_getProgramsByName根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的节目信息.
DTVAL_EPGManager_getReferenceEvents获取到搜索的ReferenceEvent对象数组.
DTVAL_EPGManager_getReferencePrograms获取指定参考业务上的参考节目.
DTVAL_ReferenceEvent_getSchedules获取该参考事件从此时此刻起,若干天之内的所有时移事件列表,当天已经播放完毕的时移事件将被丢弃,时移事件按照起始时间进行排序.
GY/T303.
5—201854表B.
5(续)接口说明DTVAL_ReferenceEvent_getPresentSchedules获取该参考事件所带的当前正播放的所有时移事件对象,数组中的元素按照播放起始时间进行排序.
DTVAL_ReferenceEvent_getFollowingSchedules获取所有的时移事件信息.
DTVAL_EPGManager_getPresentProgram获取指定业务的当前节目.
DTVAL_EPGManager_getPresentProgramsByContentType根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的当前节目信息.
DTVAL_EPGManager_getAllProgramServices返回所有的Service节目信息.
DTVAL_releaseJS_PROGRAMEVENT_PRIVATE释放JS_PROGRAMEVENT_PRIVATE结构体.
B.
5.
2常量定义原型:#defineNGB_EPG_LANGUAGE0x636869描述:EPG语言编码,表示ASCII汉语.
B.
5.
3事件类型无.
B.
5.
4数据结构B.
5.
4.
1时间信息原型:typedefstruct{intsecond;intminute;inthour;intday;intmonth;intyear;}DVBDateTime_t;描述:时间信息.
成员:second:秒(0-59);minute:分(0-59);hour:时(0-23);day:日(1-31);month:月(0-11);year:年(past1900).
B.
5.
4.
2节目事件信息原型:typedefstruct{unsignedshortnetwork_id;unsignedshortoriginal_network_id;GY/T303.
5—201855unsignedshorttransport_stream_id;unsignedshortservice_id;unsignedshortevent_id;charevent_name[MAX_NAME_LENGTH];charshort_event_name[MAX_NAME_LENGTH];charlingual[4];charevent_desc[MAX_NAME_LENGTH];unsignedcharrunning_status;DVBDateTime_tstart_time;unsignedintduration;unsignedcharcontent_nibble;unsignedcharuser_nibble;unsignedcharmin_age;unsignedcharfree_ca_mode;unsignedcharca_lock_mode;DVBDescriptor_t*descriptors;}DVBEvent_t;描述:节目事件信息.
成员:network_id:网络ID;original_network_id:原始网络ID;transport_stream_id:传输流ID;service_id:业务ID;event_id:事件ID;event_name[MAX_NAME_LENGTH]:事件名称;short_event_name[MAX_NAME_LENGTH]:事件名称;lingual[4]:语言;event_desc[MAX_NAME_LENGTH]:短事件描述;running_status:运行状态;start_time:开始事件;duration:时长(单位:秒);content_nibble:内容nibble;user_nibble:用户nibble;min_age:最小观看年龄;free_ca_mode:是否清流;ca_lock_mode:ca锁定模式;descriptors:描述符.
B.
5.
4.
3EPG监控信息原型:typedefstruct{intm_type;intm_mask;GY/T303.
5—201856intm_timeout;intm_maxnum;intm_startDay;intm_searchDay;intm_tsNum;DVBTransport_stream_match_tm_transportStreams[64];DVBService_match_tm_service;}DVBEPGInfo_match_t;描述:EPG监控信息.
成员:m_type:类型;m_mask:mask;m_timeout:超时时长(单位:秒);m_maxnum:最大个数;m_startDay:起始时间;m_searchDay:要搜索的天数;m_tsNum:TS个数;m_transportStreams[64]:ts信息;m_service:节目信息.
B.
5.
4.
4预定信息原型:typedefstruct_ORDER_{JS_CHANNEL_PRIVATE*pChannel;void*eventObj;intorderID;unsignedintdeleteFlag;unsignedshorttype;unsignedshortstatus;}JS_ORDER_PRIVATE;描述:预定信息.
成员:pChannel:节目信息;eventObj:事件信息;orderID:预定ID;deleteFlag:是否删除Flag;type:类型;status:状态.
B.
5.
4.
5EPG信息结构原型:typedefstruct{JS_CHANNEL_PRIVATEchannelObj;DVBEvent_teventObj;GY/T303.
5—201857intisBooked;}JS_PROGRAMEVENT_PRIVATE;描述:EPG信息.
成员:channelObj:节目信息;eventObj:事件信息;isBooked:是否预定.
B.
5.
4.
6时移信息结构原型:typedefstruct{JS_CHANNEL_PRIVATEchannelObj;JS_CHANNEL_PRIVATErefChannelObj;DVBEvent_teventObj;DVBEvent_trefEventObj;intstatus;intorderIndex;}JS_TIMESHIFTEVENT_PRIVATE;描述:时移信息.
成员:channelObj:节目信息;refChannelObj:参考节目信息;eventObj:事件信息;refEventObj:参考事件信息;status:状态;orderIndex:order索引.
B.
5.
5回调函数定义无.
B.
5.
6接口定义B.
5.
6.
1DTVAL_EPGManager_getPresentProgram接口原型:intDTVAL_EPGManager_getPresentProgram(inttunerID,NGB_SERVICELOCATORserviceLocator,JS_PROGRAMEVENT_PRIVATE*programevent);功能:同步方法,获取指定业务的当前节目.
参数:tunerID--Tuner标识;serviceLocator—业务描述符;programevent—节目内容分类值.
返回:int,0表示成功,其它为失败.
B.
5.
6.
2DTVAL_EPGManager_getPresentProgramsByContentType接口GY/T303.
5—201858原型:intDTVAL_EPGManager_getPresentProgramsByContentType(inttunerID,intcontentType,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:同步方法,根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的当前节目信息.
参数:tunerID--Tuner标识;contentType--int型,表示节目内容分类类型;programevent--_PROGRAMEVENT_PRIVATE数据结构数组,表示节目内容分类值;objnumber--int型,JS_PROGRAMEVENT_PRIVATE数据结构的个数;返回:int,0表示成功,其它为失败.
B.
5.
6.
3DTVAL_EPGManager_getPresentProgramsByName接口原型:intDTVAL_EPGManager_getPresentProgramsByName(inttunerID,char*str,JS_PROGRAMEVENT_PRIVATE**programevent,int*Objnumber);功能:同步方法,根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的当前节目信息.
参数:tunerID--Tuner标识;str--sring型,表示搜索关键字;programevent--_PROGRAMEVENT_PRIVATE数据结构数组,表示节目名称.
objnumber--int型,JS_PROGRAMEVENT_PRIVATE数据结构的个数;返回:int,0表示成功,其它为失败.
B.
5.
6.
4DTVAL_EPGManager_getFollowingProgram接口原型:intDTVAL_EPGManager_getFollowingProgram(inttunerID,NGB_SERVICELOCATORserviceLocator,JS_PROGRAMEVENT_PRIVATE*programevent);功能:同步方法,获取后续节目信息.
参数:tunerID--Tuner标识;serviceLocator--表示广播业务定位符;programevent--表示节目信息.
返回:int,0表示成功,其它为失败.
B.
5.
6.
5DTVAL_EPGManager_getFollowingProgramsByContentType接口原型:intDTVAL_EPGManager_getFollowingProgramsByContentType(inttunerID,intcontentType,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:同步方法,根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的后续节目信息.
参数:tunerID--Turner标识;contentType--表示节目内容分类类型;programevent--JS_PROGRAMEVENT_PRIVATE数据结构数组,表示节目名称;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
6DTVAL_EPGManager_getFollowingProgramsByName接口原型:intDTVAL_EPGManager_getFollowingProgramsByName(inttunerID,char*str,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);GY/T303.
5—201859功能:同步方法,根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的后续节目信息.
参数:tunerID--Tuner标识;str--字符串型,表示搜索关键字;programevent--JS_PROGRAMEVENT_PRIVATE数据结构数组,表示节目名称;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数;返回:int,0表示成功,其它为失败.
B.
5.
6.
7DTVAL_EPGManager_getProgramsByService接口原型:intDTVAL_EPGManager_getProgramsByService(inttunerID,NGB_SERVICELOCATORserviceLocator,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:根据参数中指定的业务信息,获取指定业务中符合条件的节目信息.
参数:tunerID--Tuner标识;serviceLocator--NGB_SERVICELOCATOR数据结构,表示广播业务定位符;programevent--JS_PROGRAMEVENT_PRIVATE数据结构数组;objnumber--int型JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
8DTVAL_EPGManager_getProgramsByDate接口原型:intDTVAL_EPGManager_getProgramsByDate(inttunerID,NGB_SERVICELOCATORserviceLocator,DVBDateTime_t*beginDate,DVBDateTime_t*endDate,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:同步方法,根据参数中指定的起始日期和结束日期,获取指定业务中符合条件的节目信息.
参数:tunerID--Tuner标识;serviceLocator--NGB_SERVICELOCATOR数据结构表示广播业务定位符;beginDate--JS_DATE_PRIVATE数据结构,表示起始日期;endDate--JS_DATE_PRIVATE数据结构,表示结束日期;programevent--表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
9DTVAL_EPGManager_getProgramsByDirection接口原型:intDTVAL_EPGManager_getProgramsByDirection(inttunerID,NGB_SERVICELOCATORserviceLocator,DVBDateTime_t*beginDate,intcount,intisForward,JS_PROGRAMEVENT_PRIVATE*programevent,int*objnimber);功能:同步方法,根据参数中指定的起始日期和检索方向,获取指定业务中指定个数的节目信息.
参数:tunerID--Tuner标识;serviceLocator--表示广播业务定位符;beginDate--表示起始日期;count--表示待获取的节目信息个数;isForword--0表示向后搜索;1表示向前搜索;GY/T303.
5—201860programevent--表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
10DTVAL_EPGManager_getProgramsByContentType接口原型:intDTVAL_EPGManager_getProgramsByContentType(inttunerID,intcontentType,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:同步方法,根据参数中指定的节目内容分类值,在当前EPG数据库中查找符合条件的节目信息.
参数:tunerID--Tuner标识;contentType--int型,节目内容分类类型;programevent--表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
11DTVAL_EPGManager_getProgramsByName接口原型:intDTVAL_EPGManager_getProgramsByName(inttunerID,char*str,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:同步方法,根据参数中指定的节目名称,在当前EPG数据库中查找符合条件的节目信息.
参数:tunerID--Tuner标识;str--输入参数,字符串型,表示搜索关键字;programevent--表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
12DTVAL_EPGManager_getReferenceEvents接口原型:intDTVAL_EPGManager_getReferenceEvents(inttunerID,intsortType,intsortOrder,JS_PROGRAMEVENT_PRIVATE**programevent,int*objnumber);功能:获取到搜索的ReferenceEvent对象数组.
参数:tunerID--Tuner标识;sortType--int型,表示排序依据,取值:--1:代表根据参考事件ID排序;--2:代表根据参考事件名称排序.
sortOrder--int型,表示排序方式,取值:--0:表示降序排序;--1:表示升序排序.
programevent—表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
13DTVAL_EPGManager_getReferencePrograms接口原型:intDTVAL_EPGManager_getReferencePrograms(inttunerID,NGB_SERVICELOCATORserviceLocator,JS_PROGRAMEVENT_PRIVATE**programevent,GY/T303.
5—201861int*objnumber);功能:同步方法,获取指定参考业务上的参考节目.
参数:tunerID--Tuner标识;serviceLocator--表示广播业务定位符;programevent—表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
14DTVAL_ReferenceEvent_getSchedules接口原型:intDTVAL_ReferenceEvent_getSchedules(inttunerID,JS_TIMESHIFTEVENT_PRIVATE**timeshiftevent,int*objnumber);功能:获取该参考事件从此时此刻起,若干天之内的所有时移事件列表,当天已经播放完毕的时移事件将被丢弃,时移事件按照起始时间进行排序.
参数:tunerID--Tuner标识;programevent—表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
15DTVAL_ReferenceEvent_getPresentSchedules接口原型:intDTVAL_ReferenceEvent_getPresentSchedules(inttunerID,JS_TIMESHIFTEVENT_PRIVATE**timeshiftevent,int*objnumber);功能:获取该参考事件所带的当前正播放的所有时移事件对象,数组中的元素按照播放起始时间进行排序.
参数:tunerID--Tuner标识;programevent—表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
16DTVAL_ReferenceEvent_getFollowingSchedules接口原型:intDTVAL_ReferenceEvent_getFollowingSchedules(inttunerID,JS_TIMESHIFTEVENT_PRIVATE**timeshiftevent,int*objnumber);功能:异步方法,获取所有的时移事件信息.
参数:tunerID--Tuner标识;programevent—表示节目信息;objnumber--JS_PROGRAMEVENT_PRIVATE数据结构的个数.
返回:int,0表示成功,其它为失败.
B.
5.
6.
17DTVAL_EPGManager_getAllProgramServices接口原型:voidDTVAL_EPGManager_getAllProgramServices(inttunerID,DVBService_t**services,int*objnumber);功能:同步方法,返回所有的Service节目信息.
参数:tunerID--Tuner标识;GY/T303.
5—201862services—所有节目信息组成的DVBService_t的链表头指针;objnumber--DVBService_t数据结构的个数.
返回:无.
B.
5.
6.
18DTVAL_releaseJS_PROGRAMEVENT_PRIVATE接口原型:voidDTVAL_releaseJS_PROGRAMEVENT_PRIVATE(JS_PROGRAMEVENT_PRIVATE*programevent);功能:释放JS_PROGRAMEVENT_PRIVATE结构体.
参数:programevent--JS_PROGRAMEVENT_PRIVATE结构体指针.
返回:无.
B.
6节目信息管理功能模块B.
6.
1概述本模块定义了节目信息查询和管理相关功能接口,见表B.
6.
表B.
6节目信息管理功能模块接口接口说明DTVAL_ChannelManager_getChannelByChannelID根据频道ID获取频道对象.
DTVAL_ChannelManager_getChannelByLogicalID根据逻辑频道号获取频道对象.
DTVAL_ChannelManager_getChannelByServiceID根据业务ID获取频道对象.
DTVAL_ChannelManager_getLastChannel获取前一个打开的指定业务类型的频道.
DTVAL_ChannelManager_getShutDownChannel获取指定类型的关机频道.
DTVAL_ChannelManager_delChannel从频道列表中删除指定的频道.
DTVAL_ChannelManager_deleteAllChannels从频道列表中删除所有的频道.
DTVAL_ChannelManager_deleteAllFavorites从频道列表中删除所有的喜爱频道.
DTVAL_ChannelManager_deleteAllDelMarkedChannels从频道列表中删除所有带删除标记的频道.
DTVAL_ChannelManager_resetProperties将用户所有设置为喜爱、锁定、隐藏等标记的频道全部重置,所有的频道全部更改为非喜爱、非锁定、非隐藏.
DTVAL_ChannelManager_swapChannel交换频道对象obj1和频道对象obj2在频道列表中的位置.
DTVAL_ChannelManager_sortChannels按照指定的方式进行频道排序.
DTVAL_ChannelManager_filterChannels在当前频道列表中过滤出指定条件的新的频道列表.
DTVAL_ChannelManager_saveChannels将RAM中的频道列表数据保存到NVM中.
DTVAL_ChannelManager_restoreChannels将NVM中的频道列表数据恢复到RAM中.
DTVAL_ChannelManager_getServiceByChannel获取当前频道对象对应的DvbService对象.
DTVAL_ChannelManager_updateChannel将应用设置的channel属性同步到数据库中.
DTVAL_releaseJS_CHANNEL_PRIVATE释放JS_CHANNEL_PRIVATE结构体.
DTVAL_ChannelManager_getTunerIDOfLastChannel获取最后保存节目的TunerID.
DTVAL_SetCarriesList存储频点列表.
DTVAL_SetServiceList存储节目列表.
DTVAL_UpdateChannelData更新节目信息.
DTVAL_ChannelManager_getChannelByServiceType根据业务类型获取频道对象.
GY/T303.
5—201863B.
6.
2常量定义无.
B.
6.
3事件类型无.
B.
6.
4数据结构B.
6.
4.
1节目信息基础数据原型:typedefstruct{intnetwork_id;intonet_id;intts_id;intservice_id;intservice_type;intlogic_channel;intchannel_id;intdeltVolume;intisHided;intisDeleted;intisFavorite;intisLocked;intsupportPlayback;}JS_CHANNEL_PRIVATE;描述:节目信息基础数据.
成员:network_id:网络ID;onet_id:原始网络ID;ts_id:传输流ID;service_id:节目ID;service_type:节目类型;logic_channel:逻辑频道号;channel_id:频道ID;deltVolume:音量补偿;isHided:是否隐藏;isDeleted:是否删除;isFavorite:是否喜爱;isLocked:是否加锁;supportPlayback:是否支持回放.
B.
6.
5回调函数定义无.
GY/T303.
5—201864B.
6.
6接口定义B.
6.
6.
1DTVAL_ChannelManager_getChannelByChannelID接口原型:intDTVAL_ChannelManager_getChannelByChannelID(unsignedshortchannelId,JS_CHANNEL_PRIVATE*channel);功能:根据频道ID获取频道对象.
参数:channelId--频道ID,大于0的整数.
channel--获取到的channel对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
2DTVAL_ChannelManager_getChannelByLogicalID接口原型:intDTVAL_ChannelManager_getChannelByLogicalID(unsignedshortlogicId,JS_CHANNEL_PRIVATE*channel);功能:根据逻辑频道号获取频道对象.
参数:logicId--逻辑频道号,大于0的整数.
channel--获取到的channel对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
3DTVAL_ChannelManager_getChannelByServiceID接口原型:intDTVAL_ChannelManager_getChannelByServiceID(unsignedshortserviceId,JS_CHANNEL_PRIVATE*channel);功能:根据业务ID获取频道对象.
参数:serviceId--业务ID,大于0的整数.
channel--获取到的channel对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
4DTVAL_ChannelManager_getLastChannel接口原型:intDTVAL_ChannelManager_getLastChannel(unsignedshortserviceType,JS_CHANNEL_PRIVATE*channel);功能:获取前一个打开的指定业务类型的频道.
参数:serviceType--指定的业务类型(0xffff表示不关心类型).
channel--获取到的channel对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
5DTVAL_ChannelManager_getShutDownChannel接口原型:intDTVAL_ChannelManager_getShutDownChannel(unsignedshortserviceType,JS_CHANNEL_PRIVATE*channel);功能:获取指定类型的关机频道.
参数:serviceType--指定的业务类型.
channel--获取到的channel对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
6DTVAL_ChannelManager_delChannel接口GY/T303.
5—201865原型:intDTVAL_ChannelManager_delChannel(JS_CHANNEL_PRIVATE*channel);功能:从频道列表中删除指定的频道.
参数:channel--channel对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
7DTVAL_ChannelManager_deleteAllChannels接口原型:intDTVAL_ChannelManager_deleteAllChannels(void);功能:从频道列表中删除所有的频道.
参数:无.
返回:int,0表示成功,2表示错误.
B.
6.
6.
8DTVAL_ChannelManager_deleteAllFavorites接口原型:intDTVAL_ChannelManager_deleteAllFavorites(void);功能:从频道列表中删除所有的喜爱频道.
参数:无.
返回:int,0表示成功,2表示错误.
B.
6.
6.
9DTVAL_ChannelManager_deleteAllDelMarkedChannels接口原型:intDTVAL_ChannelManager_deleteAllDelMarkedChannels(void);功能:从频道列表中删除所有带删除标记的频道.
参数:无.
返回:int,0表示成功,2表示错误.
B.
6.
6.
10DTVAL_ChannelManager_resetProperties接口原型:intDTVAL_ChannelManager_resetProperties(void);功能:将用户所有设置为喜爱、锁定、隐藏等标记的频道全部重置,所有的频道全部更改为非喜爱、非锁定、非隐藏.
参数:无.
返回:int,0表示成功,2表示错误.
B.
6.
6.
11DTVAL_ChannelManager_swapChannel接口原型:intDTVAL_ChannelManager_swapChannel(JS_CHANNEL_PRIVATE*channel1,JS_CHANNEL_PRIVATE*channel2);功能:交换频道对象obj1和频道对象obj2在频道列表中的位置参数:channel1--频道1(obj1);channel2--频道2(obj2).
返回:int,0表示成功,2表示错误.
B.
6.
6.
12DTVAL_ChannelManager_sortChannels接口原型:intDTVAL_ChannelManager_sortChannels(int*sortTypeArray,intsortTypeNum,int*sortModeArray,intsortModeNum);功能:按照指定的方式进行频道排序.
GY/T303.
5—201866参数:sortTypeArray--排序依据;sortModeArray--排序方式.
返回:int,0表示成功,2表示错误.
B.
6.
6.
13DTVAL_ChannelManager_filterChannels接口原型:intDTVAL_ChannelManager_filterChannels(intfilterTypeArray[],intvalueArray[],intnum,JS_CHANNEL_PRIVATE**listChannels,int*channelNums);功能:在当前频道列表中过滤出指定条件的新的频道列表.
参数:filterTypeArray--排序依据;valueArray--排序方式.
listChannels--排序后的频道数组;channelNumbs--频道数组长度.
返回:int,0表示成功,2表示错误.
B.
6.
6.
14DTVAL_ChannelManager_saveChannels接口原型:intDTVAL_ChannelManager_saveChannels(void);功能:异步方法,将RAM中的频道列表数据保存到NVM中.
参数:无.
返回:int,0表示成功,2表示错误.
B.
6.
6.
15DTVAL_ChannelManager_restoreChannels接口原型:intDTVAL_ChannelManager_restoreChannels(void);功能:异步方法,将NVM中的频道列表数据恢复到RAM中.
参数:无.
返回:int,0表示成功,2表示错误.
B.
6.
6.
16DTVAL_ChannelManager_getServiceByChannel接口原型:intDTVAL_ChannelManager_getServiceByChannel(JS_CHANNEL_PRIVATE*channel,DVBService_t*server);功能:获取当前频道对象对应的DvbService对象.
参数:channel--当前频道对象;server--业务信息链表头指针.
返回:int,0表示成功,2表示错误.
B.
6.
6.
17DTVAL_ChannelManager_updateChannel接口原型:intDTVAL_ChannelManager_updateChannel(JS_CHANNEL_PRIVATE*channel);功能:将应用设置的channel属性同步到数据库中.
参数:channel--频道对象.
返回:int,0表示成功,2表示错误.
B.
6.
6.
18DTVAL_releaseJS_CHANNEL_PRIVATE接口原型:voidDTVAL_releaseJS_CHANNEL_PRIVATE(JS_CHANNEL_PRIVATE*listChannels);GY/T303.
5—201867功能:释放JS_CHANNEL_PRIVATE结构体.
参数:listChannels—JS_CHANNEL_PRIVATE结构体指针.
返回:int,0表示成功,-1表示错误.
B.
6.
6.
19DTVAL_ChannelManager_getTunerIDOfLastChannel接口原型:intDTVAL_ChannelManager_getTunerIDOfLastChannel(int*rpi_tunerID);功能:获取最后保存节目的tunerid.
参数:rpi_tunerID—int指针,用于存放tunerid.
返回:int,0表示成功,-1表示错误.
B.
6.
6.
20DTVAL_SetCarriesList接口原型:intDTVAL_SetCarriesList(DVBCarrierInfo_t*delivery,intnums);功能:存储频点列表.
参数:delivery:频点信息;nums:频点个数.
返回:int,0表示成功,-1表示错误.
B.
6.
6.
21DTVAL_SetServiceList接口原型:intDTVAL_SetServiceList(inttunerID,DVBService_t*service,intnums);功能:存储节目列表.
参数:tunerID--数据库ID;service--节目信息;nums--节目个数.
返回:int,0表示成功,-1表示错误.
B.
6.
6.
22DTVAL_UpdateChannelData接口原型:intDTVAL_UpdateChannelData(inttunerID,DVBService_tservice);功能:更新节目信息.
参数:tunerID--数据库ID;service--节目信息.
返回:int,0表示成功,-1表示错误.
B.
6.
6.
23DTVAL_ChannelManager_getChannelByServiceType接口原型:intDTVAL_ChannelManager_getChannelByServiceType(inttunerID,unsignedshortServiceType,JS_CHANNEL_PRIVATE*channel,int*objnumber);功能:根据业务类型获取频道对象;参数:tunerID--数据库ID;ServiceType--业务类型(大于0的整数);channel--节目数据(传入必须为有效指针);objnumber--channel最大可用于存储的节目个数.
返回:int,0表示成功,-1表示错误.
GY/T303.
5—201868附录C(规范性附录)媒体引擎组件C.
1概述本附录定义了媒体引擎组件对外提供的接口,包括媒体播放功能模块对外接口,见表C.
1.
表C.
1媒体引擎组件功能模块模块说明媒体播放功能模块定义了媒体播放接口的常量、事件类型、数据结构和接口.
C.
2媒体播放功能模块C.
2.
1概述本模块定义了媒体播放接口的常量、事件类型、数据结构和接口,见表C.
2.
表C.
2媒体播放功能模块接口接口说明setDataSource以path和HashKey对的方式设置数据源.
setDataSource以文件句柄方式设置数据源.
setVideoSurfaceTexture设置视频显示画幕.
setListener设置媒体播放监听器.
prepare同步的方式让播放器准备,直到播放器准备好才返回.
prepareAsync异步的方式让播放器准备,调用后该接口立刻返回.
start从pause或者stop状态启动播放.
stop停止播放.
pause暂停播放.
isPlaying获取播放器状态是否处于播放中.
getVideoWidth获取视频播放窗口宽度.
getVideoHeight获取视频播放窗口高度.
setVideoArea设置视频播放窗口区域.
getVideoArea获取视频播放窗口区域.
seekTo让播放器在指定的位置播放.
getCurrentPosition获取当前播放位置.
getDuration获取播放源的可播放长度.
reset重置播放器.
setPace设置播放器速率.
getPace获取播放器速率.
setStopMode设置媒体播放暂停效果.
getStopMode获取媒体播放暂停效果.
GY/T303.
5—201869表C.
2(续)接口说明setClip设置视频源图像的剪切区域.
getClip获取视频源图像的剪切区域.
getStartTime获取时移(或者回看)节目的起始时间.
selectAudioStream选择当前播放器的音频流.
setLooping设置播放器是否循环播放.
isLooping获取当前状态是否为循环播放.
setDisplayMode设置播放器显示模式.
setDisplayRatio设置播放时视频的宽高比率.
setMetadataFilter设置媒体元数据过滤器.
getMetadata获取媒体元数据.
setVideoDisplay设置视频输出.
getVideoDisplay获取视频输出状态.
C.
2.
2常量定义C.
2.
2.
1媒体播放错误码原型:typedefenum__tagSmePlayerError{E_SME_PLAYER_ERROR_NONE=0,E_SME_PLAYER_ERROR_UNKOWN=10000,E_SME_PLAYER_ERROR_TIME_OUT=10001,E_SME_PLAYER_ERROR_UNSUPPORT_FORMAT=10002,E_SME_PLAYER_ERROR_UNSUPPORT_AUDIO_CODEC=10003,E_SME_PLAYER_ERROR_UNSUPPORT_VIDEO_CODEC=10004,E_SME_PLAYER_ERROR_UNSUPPORT_DISPLAY_MODE=10005,E_SME_PLAYER_ERROR_UNSUPPORT_DISPLAY_ANGLE=10006,E_SME_PLAYER_ERROR_UNSUPPORT_PLAY_MODE=10007,E_SME_PLAYER_ERROR_UNSUPPORT_OP=10008,E_SME_PLAYER_ERROR_STATE=10009,E_SME_PLAYER_ERROR_NOMEM=10010,E_SME_PLAYER_ERROR_INVALID_ARGS=10011,E_SME_PLAYER_ERROR_ASYNC=10012,E_SME_PLAYER_ERROR_UNSUPPORT_SEEK=10013,E_SME_PLAYER_ERROR_UNSUPPORT_TEXT_CODEC=10014,E_SME_PLAYER_ERROR_SUBTILE_NOT_FOUND=10015,E_SME_PLAYER_ERROR_SUBTILE_ACCESS=10016,E_SME_PLAYER_ERROR_FITIN_PARAMETER=10017,E_SME_PLAYER_ERROR_INVAILD_RECT=10018,E_SME_PLAYER_ERROR_UNSUPPORT_LOOP_PLAYBACK=10019,E_SME_PLAYER_ERROR_UNSUPPORT_DISPLAY_RATIO=10020,GY/T303.
5—201870E_SME_PLAYER_ERROR_INVALID_DRMID=10021,E_SME_PLAYER_ERROR_STREAM_FAILED=10022,}E_SME_PLAYER_ERROR;描述:媒体播放错误码定义.
成员:E_SME_PLAYER_ERROR_NONE:无错误;E_SME_PLAYER_ERROR_UNKOWN:未知错误;E_SME_PLAYER_ERROR_TIME_OUT:操作超时;E_SME_PLAYER_ERROR_UNSUPPORT_FORMAT:不支持格式;E_SME_PLAYER_ERROR_UNSUPPORT_AUDIO_CODEC:不支持音频格式;E_SME_PLAYER_ERROR_UNSUPPORT_VIDEO_CODEC:不支持视频格式;E_SME_PLAYER_ERROR_UNSUPPORT_DISPLAY_MODE:不支持显示模式;E_SME_PLAYER_ERROR_UNSUPPORT_DISPLAY_ANGLE:不支持显示;E_SME_PLAYER_ERROR_UNSUPPORT_PLAY_MODE:不支持播放模式;E_SME_PLAYER_ERROR_UNSUPPORT_OP:不支持操作;E_SME_PLAYER_ERROR_STATE:错误播放状态;E_SME_PLAYER_ERROR_NOMEM:无内存;E_SME_PLAYER_ERROR_INVALID_ARGS:非法参数;E_SME_PLAYER_ERROR_ASYNC:异步操作失败;E_SME_PLAYER_ERROR_UNSUPPORT_SEEK:不支持SEEK操作;E_SME_PLAYER_ERROR_UNSUPPORT_TEXT_CODEC:不支持文字格式;E_SME_PLAYER_ERROR_SUBTILE_NOT_FOUND:字幕未发现;E_SME_PLAYER_ERROR_SUBTILE_ACCESS:获取字幕失败;E_SME_PLAYER_ERROR_FITIN_PARAMETER:错误的FITIN参数;E_SME_PLAYER_ERROR_INVAILD_RECT:非法的窗口参数;E_SME_PLAYER_ERROR_UNSUPPORT_LOOP_PLAYBACK:不支持循环播放;E_SME_PLAYER_ERROR_UNSUPPORT_DISPLAY_RATIO:不支持的显示比例;E_SME_PLAYER_ERROR_INVALID_DRMID:非法的DRM编码;E_SME_PLAYER_ERROR_STREAM_FAILED:获取流失败.
C.
2.
2.
2媒体引擎错误码原型:enummedia_error_type{MEDIA_ERROR_UNKNOWN=1,MEDIA_ERROR_SERVER_DIED=100,MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK=200,TVOS_MEDIA_ERROR_START_FAILD=1000,TVOS_MEDIA_ERROR_SETPACE_FAILED=1001,TVOS_MEDIA_ERROR_SEEK_FAILD=1002,TVOS_MEDIA_ERROR_PAUSE_FAILD=1003,TVOS_MEDIA_ERROR_RESUME_FAILD=1004,TVOS_MEDIA_ERROR_STOP_FAILD=1005,TVOS_MEDIA_ERROR_URL_INVALID=1006,GY/T303.
5—201871TVOS_MEDIA_ERROR_RESOURCE_UNAVAILABLE=1007,TVOS_MEDIA_ERROR_AUDIO_DECODE_ERROR=1008,TVOS_MEDIA_ERROR_VIDEO_DECODE_ERROR=1009,TVOS_MEDIA_ERROR_UNSUPPORT_VIDEO_DEC=1010,TVOS_MEDIA_ERROR_UNSUPPORT_AUDIO_DEC=1011,TVOS_MEDIA_ERROR_CONNECT_FAILED=1012,TVOS_MEDIA_ERROR_VOD_SEARCH_FAILED=1300,TVOS_MEDIA_ERROR_VOD_OUT_OF_RANGE=1301,};描述:媒体错误类型定义.
成员:MEDIA_ERROR_UNKNOWN:未知错误;MEDIA_ERROR_SERVER_DIED:媒体服务死亡;MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:渐进回放不合法;TVOS_MEDIA_ERROR_START_FAILD:启播失败;TVOS_MEDIA_ERROR_SETPACE_FAILED:设置倍速播放失败;TVOS_MEDIA_ERROR_SEEK_FAILD:SEEK失败;TVOS_MEDIA_ERROR_PAUSE_FAILD:暂停播放失败;TVOS_MEDIA_ERROR_RESUME_FAILD:恢复播放失败;TVOS_MEDIA_ERROR_STOP_FAILD:停止播放失败;TVOS_MEDIA_ERROR_URL_INVALID:设置播放路径无效;TVOS_MEDIA_ERROR_RESOURCE_UNAVAILABLE:播放资源不可用;TVOS_MEDIA_ERROR_AUDIO_DECODE_ERROR:音频解码错误;TVOS_MEDIA_ERROR_VIDEO_DECODE_ERROR:视频解码错误;TVOS_MEDIA_ERROR_UNSUPPORT_VIDEO_DEC:不支持视频解码;TVOS_MEDIA_ERROR_UNSUPPORT_AUDIO_DEC:不支持音频解码;TVOS_MEDIA_ERROR_CONNECT_FAILED:连接服务器失败,建立会话失败或者服务器返回超时;TVOS_MEDIA_ERROR_VOD_SEARCH_FAILED:搜索数据失败,用于IPQAM播放;TVOS_MEDIA_ERROR_VOD_OUT_OF_RANGE:时间超出有效范围,用于IPQAM播放.
媒体引擎错误码随着业务丰富会逐步扩展,媒体引擎错误码扩展规则定义见表C.
3.
表C.
3媒体引擎错误码扩展规则扩展段取值扩展业务范围10001099TVOS公共消息扩展11001199DVB业务扩展12001299CA扩展13001399VOD业务扩展14001499云游戏业务扩展15001599VideoPhone业务扩展C.
2.
2.
3媒体播放状态类型GY/T303.
5—201872原型:enummedia_player_states{MEDIA_PLAYER_STATE_ERROR=0,MEDIA_PLAYER_IDLE=1&httpService,constchar*url,constKeyedVector*headers)功能:以path和HashKey对的方式设置数据源参数:httpService--输出参数,表示使用系统原生HttpService获取数据源.
该参数在TVOS中废弃,后续不建议使用,传入时可以为空;url--输入参数,数据源url;headers--对数据源uri的补充说明,唯一限定一个数据源.
取值可以为空,为空表示uri可唯一确定一个数据源.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
2setDataSource接口原型:status_tsetDataSource(intfd,int64_toffset,int64_tlength);功能:以文件句柄方式设置数据源.
参数:fd--输入参数,文件句柄;offset--输入参数,针对文件起始位置偏移量;length--输入参数,播放长度.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
3setVideoSurfaceTexture接口原型:status_tsetVideoSurfaceTexture(constsp&bufferProducer);功能:设置视频显示画幕.
参数:bufferProducer--输入参数,视频显示画幕.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
4setListener接口原型:status_tsetListener(constsp&listener);功能:设置媒体播放监听器.
参数:listener--输入参数,播放器监听器.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
5prepare接口原型:status_tprepare();功能:同步的方式让播放器准备,直到播放器准备好才返回,如申请必要资源,缓冲数据等;该接口在setDataSource和setDisplay之后调用.
GY/T303.
5—201875参数:无.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
6prepareAsync接口原型:status_tprepareAsync();功能:异步的方式让播放器准备,调用后该接口立刻返回,而不需等缓冲数据好;该接口在setDataSource和setDisplay之后调用.
参数:无.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
7start接口原型:status_tstart();功能:从pause或者stop状态启动播放,当之前是pause状态时,start后从之前pause位置开始播放,当之前为stop时,从数据源的头开始播放.
参数:无.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
8stop接口原型:status_tstop();功能:停止播放,在播放结束后调用,或者在pause状态时,需要停止播放时调用.
参数:无.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
9pause接口原型:status_tpause();功能:暂停播放,暂停播放后可以调用start来恢复播放.
参数:无.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
10isPlaying接口原型:boolisPlaying();功能:获取播放器状态是否处于播放中.
参数:无.
返回:bool,播放中则返回true,否则返回false.
C.
2.
6.
11getVideoWidth接口原型:status_tgetVideoWidth(int*w);功能:获取视频播放窗口宽度.
参数:w--int型指针,表示当前播放媒体中视频窗口的宽度,当没有视频时,值为0.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
12getVideoHeight接口GY/T303.
5—201876原型:status_tgetVideoHeight(int*h);功能:获取视频播放窗口高度.
参数:h--int型指针,表示当前播放媒体中视频窗口的高度,当没有视频时,值为0.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
13setVideoArea接口原型:status_tsetVideoArea(intx,inty,intwidth,intheight);功能:设置视频播放窗口区域.
参数:x--int型,窗口左上角x坐标;y--int型,窗口左上角y坐标;width--int型,窗口宽度;height--int型,窗口高度.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
14getVideoArea接口原型:status_tgetVideoArea(int*x,int*y,int*width,int*height);功能:获取视频播放窗口区域.
参数:x--int型指针,输出参数,输出窗口左上角x坐标;y--int型指针,输出参数,输出窗口左上角y坐标;width--int型指针,输出参数,输出窗口宽度;height--int型指针,输出参数,输出窗口高度.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
15seekTo接口原型:status_tseekTo(intmsec);功能:让播放器在指定的位置播放.
参数:msec--int类型,表示指定的播放位置.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
16getCurrentPosition接口原型:status_tgetCurrentPosition(int*msec);功能:获取当前播放位置.
参数:msec--int型指针,表示当前的播放位置.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
17getDuration接口原型:status_tgetDuration(int*msec);功能:获取播放源的可播放长度,单位ms.
参数:msec--int型指针,单位ms,表示当前数据源可播放长度.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
18reset接口GY/T303.
5—201877原型:status_treset();功能:重置播放器,使其处于去初始化状态,后续若仍需要使用播放器,需要先初始化,在设置数据源,然后调用prepare让播放器准备就绪.
参数:无.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
19setPace接口原型:status_tsetPace(intpace);功能:设置播放器速率,设置后立刻生效,仅用于VOD场景.
参数:pace--int类型,播放倍速.
正常播放速率为1,2倍快进速率为2,2倍速快退速率为-2,以此类推,最大支持到正负32倍.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
20getPace接口原型:status_tgetPace(int*pace);功能:获取播放器速率.
参数:pace--int型指针,播放倍速.
正常播放速率为1,2倍快进速率为2,2倍速慢退速率为-2,以此类推,最大支持到正负32倍.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
21setStopMode接口原型:status_tsetStopMode(intmode);功能:设置媒体播放暂停效果,如静帧、黑屏.
参数:mode--int型,表示暂停效果,取值如下:STOP_MODE_BLACK=0,表示黑屏模式;STOP_MODE_FREEZE=1,表示静帧模式.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
22getStopMode接口原型:status_tgetStopMode(int*mode);功能:获取媒体播放暂停效果,如静帧、黑屏.
参数:mode--int指针,表示暂停效果,取值如下:STOP_MODE_BLACK=0,表示黑屏模式;STOP_MODE_FREEZE=1,表示静帧模式.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
23setClip接口原型:status_tsetClip(intx,inty,intwidth,intheight);功能:设置视频源图像的剪切区域.
设置后整个视频窗口仅显示剪切区域的源视频,用于实现局部放大缩小等操作,即设置后将指定区域的源视频在整个输出窗口上显示.
如果硬件不支持视频剪切,则此方法调用不产生实际效果.
参数:x--int类型,表示视频剪切区域的横向坐标位置;GY/T303.
5—201878y--int类型,表示视频剪切区域的纵向坐标位置;width--int类型,表示剪切区域的宽度;height--int类型,表示剪切区域的高度.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
24getClip接口原型:status_tgetClip(int*x,int*y,int*width,int*height);功能:获取视频源图像的剪切区域.
设置后整个视频窗口仅显示剪切区域的源视频,用于实现局部放大缩小等操作,即设置后将指定区域的源视频在整个输出窗口上显示.
如果硬件不支持视频剪切,则此方法调用不产生实际效果.
参数:x--int型指针,表示视频裁剪区域的横向坐标位置;y--int型指针,表示视频裁剪区域的纵向坐标位置;width--int型指针,表示裁剪区域的宽度;height--int型指针,表示裁剪区域的高度.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
25getStartTime接口原型:status_tgetStartTime(int64_t*startTime);功能:获取时移(或者回看)节目的起始时间.
参数:startTime--int64指针类型,输出参数,输出获取到的起始时间.
返回:status_t,正常则返回0,startTime则输出起始时间,否则返回错误码.
C.
2.
6.
26selectAudioStream接口原型:status_tselectAudioStream(intaudioPid,intaudioCodec);功能:选择当前播放器的音频流,目前仅DVB/VOD场景支持.
参数:audioPid--int类型,媒体流节目ID;audioCodec--int类型,媒体流编码类型.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
27setLooping接口原型:status_tsetLooping(intloop);功能:设置播放器是否循环播放,即播放完当前媒体后,重新再播放该媒体.
参数:loop--int型,0表示非循环播放,非零表示循环播放.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
28isLooping接口原型:boolisLooping();功能:获取当前状态是否为循环播放,即播放完当前媒体后,重新再播放该媒体;参数:无.
返回:boolean类型,ture表示循环播放,false表示不循环播放.
C.
2.
6.
29setDisplayMode接口GY/T303.
5—201879原型:status_tsetDisplayMode(inteMode);功能:设置播放器显示模式.
参数:eMode--int类型,表示显示模式,取值如下:E_SME_DVBPLAYER_DIS_MODE_FULL=0,表示全屏;E_SME_DVBPLAYER_DIS_MODE_FITIN=1,表示原始比例全屏显示,左右/上下留黑边;E_SME_DVBPLAYER_DIS_MODE_FITOUT=2,表示原始比例全屏显示,左右/上下输出到屏幕外;E_SME_DVBPLAYER_DIS_MODE_FITCENTER=3,表示原始比例显示在屏幕中间,左右/上下黑边.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
30setDisplayRatio接口原型:status_tsetDisplayRatio(inteRatio);功能:设置播放时视频的宽高比率.
参数:eRatio--int类型,表示显示窗口宽高比,取值如下:DISPLAY_RATIO_4TO3=0,表示宽高为4比3;DISPLAY_RATIO_16TO9=1,表示宽高为16比9;DISPLAY_RATIO_AUTO=6,表示宽高为自动选择.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
31setMetadataFilter接口原型:status_tsetMetadataFilter(constParcel&filter);功能:设置媒体元数据过滤器.
参数:filter--Parcel容器,表示过滤器对象.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
32getMetadata接口原型:status_tgetMetadata(boolupdate_only,boolapply_filter,Parcel*metadata);功能:获取媒体元数据.
参数:update_only--boolean类型,表示是否返回全部的MetaData对象,ture表示全部,false表示只返回最后一次更新的MetaData数据;apply--boolean类型,表示是否使用过滤器,false表示不使用,true表示使用,此时会根据之前调用setMetadataFilter接口所使用的过滤条件过滤;metadata--Parcel对象,表示获取到的媒体元数据,当出错时返回NULL;当未获取到有效MetaData时,返回空的MetaData对象.
返回:status_t,正常则返回0,否则返回错误码.
C.
2.
6.
33setVideoDisplay接口原型:status_tsetVideoDisplay(intflag);功能:设置视频输出.
参数:flag--int类型,表示视频显示是关闭、还是打开,取值如下:TVOS_VIDEO_DISPLAY_CLOSE=0,表示关闭;TVOS_VIDEO_DISPLAY_OPEN=1,表示打开.
返回:status_t,正常则返回0,否则返回错误码.
GY/T303.
5—201880C.
2.
6.
34getVideoDisplay接口原型:status_tgetVideoDisplay(int*flag);功能:获取视频输出状态.
参数:flag--int指针类型,输出参数,表示视频显示是关闭、还是打开,取值如下:TVOS_VIDEO_DISPLAY_CLOSE=0,表示关闭;TVOS_VIDEO_DISPLAY_OPEN=1,表示打开.
返回:status_t,获取成功返回0,否则返回错误码.
GY/T303.
5—201881附录D(规范性附录)HTML5引擎组件D.
1概述本附录定义了HTML5引擎组件对外提供的接口,包括HTML5功能模块对外接口,见表D.
1.
HTML5页面解析及显示应符合W3CHTML5.
2、W3CCSS2.
1及W3CDOM2.
1.
表D.
1HTML5引擎组件功能模块模块说明HTML5功能模块定义了HTML5页面控制相关功能接口.
D.
2HTML5功能模块D.
2.
1概述本模块定义了HTML5页面控制相关功能接口,见表D.
2.
表D.
2HTML5功能模块接口接口说明browser_main启动浏览器服务.
page_open打开一个新的页面.
page_load加载网址.
page_reload刷新当前页面.
page_stop停止加载当前页面.
page_backForward对当前页面进行前进后退操作.
page_close关闭当前页面.
page_setPageCreateCallback设置页面创建完成回调函数.
page_setStartLoadCallback设置页面开始加载回调函数.
page_setFinishLoadCallback设置页面结束加载回调函数.
page_setFailLoadCallback设置页面加载失败回调函数.
D.
2.
2常量定义D.
2.
2.
1打开页面返回错误码原型:#defineHWB_OK0描述:打开页面正常.
原型:#defineHWB_ERROR_PAGE_EXIST1描述:打开页面错误,页面已存在.
原型:#defineHWB_ERROR_PAGE_NOT_EXIST2描述:打开页面错误,页面不存在.
GY/T303.
5—201882原型:#defineHWB_ERROR_PAGE_NAME_INVALIDATE3描述:打开页面错误,页面名称无效.
原型:#defineHWB_ERROR_PAGENUM_EXCEED_MAX_LIMIT4描述:打开页面错误,页面个数超过最大个数.
原型:#defineHWB_ERROR_EXCEED_RECT5描述:打开页面错误,页面区域无效.
D.
2.
2.
2打开页面其它常量原型:#defineHWB_PAGE_NAME_SIZE100描述:页面名称最大字符串长度.
原型:#defineHWB_PAGE_MAX_NUM8描述:容许打开页面最大数.
原型:#defineHWB_DEFAULT_PAGE_NAME"DefaultPage"描述:默认页面名称.
原型:#defineHWB_DEFAULT_URL"about:blank"描述:默认页面Url.
D.
2.
3事件类型无.
D.
2.
4数据结构无.
D.
2.
5回调函数定义D.
2.
5.
1Notify_pageCreate回调原型:typedefint(*Notify_pageCreate)(constchar*pageName,intpageStatus);功能:页面创建完成的回调函数.
参数:pageName—新创建页面的页面名称;pageStatus--新创建页面的页面状态.
返回:int,-1表示失败,其他表示成功.
D.
2.
5.
2Notify_startLoad回调原型:typedefint(*Notify_startLoad)(constchar*pageName,constchar*url);功能:页面开始加载的回调函数.
参数:pageName—对应页面的页面名称;url—对应页面开始加载的网址.
返回:int,-1表示失败,其他表示成功.
D.
2.
5.
3Notify_finishLoad回调原型:typedefint(*Notify_finishLoad)(constchar*pageName,constchar*url);功能:页面完成加载的回调函数.
参数:pageName—对应页面的页面名称;GY/T303.
5—201883url—对应页面完成加载的网址.
返回:int,-1表示失败,其他表示成功.
D.
2.
5.
4Notify_failLoad回调原型:typedefint(*Notify_failLoad)(constchar*pageName,constchar*url,interrorCode,constchar*description);功能:页面加载失败的回调函数.
参数:pageName—对应页面的页面名称;url—对应页面加载失败的网址.
errorCode—对应页面加载失败的错误码.
description—对应页面加载失败的简易描述.
返回:int,-1表示失败,其他表示成功.
D.
2.
6接口定义D.
2.
6.
1browser_main接口原型:intbrowser_main(intargc,constchar**argv);功能:启动浏览器服务.
参数:argc—参数个数;argv—启动参数字符串数组首地址,启动参数取值见表D.
3.
表D.
3Browser_main启动参数参数名说明single-process单进程模式启动disable-gpu禁止使用GPUenable-spatial-navigation允许使用平面焦点导航,用方向键可以切换a标签的焦点位置allow-file-access-from-files允许file://协议方式访问页面ui-disable-threaded-compositing禁止用户交互线程合成no-zygote不需要孵化进程no-sandbox停用沙箱disable-web-security不遵守同源策略disable-accelerated-video停用GPU加速视频disable-webaudio禁止使用Web音频APIdisable-plugins禁用插件ozone-haisi-init-paramOzone平台启动时设置的参数disable-setuid-sandbox禁止使用setuid沙箱ozone-platform配置0zone平台的名字,如:directfbenable-logging使用日志log-level设置日志打印级别,INFO=0,WARNING=1,LOG_ERROR=2,LOG_FATAL=3blink-platform-log-channels设置平台日志通道,例如:MediaGY/T303.
5—201884表D.
3(续)参数名说明allow-sandbox-debugging允许调试沙箱crash-test崩溃测试debug-plugin-loading转储额外的日志记录插件加载到日志文件disable-accelerated-2d-canvas禁用GPU加速的2D画布disable-application-cache禁用应用程序缓存disable-databases禁用HTML5数据库disable-webgl禁用WebGLdisable-file-system禁用文件系统APIdisable-local-storage禁用本地存储disable-logging禁用日志disable-media-source禁用媒体源API(例如MediaSource对象)disable-renderer-accessibility关闭渲染访问disable-session-storage禁用会话存储disable-shared-workers禁用共享工具disable-svg1dom禁用SVG1.
1DOMdisable-xslt禁用XSLTenable-encrypted-media使用加密媒体扩展v8-cache-options设置v8缓存选项,如off,preparsedata,或者codeenable-tracing在浏览器测试的执行过程中启用跟踪enable-tracing-output写入测试跟踪的输出文件的文件名enable-v8-script-streaming使流脚本V8同时加载extra-plugin-dir从指定的目录加载NPAPI插件返回:int,0表示成功,其他表示失败.
D.
2.
6.
2page_open接口原型:intpage_open(constchar*pageName,constchar*url,intx,inty,intwidth,intheight);功能:打开一个新的页面.
参数:pageName—新页面的名称;url—新页面的地址.
x—新页面的横坐标,以像素为单位.
y—新页面的纵坐标,以像素为单位.
width—新页面的宽度,以像素为单位.
height—新页面的高度,以像素为单位.
返回:int,0表示成功,其他表示失败.
D.
2.
6.
3page_load接口原型:intpage_load(constchar*pageName,constchar*url);GY/T303.
5—201885功能:加载网址.
参数:pageName—页面的名称;url—要加载的地址.
返回:int,0表示成功,其他表示失败.
D.
2.
6.
4page_reload接口原型:intpage_reload(constchar*pageName);功能:刷新当前页面.
参数:pageName—页面的名称;返回:int,0表示成功,其他表示失败.
D.
2.
6.
5page_stop接口原型:intpage_stop(constchar*pageName);功能:停止加载当前页面.
参数:pageName—页面的名称;返回:int,0表示成功,其他表示失败.
D.
2.
6.
6page_backForward接口原型:intpage_backForward(constchar*pageName,intoffset);功能:对当前页面进行前进后退操作.
参数:pageName—页面的名称;offset—负数表示后退,正数表示前进返回:int,0表示成功,其他表示失败.
D.
2.
6.
7page_close接口原型:intpage_close(constchar*pageName);功能:关闭当前页面.
参数:pageName—页面的名称;返回:int,0表示成功,其他表示失败.
D.
2.
6.
8page_setPageCreateCallback接口原型:intpage_setPageCreateCallback(Notify_PageCreatefunc);功能:设置页面创建完成回调函数.
参数:func—对应的回调函数;返回:int,0表示成功,其他表示失败.
D.
2.
6.
9page_setStartLoadCallback接口原型:intpage_setStartLoadCallback(Notify_startLoadfunc);功能:设置页面开始加载回调函数.
参数:func—对应的回调函数;返回:int,0表示成功,其他表示失败.
GY/T303.
5—201886D.
2.
6.
10page_setFinishLoadCallback接口原型:intpage_setFinishLoadCallback(Notify_finishLoadfunc);功能:设置页面结束加载回调函数.
参数:func—对应的回调函数;返回:int,0表示成功,其他表示失败.
D.
2.
6.
11page_setFailLoadCallback接口原型:intpage_setFailLoadCallback(Notify_failLoadfunc);功能:设置页面加载失败回调函数.
参数:func—对应的回调函数;返回:int,0表示成功,其他表示失败.
GY/T303.
5—201887附录E(规范性附录)DRM组件E.
1概述本附录定义了DRM组件对外提供的接口,包括DRM功能模块对外接口,见表E.
1.
表E.
1DRM组件功能模块模块说明DRM功能模块定义了DRM相关功能接口.
E.
2DRM功能模块E.
2.
1概述本模块定义了DRM相关功能接口,见表E.
2.
表E.
2DRM功能模块接口接口说明CHDRMAPI_RegisterApp注册.
CHDRMAPI_RegisterApp注册拓展,可以自定义私有的与TApp通信的查询许可证和解密命令ID.
CHDRMAPI_UnRegisterApp注销.
CHDRMAPI_SendCommandToTEE发送命令到TEE.
CHDRMAPI_SendMessageToPlayer通知播放器消息.
CHDRMAL_CreateCryptoSession创建解密会话.
CHDRMAL_DestroyCryptoSession销毁解密会话.
CHDRMAL_UpdateCryptoSession更新DRM信息.
CHDRMAL_CheckRights查询许可证信息.
CHDRMAL_Decrypt内容解密.
CHDRMAPI_SetLicenseReq_Callback注册许可证监听函数.
CHDRMAPI_SetDecryptReq_Callback注册解密监听函数.
CHDRMAPI_SetMessage_Callback注册消息监听函数.
CHDRMAL_SetPlayerEventListenser注册播放器时间监听函数.
E.
2.
2常量定义E.
2.
2.
1处理成果原型:#defineCHDRM_NO_ERROR0描述:处理成功.
E.
2.
3事件类型GY/T303.
5—201888无.
E.
2.
4数据结构E.
2.
4.
1DRM解密类型原型:typedefenum{DECRYPT_LICENSEREQ_APP_INVOKE=0x00,DECRYPT_LICENSEREQ_MANAGER_INVOKE=0x01,DECRYPT_APP_LICENSEREQ_MANAGER_INVOKE=0x02,DECRYPT_MANAGER_LICENSEREQ_APP_INVOKE=0x03,}DRM_DECRYPT_FLAG_E;描述:解密类型定义.
成员:DECRYPT_LICENSEREQ_APP_INVOKE:解密数据且查询许可证使用回调函数通知DRMAPP调用;DECRYPT_LICENSEREQ_MANAGER_INVOKE:解密数据且查询许可证DRMManager直接sendDatatoTee;DECRYPT_APP_LICENSEREQ_MANAGER_INVOKE:解密数据使用回调函数通知DRMAPP调用,查询许可证DRMManager直接sendDatatoTee;DECRYPT_MANAGER_LICENSEREQ_APP_INVOKE:解密数据DRMManager直接sendDatatoTee,查询许可证使用回调函数通知DRMAPP调用.
E.
2.
4.
2TEE的返回数据结构原型:typedefstructChinaDrm_TeeRetVal_t{unsignedchar*data;unsignedlongdataLen;unsignedintoriginCode;unsignedintreturnCode;}ChinaDrm_TeeRetVal;描述:TEE的返回参数定义.
成员:data:返回数据;dataLen:返回数据长度;originCode:原始码;returnCode:返回码.
E.
2.
4.
3DRM节目描述数据结构原型:typedefstructChinaDrm_Info_t{unsignedchar*drm_id;unsignedchar*keydata;unsignedintkeydata_len;}ChinaDrm_Info;描述:ChinaDRM信息结构定义.
成员:drm_id:DRMAPP唯一标识;GY/T303.
5—201889keydata:m3u8数据;keydata_len:m3u8数据长度.
E.
2.
4.
4DRM节目解密数据结构原型:typedefstructCrypto_Info_t{unsignedchar*segmentkeydata;unsignedintSegmentkeydata_len;}Crypto_Info;描述:解密信息结构定义.
成员:segmentkeydata:Segment数据;Segmentkeydata_len:Segment数据长度.
E.
2.
5回调函数定义E.
2.
5.
1DRM_LicenseReq_Callback回调原型:typedefint(*DRM_LicenseReq_Callback)(unsignedchar*data,unsignedintdata_len);功能:设置获取许可证的回调函数.
参数:data--许可证内容数据指针;data_len--许可证内容数据长度.
返回:int,0表示成功,其他表示失败.
E.
2.
5.
2DRM_DecryptReq_Callback回调原型:typedefint(*DRM_DecryptReq_Callback)(longintenc_phyaddr,unsignedintenc_data_len,longintdec_phyaddr,unsignedchar*extension,unsignedintextension_len);功能:设置数据解密的回调函数.
参数:enc_phyaddr—加密数据物理地址;enc_data_len--加密数据长度;dec_phyaddr—解密数据物理地址;extension—扩展内容指针;extension_len—扩展内容长度.
返回:int,0表示成功,其他表示失败.
E.
2.
5.
3DRM_Message_Callback回调原型:typedefint(*DRM_Message_Callback)(inttype,void*message,intlen);功能:设置消息通知的回调函数.
参数:type—消息类型;message--消息内容指针;len—消息内容长度.
返回:int,0表示成功,其他表示失败.
E.
2.
5.
4ChinaDrmMessageEvent回调GY/T303.
5—201890原型:typedefint(*ChinaDrmMessageEvent)(inttype,void*message,intlen);功能:设置播放器处理DRM事件的事件监听器.
参数:type—消息类型;message--消息内容指针;len—消息内容长度.
返回:int,0表示成功,其他表示失败.
E.
2.
6接口定义E.
2.
6.
1CHDRMAPI_RegisterApp接口原型:intCHDRMAPI_RegisterApp(unsignedchar*drm_id,unsignedchar*uuid,unsignedintuuidLen,intregister_commandid,constunsignedchar*register_pridata,DRM_DECRYPT_FLAG_Eenflag);功能:DRMAPP注册.
参数:drm_id--DRMAPP唯一标识;uuid--DRMAPP对应TApp的唯一标识;uuidLen--uuid的长度;register_commandid--与TApp通信的注册commandid;register_pridata--与TApp通信的注册携带的私有注册数据,用于TApp验证DRMAPP合法性;enflag--解密调用方式.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
2CHDRMAPI_RegisterApp接口原型:intCHDRMAPI_RegisterApp(unsignedchar*drm_id,unsignedchar*uuid,unsignedintuuidLen,intregister_commandid,constunsignedchar*register_pridata,intenflag,intlicensereq_commandid,intdecrypt_commandid);功能:DRMAPP注册扩展,可以自己私有定义licensereq、decrypt设置TApp的命令ID.
参数:drm_id--DRMAPP唯一标识;uuid--DRMAPP对应TApp的唯一标识;uuidLen--uuid的长度;register_commandid--与TApp通信的注册commandid;register_pridata--与TApp通信的注册携带的私有注册数据,用于TApp验证DRMAPP合法性;enflag--解密调用方式;licensereq_commandid--查询许可证对应的commandid;decrypt_commandid--解密数据对应的commandid.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
3CHDRMAPI_UnRegisterApp接口原型:intCHDRMAPI_UnRegisterApp(void);功能:DRMAPP注销.
参数:无.
返回:int,0表示成功,其他表示失败.
GY/T303.
5—201891E.
2.
6.
4CHDRMAPI_SendCommandToTEE接口原型:intCHDRMAPI_SendCommandToTEE(unsignedintcommandId,unsignedchar*inputData,unsignedintinputDataLen,ChinaDrm_TeeRetVal*outputData);功能:发送命令到TEE.
参数:commandId--命令ID;inputData--发送的数据;inputDataLen--发送数据的长度;outputData--返回的数据信息.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
5CHDRMAPI_SendMessageToPlayer接口原型:intCHDRMAPI_SendMessageToPlayer(inttype,constchar*message,intmessage_len);功能:发送消息到播放器.
参数:type--消息类型;message--消息;message_len--消息长度.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
6CHDRMAL_CreateCryptoSession接口原型:intCHDRMAL_CreateCryptoSession(ChinaDrmCrypto_Handle*crypto_handle,ChinaDrm_Info*drminfo);功能:创建解密句柄.
参数:crypto_handle--解密句柄;drminfo--drmInfo信息.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
7CHDRMAL_DestroyCryptoSession接口原型:intCHDRMAL_DestroyCryptoSession(ChinaDrmCrypto_Handlecrypto_handle);功能:销毁解密句柄.
参数:crypto_handle--解密句柄.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
8CHDRMAL_UpdateCryptoSession接口原型:intCHDRMAL_UpdateCryptoSession(ChinaDrmCrypto_Handlecrypto_handle,ChinaDrm_Info*drminfo);功能:更新DRM信息.
参数:crypto_handle--解密句柄;drminfo--drmInfo信息.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
9CHDRMAL_CheckRights接口GY/T303.
5—201892原型:intCHDRMAL_CheckRights(ChinaDrmCrypto_Handlecrypto_handle,Crypto_Info*cryptoinfo);功能:查询内容是否有授权.
参数:crypto_handle--解密句柄;cryptoinfo--cryptoInfo信息.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
10CHDRMAL_Decrypt接口原型:intCHDRMAL_Decrypt(ChinaDrmCrypto_Handlecrypto_handle,Crypto_Info*cryptoinfo,unsignedchar*encbuf,unsignedintencbuf_len,unsignedchar*decbuf,unsignedintdecbuf_len,unsignedchar*iv,unsignedintiv_len,Modemode,ConstSubSample*subSamples,intnumSubSamples);功能:解密数据.
参数:crypto_handle--解密句柄;cryptoinfo--解密信息;encbuf--加密的数据;encbuf_len--加密的数据长度;decbuf--解密后的数据存放地址;ecbuf_len--解密后的数据长度;iv--解密IV;iv_len--解密IV长度;mode--解密算法标示;subSamples--加密信息描述;numSubSamples加密单元数量.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
11CHDRMAPI_SetLicenseReq_Callback接口原型:intCHDRMAPI_SetLicenseReq_Callback(DRM_LicenseReq_Callbackcallback);功能:设置获取许可证的回调函数.
参数:callback--获取许可证的回调函数.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
12CHDRMAPI_SetDecryptReq_Callback接口原型:intCHDRMAPI_SetDecryptReq_Callback(DRM_DecryptReq_Callbackcallback);功能:设置数据解密的回调函数.
参数:callback--数据解密的回调函数.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
13CHDRMAPI_SetMessage_Callback接口原型:intCHDRMAPI_SetMessage_Callback(DRM_Message_Callbackcallback)功能:设置消息通知的回调函数.
GY/T303.
5—201893参数:callback--消息通知的回调函数.
返回:int,0表示成功,其他表示失败.
E.
2.
6.
14CHDRMAL_SetPlayerEventListenser接口原型:intCHDRMAL_SetPlayerEventListenser(ChinaDrmMessageEventcallback);功能:设置播放器处理DRM事件的事件监听器.
参数:callback--事件监听回调函数.
返回:int,0表示成功,其他表示失败.
GY/T303.
5—201894附录F(规范性附录)DCAS组件F.
1概述本附录定义了DCAS组件对外提供的接口,包括CA应用功能模块和解扰操作功能模块对外接口,见表F.
1.
表F.
1DCAS组件功能模块模块说明CA应用功能模块定义了支撑DCAS应用的功能接口.
解扰操作功能模块定义了解扰操作相关功能接口.
F.
2CA应用功能模块F.
2.
1概述本模块定义了支撑DCAS应用的功能接口,见表F.
2.
表F.
2CA应用功能模块接口接口说明DCASAL_registerCASModule注册DCAS回调函数.
DCASAL_removeCASModule删除DCAS模块的注册.
DCASAL_enableDescramblingRequests启动接收解扰请求.
DCASAL_disableDescramblingRequests停止接收解扰请求.
DCASAL_startEcmLoading启动接收ECM.
DCASAL_stopEcmLoading停止接收ECM.
DCASAL_startInbandEmmLoading启动接收带内EMM.
DCASAL_stopInbandEmmLoading停止接收带内EMM.
DCASAL_sendCommandToTEE发送命令到TEE中.
DCASAL_getChipPublicId获取ChipId.
DCASAL_sendDescramblingEvent发送解扰状态.
DCASAL_setData存储数据接口.
DCASAL_getDSD获得DSD句柄.
DCASAL_registerDSDListener注册DSDListener.
DCASAL_removeDSDListener删除DSDListener.
DCASAL_getData读取数据接口.
DCASAL_setCAInfo设置接口.
DCASAL_getCAInfo查询接口.
F.
2.
2常量定义GY/T303.
5—201895F.
2.
2.
1会话参数原型:#defineDCAS_CASDESCRIPTOR_PRIVATEDATA_MAX_LEN32描述:相关私有描述符最大的长度.
原型:#defineDCAS_CASSESSION_STREAM_MAX_LEN8描述:会话的音视频节目最大个数.
原型:#defineDCAS_CASSESSION_STREAM_PATH_MAX_LEN8描述:会话的安全视频路径最大个数.
F.
2.
2.
2触发ECM事件的数据长度原型:#defineDCAS_CASEMMEVENT_DATA_MAX_LEN204描述:ECM数据最大长度.
F.
2.
2.
3触发EMM事件的数据长度原型:#defineDCAS_CASECMEVENT_DATA_MAX_LEN204描述:ECM数据最大长度.
F.
2.
2.
4过滤器参数的数据长度原型:#defineDCAS_FILTERMASK_VALUE_MAX_LEN32描述:过滤器参数的最大长度.
F.
2.
2.
5返回芯片ID参数的数据长度原型:#defineDCAS_CHIPID_VALUE_MAX_LEN32描述:芯片ID参数的最大长度.
F.
2.
3事件类型无.
F.
2.
4数据结构F.
2.
4.
1会话数据结构原型:typedefstructDCAS_CASSession{DCAS_CAData_tcasDescriptor;unsignedintchannelNumber;unsignedintnetworkID;unsignedintoprationType;unsignedintprogramNumber;unsignedintserviceIdentifier;unsignedintsessionID;unsignedintstreamPath[DCAS_CASSESSION_STREAM_PATH_MAX_LEN];unsignedshortstreamPIDs[DCAS_CASSESSION_STREAM_MAX_LEN];unsignedshortstreamTypes[DCAS_CASSESSION_STREAM_MAX_LEN];unsignedinttransmitterScramblingMode;GY/T303.
5—201896unsignedinttransportStreamID;unsignedinttunerId;}DCAS_CASSession_t;描述:CAS的Session参数定义.
成员:casDescriptor:解复用器ID;channelNumber:频道号;networkID:网路ID;oprationType:运营商类型;programNumber:节目号;serviceIdentifier:服务ID;sessionID:会话ID;streamPath:定长3个int类型的安全视频路径参数;streamPIDs:最大支持8个PID;streamTypes:最大支持8个音视频类型和上面一一对应;transmitter_scramblingmode:码流CW加扰模式;transportStreamID:传输流ID;tuner_id:Tuner的ID.
F.
2.
4.
2返回数据结构原型:typedefstructDCAS_TeeRetVal{unsignedchar*data;unsignedlongdataLen;unsignedintoriginCode;unsignedintreturnCode;}DCAS_TeeRetVal_t;描述:TEE的返回参数定义.
成员:data:TEE返回的数据缓冲区指针;dataLen:TEE返回数据长度;originCode:TEE返回的原始码;returnCode:TEE返回的错误码.
F.
2.
4.
3ECM事件数据结构原型:typedefstructDCAS_CASEcmEvent{unsignedcharecmdata[DCAS_CASECMEVENT_DATA_MAX_LEN];unsignedinterror;unsignedchartableID;unsignedcharisTimeout;}DCAS_CASEcmEvent_t;描述:CAS的ECM事件的参数定义.
成员:GY/T303.
5—201897ecmdata:ECM数据;error:错误码;tableID:表ID;isTimeout:ECM包是否超时.
F.
2.
4.
4EMM事件数据结构原型:typedefstructDCAS_CASEmmEvent{unsignedcharemmdata[DCAS_CASEMMEVENT_DATA_MAX_LEN];unsignedinterror;unsignedchartableID;unsignedcharisCatUpdateNotification;}DCAS_CASEmmEvent_t;描述:CAS的EMM事件的参数定义.
成员:emmdata:EMM数据;error:错误码;tableID:表ID;isTimeout:ECM包是否超时.
F.
2.
4.
5DTV过滤器数据结构原型:typedefstructDCAS_FilterParam{unsignedshorttableId;unsignedcharoffset;unsignedcharfilter[DCAS_FILTERMASK_VALUE_MAX_LEN];unsignedcharfilterLen;unsignedcharmask[DCAS_FILTERMASK_VALUE_MAX_LEN];unsignedcharmaskLen;}DCAS_FilterParam_t;描述:TS过滤器的参数定义.
成员:tableId:表ID;offset:过滤器偏移;filter:过滤器数据;filterLen:过滤器数据长度;mask:过滤器掩码;maskLen:过滤器掩码长度.
F.
2.
4.
6CAS状态数据结构原型:typedefstructDCAS_CASStatus{unsignedintcasToken;unsignedintstatusData[DCAS_CASSTATUS_STATUSDATA_MAX_LEN];unsignedcharisSuccess;GY/T303.
5—201898unsignedintmajorContentProblem;}DCAS_CASStatus_t;描述:CAS状态信息的参数定义.
成员:casToken:状态的token标记;statusData:状态数据;isSuccess:是否成功;majorContent:主要内容.
F.
2.
4.
7芯片ID数据结构原型:typedefstructDCAS_ChipId{unsignedcharvalue[DCAS_CHIPID_VALUE_MAX_LEN];unsignedcharlen;}DCAS_ChipId_t;描述:CAS的芯片ID的参数定义.
成员:value:长度见F.
2.
2.
5DCAS_CHIPID_VALUE_MAX_LEN;len:chipid的长度.
F.
2.
5回调函数定义F.
2.
5.
1DCAS_StartDescrambling回调原型:typedefint(*DCAS_StartDescrambling)(unsignedintcasId,DCAS_CASSession_t*casSession,DCAS_CASEcmEvent_t*firstEcmData);功能:开始解扰的回调函数.
参数:casId--CA的SystemID;casSession--解扰的session参数指针;firstEcmData--解扰的ECM事件函数指针.
返回:int,0表示成功,其他表示错误.
F.
2.
5.
2DCAS_UpdateDescrambling回调原型:typedefint(*DCAS_UpdateDescrambling)(unsignedintcasId,DCAS_CASSession_t*casSession);功能:更新解扰的回调函数.
参数:casId--CA的SystemID;casSession--解扰的session参数指针.
返回:int,0表示成功,其他表示错误.
F.
2.
5.
3DCAS_StopDescrambling回调原型:typedefint(*DCAS_StopDescrambling)(unsignedintcasId,DCAS_CASSession_t*casSession);功能:停止解扰的回调函数.
参数:casId--CA的SystemID;GY/T303.
5—201899casSession--解扰的session参数指针.
返回:int,0表示成功,其他表示错误.
F.
2.
5.
4DCAS_FireEcmEvent回调原型:typedefint(*DCAS_FireEcmEvent)(unsignedintcasId,DCAS_CASSession_t*casSession,DCAS_CASEcmEvent_t*ecmEvent);功能:触发ECM的回调函数.
参数:casId--CA的SystemID;casSession--解扰的session参数指针;ecmEvent--解扰的ECM事件函数指针.
返回:int,0表示成功,其他表示错误.
F.
2.
5.
5DCAS_FireInbandEmmEvent回调原型:typedefint(*DCAS_FireInbandEmmEvent)(unsignedintcasId,DCAS_CASSession_t*casSession,DCAS_CASEmmEvent_t*emmEvent);功能:触发EMM的回调函数.
参数:casId--CA的SystemID;casSession--解扰的session参数指针;emmEvent--解扰的EMM事件函数指针.
返回:int,0表示成功,其他表示错误.
F.
2.
5.
6DSDStatus回调原型:typedefvoid(*DSDStatus)(intstatus);功能:DSD状态变化回调函数.
参数:status—状态.
返回:无.
F.
2.
6接口定义F.
2.
6.
1DCASAL_registerCASModule接口原型:intDCASAL_registerCASModule(longvendorId,unsignedintcasId,intnetworkPriority,DCAS_StartDescramblingonStartDescrambling,DCAS_UpdateDescramblingonUpdateDescrambling,DCAS_StopDescramblingonStopDescrambling);功能:本方法是DCAS框架层调用DCAS组件的接口,注册DCAS回调函数.
参数:vendorId—分配给DCAS厂商的ID;casId—CASModule管理的caSystemId;networkPriority—用于在超过一个CASModule在CASModuleManager中注册时使用,运营商可根据每个CASModule决定是否该参数可选,当优先级策略启用时,为运营商需要为每个CASModule指定优先级.
终端软件平台应选择已注册,具有最高优先级,并且所管理的caSystemId在PMT中有相应CA描述符的CASModule发出解GY/T303.
5—2018100扰请求.
当优先级策略禁用时,DCAS应用应给该参数置零,CASModule的决定方法由终端软件平台自行实现;onStartDescrambling—开始解扰回调函数;onUpdateDescrambling—更新解扰回调函数;onStopDescrambling—停止解扰回调函数.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
2DCASAL_removeCASModule接口原型:intDCASAL_removeCASModule(longvendorId,unsignedintcasId);功能:本方法是DCAS框架层调用DCAS组件的接口,删除DCAS模块的注册.
参数:vendorId--分配给DCAS厂商的ID;casId--CASModule管理的caSystemId.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
3DCASAL_enableDescramblingRequests接口原型:intDCASAL_enableDescramblingRequests(unsignedintcasId,unsignedintfirstEcmTimeout,unsignedcharautoLoadFirstEcm,unsignedcharisFastMode,unsignedint*ecmTableIds,unsignedintecmTableIdsNum,DCAS_FireEcmEventonEcmEvent);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法启动接收解扰请求.
参数:casId--CASModule管理的caSystemId;firstEcmTimeout--单位毫秒,平台等待第一个ECM的最长时间,如果超时,CAS模块会通过onEcmEvent调用或者onSTartDescrambling调用收到CASEcmEvent;autoLoadFirstEcm--指定是否auto-load模式,auto-load模式是指平台在JSDCAS应用调用这个方法后,自动开始过滤第一个ECM,而不必等待JSDCAS应用调用startEcmLoading;isFastMode--快速模式(暂时仅是占位,并没有实际意义);ecmTableIds--如果JSDCAS应用希望指定多个ECM的tableId;ecmTableIdsNum--ecmTableIds的数量;onEcmEvent--回调函数,接收ECM数据.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
4DCASAL_disableDescramblingRequests接口原型:intDCASAL_disableDescramblingRequests(unsignedintcasId);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法停止接收解扰请求.
参数:casId--CASModule管理的caSystemId.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
5DCASAL_startEcmLoading接口原型:intDCASAL_startEcmLoading(unsignedintcasId,DCAS_CASSession_t*casSession,DCAS_FireEcmEventonEcmEvent);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法启动接收特定加扰节目的ECM,GY/T303.
5—2018101此方法在收到解扰请求后调用,在auto-load模式中,不需要调用此方法.
当有ECM数据时,通过onEcmEvent来接收数据.
参数:casId--CASModule管理的caSystemId;casSession--从CASModule.
onStartDescrambling获得的casSession;onEcmEvent--回调函数,接收ECM数据.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
6DCASAL_stopEcmLoading接口原型:intDCASAL_stopEcmLoading(unsignedintcasId,DCAS_CASSession_t*casSession);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法停止接收ECM.
参数:casId--CASModule管理的caSystemId;casSession--从onStartDescrambling回调函数获得的casSession.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
7DCASAL_startInbandEmmLoading接口原型:intDCASAL_startInbandEmmLoading(unsignedintcasId,DCAS_FilterParam_t*filterParm,intfilterParmNum,unsignedcharincludeCatNotifications,DCAS_FireInbandEmmEventonInbandEmmEvent);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法启动接收带内EMM,当有EMM时,通过onInbandEmmEvent来接收数据.
参数:casId--CASModule管理的caSystemId;filterParm--过滤器参数,见结构体;filterParmNum--过滤器个数;includeCatNotifications--指定是否接收CAT信息;onInbandEmmEvent--回调函数,接收EMM数据.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
8DCASAL_stopInbandEmmLoading接口原型:intDCASAL_stopInbandEmmLoading(unsignedintcasId);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法停止接收带内EMM.
参数:casId--CASModule管理的caSystemId.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
9DCASAL_sendCommandToTEE接口原型:intDCASAL_sendCommandToTEE(unsignedchar*uuid,unsignedintuuidLen,unsignedcharcommandId,unsignedchar*inputData,unsignedintinputDataLen,unsignedintapplicationContext,DCAS_TeeRetVal_t*outputData);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法把命令发送给TEE中.
参数:uuid--TA的UUID,每个DCAS厂家都有不同的ID;uuidLen--uuid的长度;commandId--TEE通信中的ID,ID值代表的含义由各DCAS厂家自己定义;inputData--发送给TA的数据;GY/T303.
5—2018102inputDataLen--数据长度;applicationContext--应用上下文,通常在初始化的时候由平台提供给应用;outputData--从TA返回的数据.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
10DCASAL_getChipPublicId接口原型:intDCASAL_getChipPublicId(DCAS_ChipId_t*chipid);功能:本方法是DCAS框架层调用DCAS组件的接口,获取ChipId.
参数:chipid--终端安全芯片唯一ID.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
11DCASAL_sendDescramblingEvent接口原型:intDCASAL_sendDescramblingEvent(unsignedintcasId,DCAS_CASSession_t*casSession,DCAS_CASStatus_t*casStatus);功能:本方法是DCAS框架层调用DCAS组件的接口,通过调用这个方法把DCAS解扰状态发送给平台显示.
参数:casId--CASModule管理的caSystemId;casSession--从onSTartDescrambling获得的CASSession;casStatus--CASStatus对象.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
12DCASAL_setData接口原型:intDCASAL_setData(intcasId,intcmdId,inttype,unsignedchar*data,intlength);功能:存储接口函数.
由DCAS组件实现,供EPG或浏览器浏览器中间件调用.
参数:casId--CAS系统标识ID;cmdId--命令的唯一标识,已有类型定义见收发数据命令类型;type--返回数据类型,已有类型定义见收发数据数据类型;data--返回数据;length--返回数据长度.
返回:int,0表示成功,其他表示错误.
F.
2.
6.
13DCASAL_getDSD接口原型:intDCASAL_getDSD();功能:本方法用于DCAS应用获得可分离设备(智能卡等)的句柄.
输入:无.
输出:int,表示DSD句柄.
F.
2.
6.
14DCASAL_registerDSDListener接口原型:voidDCASAL_registerDSDListener(unsignedintcasId,DSDStatus*dsdStatus);功能:本方法用于DCAS应用注册接收可分离安全设备发送数据的侦听器.
输入:casId--CASModule管理的caSystemId;dsdStatus--DSD状态变化回调函数.
GY/T303.
5—2018103返回:无.
F.
2.
6.
15DCASAL_removeDSDListener接口原型:voidDCASAL_removeDSDListener(unsignedintcasId);功能:本方法用于DCAS应用来删除已注册的侦听器.
输入:casId--CASModule管理的caSystemId.
返回:无.
F.
2.
6.
16DCASAL_getData接口原型:intDCASAL_getData(intcasId,intcmdId,int&type,unsignedchar*data,int&length);功能:查询数据接口函数.
由DCAS组件实现,供EPG或浏览器中间件调用.
参数:casId--CAS系统标识ID;cmdId--命令的唯一标识;type--p返回数据类型;data--返回数据;length--返回数据长度.
返回:int,0表示成功,-1表示失败.
F.
2.
6.
17DCASAL_getCAInfo接口原型:voidDCASAL_getCAInfo(intcasId,intcmdId,unsignedchar*paramdata,intparamlength,unsignedchar*data,int&length);功能:查询CA信息函数.
由DCAS组件实现,供主应用调用.
参数:casId--CAS系统标识ID;cmdId--命令的唯一标识;paramdata--设置的数据;paramlength--设置的数据长度;data--设置的数据;length--设置的数据长度.
返回:无.
F.
2.
6.
18DCASAL_setCAInfo接口原型:voidDCASAL_setCAInfo(intcasId,intcmdId,unsignedchar*data,intlength);功能:设置CA信息函数.
由DCAS组件实现,供主应用调用.
参数:casId--CAS系统标识ID;cmdId--命令的唯一标识;data--设置的数据;length:设置的数据长度.
返回:无.
F.
3解扰操作功能模块F.
3.
1概述GY/T303.
5—2018104本模块定义了解扰操作相关功能接口,见表F.
3.
表F.
3解扰操作功能模块接口接口说明DCASAL_startDescrambling开始解扰接口.
DCASAL_updateDescrambling更新解扰接口.
DCASAL_stopDescrambling停止解扰接口.
DCASAL_notifyFreqChange频点切换通知.
F.
3.
2常量定义F.
3.
2.
1KLAD中KEY原型:#definePARITY_EVEN0描述:偶密钥.
原型:#definePARITY_ODD1描述:奇密钥.
F.
3.
2.
2KLAD中算法原型:#defineSCHEME_3DES0描述:KLAD使用3DES算法.
原型:#defineSCHEME_AES1描述:KLAD使用AES算法.
F.
3.
2.
3通知解扰返回消息原型:#defineKLAD_CW1描述:返回的消息是KLAD的CW.
原型:#defineCLEAR_CW2描述:返回的消息是CLEAR的CW.
原型:#defineCA_READY3描述:DCAS组件准备好了.
原型:#defineCA_NOT_READY4描述:DCAS组件尚未准备好.
原型:#defineDCAS_SERVER_DEAD5描述:DCAS组件异常退出.
F.
3.
3事件类型无.
F.
3.
4数据结构F.
3.
4.
1PMT表CA信息原型:typedefstruct{intcas_id;GY/T303.
5—2018105intecm_pid;intemm_pid;unsignedcharprivate_data[32];}DCAS_CAData_t;描述:PMT表中CA信息定义.
成员:cas_id:CA的SystemID;ecm_pid:ECM的PID;emm_pid:EMM的PID;private_data:定长32个字节的私有描述符数据.
F.
3.
4.
2PMT表ES信息原型:typedefstruct{intes_pid;intes_type;DCAS_CAData_tca_data[8];}DCAS_ESData_t;描述:PMT表中ES信息定义.
成员:es_pid:码流中视频、音频或私有描述符的PID;es_type:码流中视频、音频的类型,私有描述符该字段添0x1fff;ca_data:定长8个的PMT表中CA信息定义.
F.
3.
4.
3通知解扰参数原型:typedefstruct{intdemux_id;intservice_id;inttuner_id;inttsid;intnid;intonid;intprogram_num;intchannel_num;inttransmitter_scramblingmode;unsignedintstreamPath[3];DCAS_ESData_tes_data[8];}DCAS_NotifyData_t;描述:通知解扰参数定义.
成员:demux_id:解复用器ID;service_id:节目服务ID;tuner_id:Tuner的ID;GY/T303.
5—2018106tsid:传输流ID;nid:网络ID;onid:原始网络ID;program_num:节目号;channel_num:频道号;transmitter_scramblingmode:码流CW加扰模式;streamPath:定长3个int类型的安全视频路径参数;es_data:定长8个的PMT表中ES信息定义.
F.
3.
4.
4通知解扰返回参数原型:typedefstruct{intmsg_type;intdemux_id;intvendor_id;intdata_pid;Keylevel_keys[3];intlevel_keys_len;CWKeycw_key;intscheme_id;}DCAS_NotifyRetData_t;描述:通知解扰返回参数定义.
成员:msg_type:见定义通知解扰返回消息;demux_id:解复用器ID;vendor_id:KLAD分配的厂商的ID;data_pid:音视频节目的PID;level_keys:长度3个的KLAD的层级密钥;level_keys_len:层级密钥的层数;cw_key:音视频需要CW;scheme_id:KLAD的加密算法.
F.
3.
4.
5设置KLAD的KEY参数原型:typedefstructKey{unsignedcharvalue[64];unsignedintlength;boolencrypted;}DCAS_Key_t;描述:设置KLAD的KEY参数定义.
成员:value:Key的数组;length:Key的长度;encrypted:Key是否加密.
GY/T303.
5—2018107F.
3.
4.
6CW参数原型:typedefstructCWKey{DCAS_Key_tkey;intparity;}DCAS_CWKey_t;描述:CW的参数定义.
成员:key:见设置KLAD的KEY参数定义;parity:奇偶属性.
F.
3.
4.
7频点切换通知参数原型:typedefstruct{inttuner_id;intservice_id;inttsid;intnid;intonid;}DCAS_TSData_t;描述:频点切换通知参数定义.
成员:tuner_id:Tuner的ID;service_id:服务ID;tsid:传输流ID;nid:网络ID;onid:原始网络ID.
F.
3.
5回调函数定义F.
3.
5.
1DCASAL_descramblingNotify回调原型:typedefvoid(*DCASAL_descramblingNotify)(void*,void*);功能:解扰开始、解扰更新和解扰停止的通知回调函数.
参数:void*--DCAS_NotifyRetData_t参数指针;void*--播放器函数指针.
返回:无.
F.
3.
6接口定义F.
3.
6.
1DCASAL_startDescrambling接口原型:voidDCASAL_startDescrambling(void*dcas_notify_data,DCASAL_descramblingNotifycb,void*cb_priv);功能:本方法从DVBPlayer调用DCAS组件的接口,启动节目解扰.
参数:dcas_notify_data--解扰节目需要的参数,见DCAS_NotifyData_t;GY/T303.
5—2018108cb--回调函数;cb_priv--回调函数参数,对象指针.
返回:无.
F.
3.
6.
2DCASAL_updateDescrambling接口原型:voidDCASAL_updateDescrambling(void*dcas_notify_data,DCASAL_descramblingNotifycb,void*cb_priv);功能:本方法从DVBPlayer调用DCAS组件的接口,更新节目解扰.
参数:dcas_notify_data--解扰节目需要的参数,见DCAS_NotifyData_t;cb--回调函数;cb_priv,回调函数参数,对象指针.
返回:无.
F.
3.
6.
3DCASAL_stopDescrambling接口原型:voidDCASAL_stopDescrambling(void*dcas_notify_data,DCASAL_descramblingNotifycb,void*cb_priv);功能:本方法从DVBPlayer调用DCAS组件的接口,停止节目解扰.
参数:dcas_notify_data--解扰节目需要的参数,见DCAS_NotifyData_t;cb--回调函数;cb_priv,回调函数参数,对象指针.
返回:无.
F.
3.
6.
4DCASAL_notifyFreqChange接口原型:voidDCASAL_notifyFreqChange(void*ts_data);功能:本方法从DVBPlayer调用DCAS组件的接口,频点切换通知.
参数:ts_data--解扰节目需要的参数,见DCAS_TSData_t.
返回:无.
GY/T303.
5—2018109附录G(规范性附录)人机交互组件G.
1概述本附录定义了人机交互组件对外提供的接口,包括键盘与鼠标消息处理和语音消息处理功能模块对外接口,见表G.
1.
表G.
1人机交互组件功能模块模块说明键盘与鼠标消息处理功能模块定义了键盘与鼠标消息处理功能接口.
语音消息处理功能模块定义了语音消息处理功能接口.
G.
2键盘与鼠标消息处理功能模块G.
2.
1概述本模块定义了键盘与鼠标消息处理功能接口,见表G.
2.
表G.
2键盘与鼠标消息处理功能模块接口接口说明getDeviceClasses获取设备类别.
getDeviceIdentifier获取设备描述信息.
getDeviceControllerNumber获取设备对应的控制号.
getConfiguration获取设备对应的配置信息.
getAbsoluteAxisInfo获取绝对轴信息.
hasRelativeAxis判断是否有相对轴.
hasInputProperty判断设备是否具有某属性.
mapKey将系统层的按键映射到应用层的定义.
mapAxis将系统层的原始轴信息映射到应用层的定义.
setExcludedDevices设置需要忽略的设备.
getEvents获取设备原始事件.
getScanCodeState获取指定设备的指定扫描码的状态.
getKeyCodeState获取指定设备的指定按键的状态.
getSwitchState获取指定开关的状态.
getAbsoluteAxisValue获取指定设备的指定轴的绝对值.
markSupportedKeyCodes标记支持的按键.
hasScanCode获取指定设备是否支持指定扫描码.
hasLed获取指定设备是否有指定LED.
setLedState设置指定设备的指定LED的状态.
GY/T303.
5—2018110表G.
2(续)接口说明setFrontPanelString设置前面板的显示字符.
getVirtualKeyDefinitions获取指定设备的虚拟按键定义.
getKeyCharacterMap获取指定设备的按键映射表.
setKeyboardLayoutOverlay设定指定设备的按键映射表.
vibrate设置指定设备的震动时间.
cancelVibrate取消指定设备的震动.
requestReopenDevices请求重新打开设备.
wake设备输入唤醒.
G.
2.
2常量定义无.
G.
2.
3事件类型无.
G.
2.
4数据结构G.
2.
4.
1输入设备类型原型:enum{INPUT_DEVICE_CLASS_KEYBOARD=0x00000001,INPUT_DEVICE_CLASS_ALPHAKEY=0x00000002,INPUT_DEVICE_CLASS_TOUCH=0x00000004,INPUT_DEVICE_CLASS_CURSOR=0x00000008,INPUT_DEVICE_CLASS_TOUCH_MT=0x00000010,INPUT_DEVICE_CLASS_DPAD=0x00000020,INPUT_DEVICE_CLASS_GAMEPAD=0x00000040,INPUT_DEVICE_CLASS_SWITCH=0x00000080,INPUT_DEVICE_CLASS_JOYSTICK=0x00000100,INPUT_DEVICE_CLASS_VIBRATOR=0x00000200,INPUT_DEVICE_CLASS_VIRTUAL=0x40000000,INPUT_DEVICE_CLASS_EXTERNAL=0x80000000,};描述:人机交互输入设备类型定义.
成员:INPUT_DEVICE_CLASS_KEYBOARD:键盘或按钮;INPUT_DEVICE_CLASS_ALPHAKEY:alpha-numeric键盘(不仅仅是拨号面板);INPUT_DEVICE_CLASS_TOUCH:触摸屏或触摸板(单点或多点触摸);INPUT_DEVICE_CLASS_CURSOR:轨迹球或鼠标;INPUT_DEVICE_CLASS_TOUCH_MT:多点触摸屏;INPUT_DEVICE_CLASS_DPAD:方向板(可能是支持DPAD按键的键盘);GY/T303.
5—2018111INPUT_DEVICE_CLASS_GAMEPAD:游戏板(可能是支持按钮的键盘);INPUT_DEVICE_CLASS_SWITCH:开关;INPUT_DEVICE_CLASS_JOYSTICK:操纵杆(可能是带操纵杆的游戏板);INPUT_DEVICE_CLASS_VIBRATOR:振动器;INPUT_DEVICE_CLASS_VIRTUAL:虚拟设备;INPUT_DEVICE_CLASS_EXTERNAL:外部设备.
G.
2.
4.
2原始事件结构原型:structRawEvent{nsecs_twhen;int32_tdeviceId;int32_ttype;int32_tcode;int32_tvalue;};描述:输入设备产生的底层事件.
成员:when:事件时间;deviceId:输入设备ID;type:事件类型;code:事件码;value:事件值.
G.
2.
4.
3事件状态类型原型:enum{AKEY_STATE_UNKNOWN=-1,AKEY_STATE_UP=0,AKEY_STATE_DOWN=1,AKEY_STATE_VIRTUAL=2};描述:事件(按键、开关等)的状态.
成员:AKEY_STATE_UNKNOWN:状态未知或按键等不支持;AKEY_STATE_UP:键抬起;AKEY_STATE_DOWN:键按下;AKEY_STATE_VIRTUAL:键按下(系统模拟的虚拟事件).
G.
2.
5回调函数定义无.
G.
2.
6接口定义G.
2.
6.
1getDeviceClasses接口GY/T303.
5—2018112原型:uint32_tgetDeviceClasses(int32_tdeviceId);功能:获取设备类别.
参数:deviceId--设备ID.
返回:uint32_t,设备类别,参见G.
2.
4.
1输入设备类型.
G.
2.
6.
2getDeviceIdentifier接口原型:InputDeviceIdentifiergetDeviceIdentifier(int32_tdeviceId);功能:获取设备描述信息.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备).
返回:InputDeviceIdentifier,设备描述信息.
G.
2.
6.
3getDeviceControllerNumber接口原型:int32_tgetDeviceControllerNumber(int32_tdeviceId);功能:获取设备对应的控制号.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备).
返回:int32_t,设备对应的控制号.
G.
2.
6.
4getConfiguration接口原型:voidgetConfiguration(int32_tdeviceId,PropertyMap*outConfiguration);功能:获取设备对应的配置信息.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);outConfiguration--输出参数,设备配置信息.
返回:无.
G.
2.
6.
5getAbsoluteAxisInfo接口原型:status_tgetAbsoluteAxisInfo(int32_tdeviceId,intaxis,RawAbsoluteAxisInfo*outAxisInfo);功能:获取绝对轴信息.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);axis--轴ID(0x0~0x3f);outAxisInfo--结构体,轴信息.
返回:status_t,轴信息获取状态,0表示成功,小于0表示失败.
G.
2.
6.
6hasRelativeAxis接口原型:boolhasRelativeAxis(int32_tdeviceId,intaxis);功能:判断是否有相对轴.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);axis--轴ID(0x0~0x3f).
返回:bool,有相对轴返回true;无相对轴返回false.
G.
2.
6.
7hasInputProperty接口原型:boolhasInputProperty(int32_tdeviceId,intproperty);GY/T303.
5—2018113功能:判断设备是否具有某属性.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);property--属性ID(0x0~0x1f).
返回:bool,有此属性返回true;无此属性返回false.
G.
2.
6.
8mapKey接口原型:status_tmapKey(int32_tdeviceId,int32_tscanCode,int32_tusageCode,int32_t*outKeycode,uint32_t*outFlags);功能:将系统层的按键映射到应用层的定义.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);scanCode--按键扫描码;usageCode--按键使用码;outKeycode--映射后的按键值;outFlags--映射后的按键标记.
返回:status_t,键值映射状态,0表示成功,小于0表示失败.
G.
2.
6.
9mapAxis接口原型:status_tmapAxis(int32_tdeviceId,int32_tscanCode,AxisInfo*outAxisInfo);功能:将系统层的原始轴信息映射到应用层的定义.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);scanCode--扫描码;outAxisInfo--映射后的轴信息.
返回:status_t,轴信息映射状态,0表示成功,小于0表示失败.
G.
2.
6.
10setExcludedDevices接口原型:voidsetExcludedDevices(constVector&devices);功能:设置需要忽略的设备.
参数:devices--需忽略的设备名称.
返回:无.
G.
2.
6.
11getEvents接口原型:size_tgetEvents(inttimeoutMillis,RawEvent*buffer,size_tbufferSize);功能:获取设备原始事件.
参数:timeoutMillis--超时时间;buffer--结构体指针,存储获取到的原始事件,参见原始事件结构;bufferSize--buffer的大小.
返回:size_t,获取到的事件数量.
G.
2.
6.
12getScanCodeState接口原型:int32_tgetScanCodeState(int32_tdeviceId,int32_tscanCode);功能:获取指定设备的指定扫描码的状态.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);GY/T303.
5—2018114scanCode--扫描码.
返回:int32_t,扫描码状态,参见事件状态类型.
G.
2.
6.
13getKeyCodeState接口原型:int32_tgetKeyCodeState(int32_tdeviceId,int32_tkeyCode);功能:获取指定设备的指定按键的状态.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);keyCode--键值.
返回:int32_t,获取到的按键状态,参见事件状态类型.
G.
2.
6.
14getSwitchState接口原型:int32_tgetSwitchState(int32_tdeviceId,int32_tsw);功能:获取指定开关的状态.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);sw--开关ID.
返回:int32_t,开关状态,参见事件状态类型.
G.
2.
6.
15getAbsoluteAxisValue接口原型:status_tgetAbsoluteAxisValue(int32_tdeviceId,int32_taxis,int32_t*outValue);功能:获取指定设备的指定轴的绝对值.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);axis--轴的ID(0x0~0x3f);outValue--输出参数,指定轴的值.
返回:status_t,获取状态,0表示成功,小于0表示失败.
G.
2.
6.
16markSupportedKeyCodes接口原型:boolmarkSupportedKeyCodes(int32_tdeviceId,size_tnumCodes,constint32_t*keyCodes,uint8_t*outFlags);功能:标记支持的按键.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);numCodes--码值的个数;keyCodes--码值信息;outFlags--码值的标记.
返回:bool,表示是否成功.
G.
2.
6.
17hasScanCode接口原型:boolhasScanCode(int32_tdeviceId,int32_tscanCode);功能:获取指定设备是否支持指定扫描码.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);scanCode--扫描码.
返回:bool,扫描码是否支持.
G.
2.
6.
18hasLed接口GY/T303.
5—2018115原型:boolhasLed(int32_tdeviceId,int32_tled);功能:获取指定设备是否有指定LED.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);led--LED的ID.
返回:bool,指定设备是否有LED.
G.
2.
6.
19setLedState接口原型:voidsetLedState(int32_tdeviceId,int32_tled,boolon);功能:设置指定设备的指定LED的状态.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);led--LED的ID;on--要设置的LED状态.
返回:无.
G.
2.
6.
20setFrontPanelString接口原型:voidsetFrontPanelString(int32_tdeviceId,String8content);功能:设置前面板的显示字符.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);content--要显示的字符.
返回:无.
G.
2.
6.
21getVirtualKeyDefinitions接口原型:voidgetVirtualKeyDefinitions(int32_tdeviceId,Vector&outVirtualKeys);功能:获取指定设备的虚拟按键定义.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);outVirtualKeys--输出参数,虚拟按键定义.
返回:无.
G.
2.
6.
22getKeyCharacterMap接口原型:spgetKeyCharacterMap(int32_tdeviceId);功能:获取指定设备的按键映射表.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备).
返回:sp,指定设备按键映射表.
G.
2.
6.
23setKeyboardLayoutOverlay接口原型:boolsetKeyboardLayoutOverlay(int32_tdeviceId,constsp&map);功能:设定指定设备的按键映射表.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);map--按键映射表.
返回:bool,设定映射表是否成功.
GY/T303.
5—2018116G.
2.
6.
24vibrate接口原型:voidvibrate(int32_tdeviceId,nsecs_tduration);功能:设置指定设备的震动时间.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备);duration--震动时间.
返回:无.
G.
2.
6.
25cancelVibrate接口原型:voidcancelVibrate(int32_tdeviceId);功能:取消指定设备的震动.
参数:deviceId--设备ID(-1:虚拟键盘,0:内建键盘,正数:其它设备).
返回:无.
G.
2.
6.
26requestReopenDevices接口原型:voidrequestReopenDevices();功能:请求重新打开设备.
参数:无.
返回:无.
G.
2.
6.
27wake接口原型:voidwake();功能:设备输入唤醒.
参数:无.
返回:无.
G.
3语音消息处理功能模块G.
3.
1概述本模块定义了语音消息处理的功能接口,见表G.
3.
表G.
3语音消息处理功能模块接口接口说明hci_vpInstance_create创建识别实例.
hci_vpRecognize_start启动语音识别输入.
hci_vpRecognize_stop停止语音识别输入.
hci_vpRecognize_cancel取消语音识别输入.
hci_vpRecognize_destroy销毁语音识别引擎实例.
G.
3.
2常量定义无.
GY/T303.
5—2018117G.
3.
3事件类型无.
G.
3.
4数据结构G.
3.
4.
1语音识别引擎厂家原型:enumHCI_VP_VENDOR_e{HCI_VP_BAIDU=0x00,HCI_VP_IFLYTEK=0x01,HCI_VP_AISPEECH=0x02,HCI_VP_UNDEFINED=0x03};描述:标识不同的语音识别引擎厂家.
成员:HCI_VP_BAIDU:百度引擎;HCI_VP_IFLYTEK:科大讯飞引擎;HCI_VP_AISPEECH:思必驰引擎;HCI_VP_UNDEFINED:未定义.
G.
3.
4.
2语音识别结果原型:enumHCI_VP_RUSULT_e{HCI_VP_OK=0,HCI_VP_TOO_SHORT=-1,HCI_VP_NOT_MANDARIN=-2,HCI_VP_TOO_FAST=-3,HCI_VP_OTHER=-4};描述:语音识别结果返回码定义.
成员:HCI_VP_OK:识别正常;HCI_VP_TOO_SHORT:音频太短;HCI_VP_NOT_MANDARIN:非普通话;HCI_VP_TOO_FAST:语速太快;HCI_VP_OTHER:其它错误.
G.
3.
5回调函数定义G.
3.
5.
1hci_vp_callback回调原型:typedefvoid(*hci_vp_callback)(inthandle,HCI_VP_RUSULT_ecode,char*results);功能:语音识别结果输出,供语音引擎回调.
参数:handle--语音识别实例句柄;code--返回码,见语音识别结果.
GY/T303.
5—2018118results--识别结果.
返回:无.
G.
3.
5.
2hci_vpData_inject回调原型:typedefvoid(*hci_vpData_inject)(intlen,char*data)功能:语音数据注入,供语音引擎回调.
参数:len--音频数据长度;data--音频数据.
返回:无.
G.
3.
6接口定义G.
3.
6.
1hci_vpInstance_create接口原型:inthci_vpInstance_create(HCI_VP_VENDOR_evendor,hci_vp_callbackfunc);功能:创建识别实例.
参数:vendor--语音引擎厂商,见语音识别引擎厂家.
func--语音识别结果回调.
返回:int,实例句柄,-1表示失败.
G.
3.
6.
2hci_vpRecognize_start接口原型:inthci_vpRecognize_start(inthandle,hci_vpData_injectfunc);功能:启动语音识别输入.
接口内部开始读取音频数据.
参数:handle--语音识别实例句柄;func--音频数据读取函数入口.
返回:int,0表示成功,其它表示失败.
G.
3.
6.
3hci_vpRecognize_stop接口原型:inthci_vpRecognize_stop(inthandle);功能:停止语音识别输入.
接口内部停止读取音频数据,并进行语音识别.
参数:handle--语音识别实例句柄.
返回:int,0表示成功,其它表示失败.
G.
3.
6.
4hci_vpRecognize_cancel接口原型:voidhci_vpRecognize_cancel(inthandle);功能:取消语音识别输入.
参数:handle--语音识别实例句柄.
返回:无.
G.
3.
6.
5hci_vpRecognize_destroy接口原型:inthci_vpRecognize_destroy(inthandle);功能:销毁语音识别引擎实例.
参数:handle--语音识别引擎实例.
返回:int,0表示成功,其它表示失败.
GY/T303.
5—2018119附录H(规范性附录)多屏互动组件H.
1概述本附录定义了多屏互动组件对外提供的接口,包括设备发现及连接功能模块和跨屏UI操控功能模块对外接口,见表H.
1.
表H.
1多屏互动组件功能模块模块说明设备发现及连接功能模块定义了多屏互动组件设备发现功能模块的接口.
跨屏UI操控功能模块定义了多屏互动组件跨屏UI操控的接口.
H.
2设备发现及连接功能模块H.
2.
1概述本模块定义了多屏互动组件设备发现功能模块的接口,客户端模块能够发现并且连接处于相同局域网中的服务端模块,是多屏互动组件当中重要的组成模块,见表H.
2.
表H.
2设备发现及连接功能模块接口接口说明startMultiScreenClient启动发起端.
stopMultiScreenClient与接收端断开连接.
findSPs发现多屏互动组件服务.
connect初始化多屏互动组件服务,连接接收端.
setCallBack设置组件远程接口的回调.
H.
2.
2常量定义H.
2.
2.
1多屏互动组件错误码原型:enum{OK=0,NO_ERROR=0,UNKNOWN_ERROR=(-2147483647-1),NO_MEMORY=-ENOMEM,INVALID_OPERATION=-ENOSYS,BAD_VALUE=-EINVAL,BAD_TYPE=(UNKNOWN_ERROR+1),NAME_NOT_FOUND=-ENOENT,PERMISSION_DENIED=-EPERM,GY/T303.
5—2018120NO_INIT=-ENODEV,ALREADY_EXISTS=-EEXIST,DEAD_OBJECT=-EPIPE,FAILED_TRANSACTION=(UNKNOWN_ERROR+2),JPARKS_BROKE_IT=-EPIPE,#if!
defined(HAVE_MS_C_RUNTIME)BAD_INDEX=-EOVERFLOW,NOT_ENOUGH_DATA=-ENODATA,WOULD_BLOCK=-EWOULDBLOCK,TIMED_OUT=-ETIMEDOUT,UNKNOWN_TRANSACTION=-EBADMSG,#elseBAD_INDEX=-E2BIG,NOT_ENOUGH_DATA=(UNKNOWN_ERROR+3),WOULD_BLOCK=(UNKNOWN_ERROR+4),TIMED_OUT=(UNKNOWN_ERROR+5),UNKNOWN_TRANSACTION=(UNKNOWN_ERROR+6),#endifFDS_NOT_ALLOWED=(UNKNOWN_ERROR+7),};描述:错误码定义.
成员:OK:状态正常;NO_ERROR:无错误;UNKNOWN_ERROR:INT32_MIN值;NO_MEMORY:缺少内存;INVALID_OPERATION:无效操作;BAD_VALUE:错误值;BAD_TYPE:错误类型;NAME_NOT_FOUND:找不到命名;PERMISSION_DENIED:权限拒绝;NO_INIT:未初始化;ALREADY_EXISTS:已存在;DEAD_OBJECT:对象已销毁;FAILED_TRANSACTION:业务失败;JPARKS_BROKE_IT:通道已损坏;BAD_INDEX:错误索引;NOT_ENOUGH_DATA:缺少足够数据;WOULD_BLOCK:将产生阻塞;TIMED_OUT:超时;UNKNOWN_TRANSACTION:未知业务;FDS_NOT_ALLOWED:不允许的FDS.
GY/T303.
5—2018121H.
2.
2.
2远程接口索引枚举原型:enum{START_MULTISCREENSERVER=0x0,STOP_MULTISCREENSERVER,START_MULTISCREENCLIENT,STOP_MULTISCREENCLIENT,FIND_SPS,CONNECT,SET_CALLBACK,QUERY_INFO,EXEC_CMD,INPUT_KEYCODE,NOTIFY_ALL_REMOTE};描述:多屏互动组件远程接口索引.
成员:START_MULTISCREENSERVER:启动多屏互动组件服务端远程接口;STOP_MULTISCREENSERVER:关闭多屏服务服务端远程接口;START_MULTISCREENCLIENT:启动多屏互动组件客户端远程接口;STOP_MULTISCREENCLIENT:关闭多屏互动组件客户端远程接口;FIND_SPS:发现局域网内的多屏互动组件服务端远程接口;CONNECT:连接局域网内的多屏互动组件服务端远程接口;SET_CALLBACK:设置多屏互动组件回调远程接口;QUERY_INFO:请求多屏互动组件服务端信息的远程接口;EXEC_CMD:多屏互动组件客户端发送执行指令给到多屏互动服务端的远程接口;INPUT_KEYCODE:多屏互动组件客户端发送按键指令给到多屏互动服务端的远程接口;NOTIFY_ALL_REMOTE:多屏互动组件服务端发送通知给到多屏互动客户端的远程接口.
H.
2.
3事件类型无.
H.
2.
4数据结构无.
H.
2.
5回调函数定义H.
2.
5.
1onSpFounded回调原型:status_tonSpFounded(constchar*spName,constchar*spDeviceType,constchar*spServiceInfo,constchar*spVersion,constchar*ipaddress,intport,constchar*hostname);功能:远程接口回调,通知使用多屏组件的远端程序发现到了局域网内其他多屏互动组件服务的设备.
参数:spName--输出参数,局域网中的多屏互动组件设备服务名称;GY/T303.
5—2018122spDeviceType--输出参数,局域网中的多屏互动组件设备类型;spServiceInfo--输出参数,局域网中的多屏互动组件设备服务信息;spVersion--输出参数,局域网中的多屏互动组件设备服务版本;ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
5.
2onConnected回调原型:status_tonConnected(constchar*spName,constchar*spDeviceType,constchar*spServiceInfo,constchar*spVersion,constchar*ipaddress,intport,constchar*hostname);功能:远程接口回调,通知使用多屏组件的远端程序连接上了局域网内其他多屏互动组件服务的设备.
参数:spName--输出参数,局域网中的多屏互动组件设备服务名称;spDeviceType--输出参数,局域网中的多屏互动组件设备类型;spServiceInfo--输出参数,局域网中的多屏互动组件设备服务信息;spVersion--输出参数,局域网中的多屏互动组件设备服务版本;ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
5.
3onConnectRefused回调原型:status_tonConnectRefused(constchar*spName,constchar*spDeviceType,constchar*spServiceInfo,constchar*spVersion,constchar*ipaddress,intport,constchar*hostname);功能:远程接口回调,通知使用多屏组件的远端程序被拒绝连接上局域网内其他多屏互动组件服务的设备.
参数:spName--输出参数,局域网中的多屏互动组件设备服务名称;spDeviceType--输出参数,局域网中的多屏互动组件设备类型;spServiceInfo--输出参数,局域网中的多屏互动组件设备服务信息;spVersion--输出参数,局域网中的多屏互动组件设备服务版本;ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
5.
4onDisconnected回调原型:status_tonDisconnected(constchar*spName,constchar*spDeviceType,constchar*spServiceInfo,constchar*spVersion,constchar*ipaddress,intport,constchar*hostname);功能:远程接口回调,通知使用多屏组件的远端程序与局域网内其他多屏互动组件服务的设备断开连GY/T303.
5—2018123接.
参数:spName--输出参数,局域网中的多屏互动组件设备服务名称;spDeviceType--输出参数,局域网中的多屏互动组件设备类型;spServiceInfo--输出参数,局域网中的多屏互动组件设备服务信息;spVersion--输出参数,局域网中的多屏互动组件设备服务版本;ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port-输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
5.
5onServiceActived回调原型:status_tonServiceActived(constchar*ipaddress,intport,constchar*hostname);功能:远程接口回调,通知使用多屏组件的远端程序被局域网内其他多屏互动组件连接上了服务.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
5.
6onServiceDeactived回调原型:status_tonServiceDeactived(constchar*ipaddress,intport,constchar*hostname);功能:远程接口回调,通知使用多屏组件的远端程序被局域网内其他多屏互动组件断开了服务.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
6接口定义H.
2.
6.
1startMultiScreenClient接口原型:status_tstartMultiScreenClient(constchar*clientName);功能:启动发起端.
参数:clientName--输入参数,客户端模块的命名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
6.
2stopMultiScreenClient接口原型:status_tstopMultiScreenClient();功能:与接收端断开链接.
参数:无.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
6.
3findSPs接口原型:status_tfindSPs();GY/T303.
5—2018124功能:发现局域网中多屏互动组件服务.
参数:无.
返回:int,正常则返回NO_ERROR,否则返回错误码.
H.
2.
6.
4connect接口原型:status_tconnect(constchar*spName,constchar*spDeviceType,constchar*spServiceInfo,constchar*spVersion,constchar*ipaddress,intport,constchar*hostname);功能:初始化多屏互动组件提供的服务,连接接收端.
参数:spName--输入参数,局域网中的多屏互动组件设备服务名称;spDeviceType--输入参数,局域网中的多屏互动组件设备类型;spServiceInfo--输入参数,局域网中的多屏互动组件设备服务信息;spVersion--输入参数,局域网中的多屏互动组件设备服务版本;ipaddress--输入参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输入参数,局域网中的多屏互动组件设备主机名.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
2.
6.
5setCallBack接口原型:status_tsetCallBack(constsp&multiScreenCallback);功能:设置多屏互动组件远程接口的回调,使服务端对客户端功能的响应回调.
参数:multiScreenCallback--输入参数,客户端IMultiScreenCallBack远程回调接口.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3跨屏UI操控功能模块H.
3.
1概述本模块定义了多屏互动组件跨屏UI操控的接口,多屏互动组件客户端能够使用这些接口对局域网内的其他设备发送操控指令,见表H.
3.
表H.
3跨屏UI操控功能模块接口接口说明queryInfo向接收端发送的请求指令.
execCmd向接收端发送的执行指令请求.
inputKeyCode向接收端发送的按键事件指令请求.
notifyAllTarget向已连接的组件设备发送通知.
H.
3.
2常量定义无.
H.
3.
3事件类型无.
GY/T303.
5—2018125H.
3.
4数据结构无.
H.
3.
5回调函数定义H.
3.
5.
1onQueryInfo回调原型:status_tonQueryInfo(constchar*ipaddress,intport,constchar*hostname,constchar*id,constchar*attribute,constchar*param,QUERYFUNCqueryResult);功能:远程接口回调,通知远程接口接收到了局域网中其他多屏互动组件设备发过来的请求指令.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名;id--输出参数,请求指令的id;attribute--输出参数,请求指令属性名;param--输出参数,请求指令附带的参数;queryResult--输入参数,函数指针,用于传递请求结果.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
5.
2onQueryResponse回调原型:status_tonQueryResponse(constchar*ipaddress,intport,constchar*hostname,constchar*id,constchar*command,constchar*params);功能:远程接口回调,通知远程接口接收到了局域网中其他多屏互动组件设备发过来的请求指令的相关结果.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名;id--输出参数,请求指令的id;attribute--输出参数,请求指令属性名;param--输出参数,请求指令附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
5.
3onExecute回调原型:status_tonExecute(constchar*ipaddress,intport,constchar*hostname,constchar*command,constchar*params);功能:远程接口回调,通知远程接口接收到了局域网中其他多屏互动组件设备发过来的执行指令请求.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名;command--输出参数,请求的执行指令;params--输出参数,请求指令附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
GY/T303.
5—2018126H.
3.
5.
4onInputKeyCode回调原型:status_tonInputKeyCode(constchar*ipaddress,intport,constchar*hostname,constchar*action,constchar*params);功能:远程接口回调,通知远程接口接收到了局域网中其他多屏互动组件设备发过来的按键事件指令请求.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名;action--输出参数,需要虚拟的按键事件指令;params--输出参数,按键事件指令附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
5.
5onNotify回调原型:status_tonNotify(constchar*ipaddress,intport,constchar*hostname,constchar*command,constchar*params);功能:远程接口回调,通知远程接口接收到了局域网中其他多屏互动组件设备发过来的通知事件.
参数:ipaddress--输出参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输出参数,局域网中的多屏互动组件设备主机名;command--输出参数,通知的指令;params--输出参数,附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
6接口定义H.
3.
6.
1queryInfo接口原型:status_tqueryInfo(constchar*ipaddress,intport,constchar*hostname,constchar*id,constchar*attribute,constchar*param);功能:局域网中多屏互动组件设备发起端向接收端发送的请求指令.
参数:ipaddress--输入参数,局域网中的多屏互动组件设备ip地址;port--输出参数,局域网中的多屏互动组件设备端口号;hostname--输入参数,局域网中的多屏互动组件设备主机名;id--输入参数,请求指令的id;attribute--输入参数,请求指令属性名;param--输入参数,请求指令附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
6.
2execCmd接口原型:status_texecCmd(constchar*ipaddress,intport,constchar*hostname,constchar*command,constchar*params);功能:局域网中多屏互动组件设备发起端向接收端发送的执行指令请求.
参数:ipaddress--输入参数,局域网中的多屏互动组件设备ip地址;GY/T303.
5—2018127port--输入参数,局域网中的多屏互动组件设备端口号;hostname--输入参数,局域网中的多屏互动组件设备主机名;command--输入参数,请求的执行指令;params--输入参数,请求指令附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
6.
3inputKeyCode接口原型:status_tinputKeyCode(constchar*ipaddress,intport,constchar*hostname,constchar*action,constchar*params);功能:局域网中多屏互动组件设备发起端向接收端发送按键事件指令请求.
参数:ipaddress--输入参数,局域网中的多屏互动组件设备ip地址;port--输入参数,局域网中的多屏互动组件设备端口号;hostname--输入参数,局域网中的多屏互动组件设备主机名;action--输入参数,需要虚拟的按键事件指令;params--输入参数,按键事件指令附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
H.
3.
6.
4notifyAllTarget接口原型:status_tnotifyAllTarget(constchar*cmd,constchar*param);功能:向局域网内的已经连接上的所有具有多屏互动组件的设备发送通知.
参数:cmd--输入参数,通知的指令;param--输入参数,附带的参数.
返回:status_t,远程接口调用成功返回0,否则返回错误码.
GY/T303.
5—2018128附录I(规范性附录)广播信息服务组件I.
1概述本附录定义了广播信息服务组件对外提供的接口,包括广播信息服务业务监测、OSD更新、广告更新、应急广播监测和信息服务等功能模块的对外接口,见表I.
1.
表I.
1广播信息服务组件功能模块模块说明广播信息服务业务监测功能模块定义了广播信息服务组件的启动、停止、注册消息等功能接口.
OSD更新功能模块定义OSD文本内容更新、获取等功能接口.
广告更新功能模块定义了开机广告接收、广告信息获取、实时广告接收等接口.
应急广播监测功能模块定义了应急广播的接口及消息.
信息服务功能模块定义了信息服务相关的接口.
I.
2广播信息服务业务监测模块I.
2.
1概述本模块定义了广播信息服务组件的启动、停止、注册消息等功能接口,见表I.
2.
表I.
2广播信息服务业务监测功能模块接口接口说明startServer启动广播信息服务组件监控.
stopServer停止广播信息服务业务的监控.
setTunerIdToDth设置高频头标识到广播信息服务组件.
setListener注册监听广播信息服务组件消息.
restoreFactorySettings恢复出厂设置.
SaveNITServiceUpdateVersion对业务更新描述符的版本号进行保存.
DCASM_sendDataToDTHDCAS组件将数据传输给广播信息服务组件.
I.
2.
2常量定义I.
2.
2.
1DCAS组件收发数据命令原型:#defineID_SEND_CMD_TO_STB0x10000001描述:发送该命令给广播信息服务组件.
原型:#defineID_SEND_DATA_Bouquent_ID0x10000002描述:发送该bouqueid给广播信息服务组件.
原型:#defineID_SEND_DATA_ZIP_CODE0x10000003描述:区域码.
GY/T303.
5—2018129原型:#defineID_SEND_DATA_PERSONAL_BITS0x10000004描述:特征.
原型:#defineID_SEND_DATA_CAS_VENDOR_ID0x00000005描述:CAS的Vendor的ID.
原型:#defineID_SEND_DATA_HSM_POSITION_X0x00000006描述:HSM的位置X坐标.
原型:#defineID_SEND_DATA_HSM_POSITION_Y0x00000007描述:HSM的位置Y坐标.
原型:#defineID_SEND_DATA_CAS_VERSION0x00000008描述:CAS的版本.
原型:#defineID_SEND_DATA_TO_HEADEND0x00000009描述:发送数据给头端.
原型:#defineID_SEND_DATA_CHIP_ID0x0000000A描述:芯片的ID.
原型:#defineID_SEND_DATA_HSM_ID0x0000000B描述:HSM的ID.
I.
2.
2.
2DCAS组件收发数据类型原型:#defineTYPE_INT320x01描述:整数类型.
原型:#defineTYPE_INT8ARRAY0x02描述:整形数组类型.
原型:#defineTYPE_STRING0x03描述:字符串类型.
I.
2.
3事件类型无.
I.
2.
4数据结构I.
2.
4.
1广播信息服务组件事件类型原型:typedefenum_DTH_EVENT_CB_E{DTH_EVENT_EMBD_TRIG=0,DTH_EVENT_EMBD_CANCEL,DTH_EVENT_OSD_UPDATE,DTH_EVENT_SERVICE_UPDATE,DTH_EVENT_RESET_DATA,DTH_EVENT_BOUQUET_ID_UPDATE,DTH_EVENT_UPGRADE_TRIG,DTH_EVENT_FINGERPRINT_TRIG,DTH_EVENT_DCAS_OSD_TRIG,DTH_EVENT_GPRS_STATUS,GY/T303.
5—2018130DTH_EVENT_GPRS_SEND_STATUS,DTH_EVENT_GPRS_BASE_STATION,DTH_EVENT_BUTT}DTH_EVENT_CB_E;描述:广播信息服务组件事件类型.
成员:DTH_EVENT_EMBD_TRIG:应急广播触发;DTH_EVENT_EMBD_CANCEL:应急广播取消;DTH_EVENT_OSD_UPDATE:OSD文本更新消息;DTH_EVENT_SERVICE_UPDATE:业务更新描述符更新消息;DTH_EVENT_RESET_DATA:擦除数据描述符更新消息;DTH_EVENT_BOUQUET_ID_UPDATE:bouquetId更新消息;DTH_EVENT_UPGRADE_TRIG:软件升级触发消息;DTH_EVENT_FINGERPRINT_TRIG:指纹触发消息;DTH_EVENT_DCAS_OSD_TRIG:DCAS的OSD文本更新触发消息;DTH_EVENT_GPRS_STATUS:获取GPRS状态消息(异步用到);DTH_EVENT_GPRS_SEND_STATUS:GPRS发送数据状态消息(异步用到);DTH_EVENT_GPRS_BASE_STATION:GPRS获取基站消息(异步用到);DTH_EVENT_BUTT:保留字段.
I.
2.
4.
2节目更新描述符原型:typedefstruct_Notify_ServiceUpdate_Info{HI_S32DeliverySystemType;HI_U16networkId;HI_U8forceFlag;}Notify_ServiceUpdate_Info;描述:节目更新描述符结构.
成员:DeliverySystemType:区分当前上报的是哪种系统类型(10表示卫星,12表示地面);networkId:用来标识当前属于哪个网络;forceFlag:用于确定业务更新是否为强制更新(1表示强制更新,0表示非强制更新).
I.
2.
5回调函数定义I.
2.
5.
1notify回调原型:HI_VOIDnotify(DTH_EVENT_CB_EenMsgType,HI_VOID*pvMsgData);功能:业务消息回调.
参数:enMsgType--消息类型,见DTH_EVENT_CB_E.
pvMsgData--数据指针,根据enMsgType类型转换到相应数据.
-DTH_EVENT_EMBD_TRIG:应急广播触发,参数HI_VOID*为DTH_EMBD_Data_t*,即返回的是应急广播的节目描述.
-DTH_EVENT_EMBD_CANCE:应急广播取消,参数HI_VOID*为DTH_EMBD_Data_t*,即返回的是应急广播的节目描述.
GY/T303.
5—2018131-DTH_EVENT_OSD_UPDATE:OSD文本更新消息,参数HI_VOID*为NULL.
-DTH_EVENT_SERVICE_UPDATE:业务更新描述符更新消息,参数HI_VOID*为Notify_ServiceUpdate_Info*,即返回的是节目更新描述符的类型.
HostKvm又上新了,这次上架了2个线路产品:俄罗斯和香港高防VPS,其中俄罗斯经测试电信CN2线路,而香港高防VPS提供30Gbps攻击防御。HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。俄罗斯VPSCPU:1core内存:2G...
天上云怎么样?天上云隶属于成都天上云网络科技有限公司,是一家提供云服务器及物理服务器的国人商家,目前商家针对香港物理机在做优惠促销,香港沙田机房采用三网直连,其中电信走CN2,带宽为50Mbps,不限制流量,商家提供IPMI,可以自行管理,随意安装系统,目前E3-1225/16G的套餐低至572元每月,有做大规模业务的朋友可以看看。点击进入:天上云官方网站天上云香港物理机服务器套餐:香港沙田数据中...
HostNamaste是一家成立于2016年3月的印度IDC商家,目前有美国洛杉矶、达拉斯、杰克逊维尔、法国鲁贝、俄罗斯莫斯科、印度孟买、加拿大魁北克机房。其中洛杉矶是Quadranet也就是我们常说的QN机房(也有CC机房,可发工单让客服改机房);达拉斯是ColoCrossing也就是我们常说的CC机房;杰克逊维尔和法国鲁贝是OVH的高防机房。采用主流的OpenVZ和KVM架构,支持ipv6,免...