中华人民共和国广播电视行业标准GY/T303.4—2018
智能电视操作系统
第4部分:硬件抽象接口
SmartTV operating system
Part4:Hardwareabstract interface2018-07-06发布
国家广播电视总局
2018-07-06实施
引言,
1范围
2规范性引用文件.
缩略语
4基本数据类型和运算符定义
数据类型定义.
关系运算符定义,
算术运算符定义
5接口概述
调用机制。
硬件抽象接口说明
媒体处理专用硬件抽象接口
通用硬件抽象接口
附录A(规范性附录)
常量定义.
枚举定义
数据结构定义
回调函数定义
调用方法,
接口定义
附录B(规范性附录)
常量定义
枚举定义
数据结构定义
回调函数定义
调用方法。
接口定义
附录C(规范性附录)
常量定义
C.2枚举定义.
数据结构定义
回调函数定义
Aout模块
Demux模块
Frontend模块
GY/T303.42018
GY/T303.42018
调用方法。
接口定义
附录D(规范性附录)
常量定义,
枚举定义,
数据结构定义。
回调函数定义
调用方法
接口定义
附录E(规范性附录)
常量定义
枚举定义
数据结构定义
回调函数定义
调用方法..
接口定义
附录F(规范性附录)
常量定义
枚举定义.
数据结构定义
回调函数定义
调用方法。
接口定义
System模块,
Vout模块
AV模块
:110
:127
:154
GY/T303《智能电视操作系统》已经或计划发布以下部分:一第1部分:功能与架构:
一一第2部分:安全;
一一第3部分:应用编程接口;
一一第4部分:硬件抽象接口;
一一第5部分:功能组件接口;
一一第6部分:可信执行环境接口;第7部分:符合性测试。
本部分为GY/T303的第4部分。
本部分按照GB/T1.1一2009给出的规则起草。GY/T303.42018
请注意本部分的某些内容可能涉及专利。本部分的发布机构不承担识别这些专利的责任。本部分由全国广播电影电视标准化技术委员会(SAC/TC239)归口。本部分起草单位:国家新闻出版广电总局广播科学研究院、国家广播电视网工程技术研究中心、中国广播电视网络有限公司、华为技术有限公司、深圳市海思半导体有限公司、创维数字技术股份有限公司、晨星软件研发(深圳)有限公司、深圳创维-RGB电子有限公司、上海兆芯集成电路有限公司、湖南国科微电子股份有限公司,上海高清数字科技产业有限公司,青岛海信电器股份有限公司、北京海尔集成电路设计有限公司、杭州国芯科技股份有限公司,北京泰合志远科技有限公司、北京永新视博数学电视技术有限公司、北京数码视讯科技股份有限公司、四川长虹网络科技有限责任公司、四川九州电子科技股份有限公司、东方有线网络有限公司、上海仪电数字技术有限公司、上海联彤网络通讯技术有限公司、江苏省广电有线信息网络股份有线公司、陕西广电网络传媒(集团)股份有限公司、湖南省有线电视网络(集团)股份有限公司、北京数字太和科技有限责任公司、中兴通讯股份有限公司、深圳市苗壮网络股份有限公司、江苏银河电子股份有限公司、国家新闻出版广电总局卫星直播管理中心、上海全景数字技术有限公司。本部分主要起草人:盛志凡、刘金晓、赵良福、严海峰、杨明磊、邹峰、解伟、谢振雷、丁送星、付瑞、谌颖、裘洪国、白伟、黎政、孙明勇、宋勇立、郭晓霞、白鹤、郭沛宇、万乾荣、王明敏、李小雨、张定京、同磊、黄新军、郭金花、蒲佳、来永胜、王旭升、元宝、蒋艳山、方中华、李洪浩、郭永伟、于龙朕、袁宏伟、马万铮、何剑、赵学庆、王磊、王颖、曾品超、郭成、陶春、黄玲玲、梁志坚、杨波涛、李晓榕、王欣刚、王佳敏、张晶、汤新坤、贾庭兰、陈宝霞、杨战兵、蒋新农、徐其桓、涂立、占亿民、林宝成、管丹东、李玮帆、董进刚。IHI
GY/T303.42018
本部分的发布机构提请注意,声明符合本部分时,可能使用涉及本部分有关内容的相关授权的和正在申请的专利如下:
章条号
附录B.6、附录B.3.5
一种智能电视操作系统
一种智能电视系统
专利名称
一种在智能电视操作系统中支持全媒体播放的方法及智能电视终端一种用于智能操作系统的条件接收方法和系统本部分的发布机构对于该专利的真实性、有效性和范围无任何立场,该专利持有人已向本部分的发布机构保证,他愿意同任何申请人在合理且无歧视的条款和条件下,就专利授权许可进行谈判。该专利持有人的声明已在本部分的发布机构备案,相关信息可以通过以下联系方式获得:
专利权利人
国家新闻出版广电总局
广播科学研究院
联系地址
北京市西城
区复兴门外
大街2号
联系人
孟祥昆
邮政编码
100866
010-86098010
电子邮箱
[email protected]请注意除上述专利外,本部分的某些内容仍可能涉及专利。本部分的发布机构不承担识别这些专利的责任。
1范围
智能电视操作系统
第4部分:硬件抽象接口
GY/T303的本部分规定了智能电视操作系统硬件抽象接口相关技术要求。GY/T303.42018
本部分适用于智能电视操作系统和智能电视芯片的研发、生产、应用和测试,以及智能终端解决方案的集成。
2规范性引用文件
下列文件对于本部分的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本部分。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本部分。GY/T303.1一2016智能电视操作系统第1部分:功能与架构KhronosOpenMAXIL1.1.2规范(OpenMAX_IL_1_1_2_Specification)KhronosOpenGLES2.0.25规范(OpenGLES2.0.25Specification)3缩略语
下列缩略语适用于本部分。
AC3音频编码3(AudioCoding3)App应用程序(Application)
ATV模拟电视(AnalogTelevision)AV音视频(AudioVideo)
API应用程序编程接口(ApplicationProgrammingInterface)Aout音频输出(AudioOutput)
Av音视频(AudioVideo)
有线调制解调器(CableModem)CM
CSS样式级联表(CascadingStyleSheets)拷贝代次管理系统(CopyGenerationManagementSystem)CGMS
可下载条件接收系统(DownloadableConditionalAccessSystem)DCAS
DTS设备树源(DeviceTreeSource)DVB数字视频广播(DigitalVideoBroadcasting)DVB-C数字有线电视广播(DigitalVideoBroadcasting-Cable)DVB-S数字卫星广播(DigitalVideoBroadcasting-Satellite)DVB-T地面数字电视广播(DigitalVideoBroadcasting-Terrestrial)Demux解复用器(Demultiplexer)DiSEqC数字卫星设备控制(DigitalSatelliteEquipmentControl)ES基本码流(ElementaryStream)1
GY/T303.42018
基础概要文件(FoundationProfile)HAL
硬件抽象层(HardwareAbstractLayer)高带宽数字内容保护(High-bandwidthDigitalContentProtection)超文本标记语言(HyperTextMarkupLanguage)超文本传输协议(HyperTextTransferProtocol)高清晰度多媒体接口(HighDefinitionMultimediaInterface)IP电视(IPTelevision)
唯一标识(Identification)
输入流标识(inputstreamidentify)低噪声下变频器,也叫高频头(LowNoiseBlock)动态图像专家组(MovingPictureExpertsGroup)屏幕菜单式显示(On-ScreenDisplay)OpenMAXIL开放多媒体加速集成层(OpenMediaAccelerationIntegrationLayer)OpenGLES用于嵌入式系统的开放图形库(OpenGraphicsLibraryforEmbeddedSystems)包识别码(PacketIdentifier)PID
节目时钟参考(Program)
脉冲编码调制(PulseCodeModulation)PN序列(Pseudo-noise Sequence)PN
数字音频接口(Sony/PhilipsDigitalInterface)SystemModule系统模块(SystemModule)TEE
可信执行环境(TrustedExecutionEnvironment)传送流(TransportStream)
智能电视操作系统
(TelevisionOperatingSystem)
视频输出(VideoOutput)
场消隐期(VerticalBlankingInterval)基本数据类型和运算符定义
数据类型定义
数据类型定义见表1。
数据类型名称
数据类型定义
数据类型定义
unsigned char
unsigned short
unsigned int
unsigned long long
signed char
signed long long
数据类型名称
DOUBLE
HANDLE
关系运算符定义
关系运算符定义见表2。
关系运算符名称
4.3算术运算符定义
算数运算符定义见表3。
关系运算符名称
接口概述
表1(续)
关系运算符定义
表3算数运算符
数据类型定义
double
unsigned int
关系运算符含义
小于等于
大于等于
不等于
GY/T303.42018
关系运算符含义
左移一位
右移一位
递增加1
递减减1
TVOS硬件抽象层(HAL)实现对TVOS硬件平台能力的抽象封装,对同一类型硬件设备采用统一的抽象封装模型,为上层软件对硬件平台能力的访问和控制提供统一的调用接口。TVOSHAL硬件抽象模块包括媒体处理专用硬件抽象接口和通用硬件抽象接口等两大类,如图1所示。3
GY/T303.42018
硬件抽象层(HAL)
媒体处理专用硬件抽象接口
Frontend
System
图1硬件抽象接口
通用硬件抽象接口
OpenGLES
媒体处理专用硬件抽象接口是TVOS针对广电领域媒体业务所做的扩展定义,包括Aout模块、Demux模块、Frontend模块、System模块、Vout模块、AV模块等6个子模块;通用硬件功能接口吸纳了业界成熟的硬件抽象接口标准,包括OpenOMXIL音视频编解码模块、OpenGLES图形模块等。各模块的功能定义见表4。
表4硬件抽象接口模块
音频输出(Aout)模块
解复用(Demux)模块
Frontend模块
system模块
Vout模块
音视频播放(AV)模块
OpenMAXIL模块
OpenGLES模块
定义了音频向音频设备输出的接口,比如左右声道输出、SPDIF输出、HDMI输出等输出模式。除此之外,还提供了对音频属性的获取及对音频的操控等功能,比如获取音频流的PCR属性,音频的静音、暂停等属性
定义了操控解复用器的接口,提供根据设置的相应条件进行解复用,解扰,过滤等功能
定义了对Tuner的操作接口,提供对DVB-C\\DVB-S\\DVB-T等多种标准的支持定义了对系统进行设置的接口,如待机、获取芯片ID、重启、关机等功能定义了视频向显示设备输出的接口,比如对视频3D输出、分辨率、顿率等进行设置
定义了音视频处理的接口,提供音视频的编码解码,TS流、ES流的解码播放等功能
定义了一系列媒体编码、解码接口,本部分采用OpenMAXIL1.1.2接口
定义了一系列的三维图形接口,本部分采用OpenGLES2.0.25接口
接口细节见附录A
接口细节见附录B
接口细节见附录C
接口细节见附录D
接口细节见附录E
接口细节见附录F
接口遵循OpenMAXIL1.1.2规范
接口遵循OpenGLES2.0.25规范
媒体通用硬件抽象接口所包含的各子模块有相似的框架,以Aout模块为例,框架如图2所示4
Aout硬件抽象接口模块框架
Aout硬件模块句柄管理
Aout硬件模块
初始化/去初始化
图2Aout模块框架
Aout硬件设备管理
Aout硬件操控接口
GY/T303.42018
图2中Aout硬件模块句柄管理采用表B.41所定义的结构对硬件模块句柄进行描述,提供统一的接口供上层应用获取到Aout模块句柄,Aout硬件模块初始化/去初始化模块完成对音频输出硬件的初始化及去初始化工作。Aout硬件设备管理对Aout硬件操控接口进行了统一的管理。5
调用机制
TVOS硬件抽象接口模块遵循GY/T303.1一2016中第7章的要求,采用Stub硬件抽象模型实现。Stub硬件抽象模型将一个硬件模块和若干硬件设备以及对它们的操作方法以Stub操作函数的形式,通过将硬件模块ID对应相应的Stub操作函数指针的方式,为上层软件提供相关硬件能力的调用方法,实现对相关硬件能力的操作和控制,
TVOSHAL层Stub硬件抽象模型原理如图3所示。组件层
Stub(1)
硬件抽象1(ID)
+操作函数1()
+操作函数2()
+操作函数m()
硬件驱动(1)
组件2
硬件抽象层(HAL)
Stub(2)
硬件抽象2(ID)
+操作函数1()
+操作函数2()
+操作函数m()
bzxz.net硬件驱动(2)
Linux内核层
图3TVosStub硬件抽象模型原理
Stub(n)
硬件抽象n(ID)
+操作函数1()
+操作函数2()
+操作函数m)
硬件驱动(n)
TVOS硬件抽象接口运行在用户空间,并对运行在内核空间的硬件驱动进行了抽象。Stub是一种代理人的概念,在系统中以动态库的形式存在,对上提供了一系列的操作函数接口。上层软件只需要拥有访问HALStub的函数指针,并不需要拥有整个HALStub,动态库文件只会被映射到一个进程中。上层软件通过硬件抽象层提供的统一接口获取并操作HALStub,调用其中的操作函数完成对硬件的操控。5
GY/T303.42018
硬件抽象接口说明
媒体处理专用硬件抽象接口
Aout模块
本条定义了音频输出模块的硬件抽象接口,Aout模块接口简表见表5表5
aout_close
aout_open
*aout_init
*aout_term
*aout_get_capability
*aout_open
*aout_close
*aout_set_volume
*aout_get_volume
*aout_set_digital_mode
*aout_get_digital_mode
*aout_set_mute
*aout_get_mute
*aout_set_channel_mode
*aout_get_channel_mode
*track_get_default_attr
*trackcreate
*track_destroy
*track_start
*track_stop
*track_pause
*track_resume
*track_flush
*track_set_param
*track get params
*track_set_mix_params
*track_getmix params
*track_set_mute
*track_get_mute
Aout模块接口
关闭一个音频输出设备
打开一个音频输出设备
初始化Aout实例
关闭Aout实例
获取模块设备能力
打开一个音频输出实例
关闭一个音频输出实例
设置输出设备音量
获取输出设备音量
设置音频输出模式
获取音频输出模式
设置输出静音
获取输出静音设置
设置声道模式。对设备级进行声道设置,设备类型见表A.3AOUT_DEVICE_TYPE_E中的定义,如SPDIF、HDMI、扬声器输出等设置声道模式
获取默认的track参数
创建一个Track通道实例,
删除一个Track通道实例
创建后的Track出于去使能状态
启动Track通道,Track音频数据可以从aout输出停止Track通道,通道缓存的音频数据被清空暂停Track通道,Track音频数据停止从aout输出恢复Track通道,通道缓存的音频数据继续输出恢复Track通道,通道缓存的音频数据继续输出,与resume的区别是flush会先清空缓存中的数据
设置Track的属性。通道在停止状态后,才能设置属性获取Track的属性
设置Track混音参数
获取Track的混音参数
设置Track的静音
获取Track的静音
*track set channel mode
*track get_channel mode
*track_set_weight
*track_get_weight
*track_get_render_position
*track get pts
*track_adjust_speed
*track_get_buf_avail
*track_get_latency
*track_write
Demux模块
表5(续)
GY/T303.42018
左右声道混音等模式,与通
一路Track设置声道模式,
如立体声,
道中的设置声道模式不冲突,是通道的声道模式中对某一路Track声道模式的细化
获取声道模式
设置声道权重,如是按线性音量还是分贝音量获取声道权重,如是按线性音量还是分贝音量获取已经输出到硬件的音频顿数获取Track当前播放的PTS
对Track的播放进行调速
获取Track的缓存剩余空间
获取Track的缓存空间中可播放数据的时长向Track的缓存写入待播放的音频数。本函数为阻塞操作,写入前必须通过track_get_buf_avail确认是否有足够空间,否则将会立刻返回失败
本条定义了Demux模块的硬件抽象层接口,Demux模块接口简表见表6。表6
demux_open
demux_close
*dmx_init
*dmx_term
*dmx_set_source_params
*dmx_get_source_params
*dmx_disconnect
*dmx_reconnect
*dmx_get_capability
*dmxget_status
*dmxchannel_open
*dmx_channel_close
*dmxchannel_set pid
*dmx_channel_query
*dmx_channel_enable
*dmx_channel_disable
*dmx_channel_reset
*dmx_channel_get_info
*dmx_channel_set
Demux模块接口
打开一个Demux模块设备
关闭一个Demux模块设备
Demux模块初始化
Demux模块终止
设置Demux模块数据源
获取Demux数据源参数
断开Demux与数据源(如解调器)的关联,开机默认是关联的恢复Demux与当前设置的数据源(如解调器)的关联,开机默认是关联的获取Demux的能力
获取Demux的状态
开启一个通道
关闭一个通道,
,并释放相关资源
设置通道PID
通过PID查询该PID所对应的通道开启通道接收数据
停止通道接收数据
复位通道
获取通道信息
设置通道参数
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。