区域管理

概述

用户一般都需要在视频中叠加OSD(On-Screen Display)用于显示一些特定的信息(如:通道号、时间戳等),必要时还会填充色块。这些叠加在视频上的OSD和遮挡在视频上的色块统称为区域。REGION模块,用于统一管理这些区域资源。

区域管理可以实现区域的创建,并叠加到视频中或对视频进行遮挡。例如,实际应用中,用户通过创建一个区域,通过ss_mpi_rgn_attach_to_chn,将该区域叠加到某个通道(如VENC通道)中。在通道进行调度时,则会将OSD叠加在视频中。一个区域支持通过设置通道显示属性接口指定到多个通道中(如:多个VENC通道,多个VI通道,甚至多个VENC和VI通道),且支持在每个通道的显示属性(如位置、层次、透明度等)都不同。

功能描述

重要概念

  • 区域类型

    • OVERLAY:视频叠加区域,其中区域支持位图的加载、背景色更新等功能。

    • OVERLAYEX:扩展视频叠加区域,功能与OVERLAY类似,支持位图加载、背景色更新等。

    • COVER:视频遮挡区域,其中区域支持纯色块遮挡。

    • COVEREX:扩展视频遮挡区域,功能与COVER类似,支持纯色块遮挡。

    • LINE:扩展的线条视频叠加区域,支持颜色、粗细等调节。

    • MOSAIC:马赛克遮挡区域,支持精度调节。

    • MOSAICEX:扩展的马赛克遮挡区域,支持精度调节。

    • CORNER_RECTEX:角框区域,支持大小,颜色,粗细等调节。

    • OVERLAYEX/ COVEREX/MOSAICEX,分别相对于OVERLAY/COVER/MOSAIC,功能上类似,但是会引入额外的系统带宽,OVERLAYEX/ COVEREX/ MOSAICEX由VGS叠加到图像上,OVERLAYEX/ COVEREX区域越大,占用VGS的性能就越大,当VGS性能不足时,会导致帧率降低。建议只有当OVERLAY/COVER/MOSAIC不支持,或者数量无法满足需求时,再使用。

  • 区域层次

    区域层次表示区域的叠加级别,对于相同的区域类型,层次值越大,表示区域的显示级别越高,当发生重叠时,层次值大的将会覆盖层次值小的,区域层次相同时以客户调用attach的顺序为准。不同的区域类型以模块的处理顺序为准。

    图 1 层次叠加示意图

  • 角框

    角框中有多个可调节属性,其中hor_length须小于width, ver_length须小于height,角框不得超出图像外显示。

    图 2 角框示意图

  • 位图填充(针对OVERLAY和OVERLAYEX有效)

    位图填充是指将位图的内存值填充到区域内存空间中,位图将会从区域的左上角开始填充。当位图小于区域时,只能填充一部分内存,剩余部分保持原有值;位图大小等于区域时,将刚好全部填充;当位图大于区域时,位图只能将自身和区域一样大小的内存信息填充到区域中。

    位图填充支持两种实现方式:

    • 其一、用户通过ss_mpi_rgn_set_bmp接口将位图数据拷贝至内部显示画布;

    • 其二、用户通过ss_mpi_rgn_get_canvas_info获取内部备份显示画布的地址,直接对该地址数据进行更新,然后调用ss_mpi_rgn_update_canvas接口将备份显示画布更新为待显示画布,达到实现更新位图数据的目的。

  • 区域公共属性

    用户创建一个区域时,需要设置该属性信息,它包含公共的资源信息。例如,OVERLAY包含像素格式,大小和背景色。

  • 通道显示属性(ot_rgn_type_chn_attr)

    通道显示属性表明区域在某通道的显示特征。例如,OVERLAY的通道显示属性包含显示位置,层次,前景Alpha,背景Alpha,还有编码用到的qp信息。当通道显示属性中的区域是否显示(is_show)为TRUE时,表示显示在该通道中;反之,表示在该通道中存在,但处于隐藏状态。

  • 区域反色

    当区域叠加到视频上显示时,如果视频背景与叠加区域的亮度色度相近,往往会导致背景与区域很难进行区分。区域反色功能即针对这种场景,自适应背景的变化,对区域的亮度色度进行调整,实现区域清晰可见。

    区域反色功能支持实现方式如下:通过VPSS提供的区域亮度和统计功能。用户可实时获取视频序列中每个待叠加区域背景的亮度统计,然后利用VGS对区域进行手动的反色处理,最后通过VGS将该反色后的区域叠加到视频上。

  • 区域qp保护

    当区域叠加到视频上进行压缩编码时,为了保证叠加区域的清晰度不因为数据压缩而变模糊,可以单独设定叠加区域部分的压缩特性,即设定qp保护功能参数。qp保护功能是OVERLAY特有的功能,且仅针对H.264/H.265类型编码通道有效,对其它类型无效。

说明: Region不支持实心凹四边形,实心凹四边形显示为三角形。

表 1 SS528V100/SS625V100/SS524V100/SS522V101/SS626V100 region支持的模块信息

类型

支持模块

设备号取值范围

通道号取值范围

OVERLAY

VENC

0

[0,OT_VENC_MAX_CHN_NUM-1]

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

0

COVER

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

0

VI

0

[0, OT_VI_MAX_PHYS_CHN_NUM-1]

辅通道不支持COVER。

OVERLAYEX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0, OT_VPSS_MAX_CHN_NUM-1]

VO

[0,OT_VO_MAX_PHYS_VIDEO_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

PCIV

(SS524V100/SS522V101不支持PCIV)

0

[0,OT_PCIV_MAX_CHN_NUM-1]

COVEREX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0, OT_VPSS_MAX_CHN_NUM-1]

VO

[0,OT_VO_MAX_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

LINE

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0,OT _VPSS_MAX_CHN_NUM-1]

VO

[0,OT_VO_MAX_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

MOSAIC

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

0

MOSAICEX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0,OT_VPSS_MAX_CHN_NUM-1]

表 2 SS928V100 region支持的模块信息

类型

支持模块

设备号取值范围

通道号取值范围

OVERLAY

VENC

0

[0,OT_VENC_MAX_CHN_NUM-1]

COVER

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

0

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

0

OVERLAYEX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0, OT_VPSS_MAX_PHYS_CHN_NUM-1]

VO

[0,OT_VO_MAX_PHYS_VIDEO_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

AVS

[0, OT_AVS_MAX_GRP_NUM-1]

[0, OT_AVS_MAX_CHN_NUM-1]

PCIV

0

[0,OT_PCIV_MAX_CHN_NUM-1]

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

[0, OT_MCF_MAX_PHYS_CHN_NUM-1]

VI

[0, OT_VI_MAX_PIPE_NUM-1]

[0, OT_VI_MAX_CHN_NUM-1]

COVEREX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0, OT_VPSS_MAX_PHYS_CHN_NUM-1]

VO

[0,OT_VO_MAX_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

VI

[0, OT_VI_MAX_PIPE_NUM-1]

[0, OT_VI_MAX_CHN_NUM-1]

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

[0, OT_MCF_MAX_PHYS_CHN_NUM-1]

LINE

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0,OT _VPSS_MAX_PHYS_CHN_NUM-1]

VO

[0,OT_VO_MAX_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

[0, OT_MCF_MAX_PHYS_CHN_NUM-1]

MOSAIC

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

0

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

0

MOSAICEX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0,OT_VPSS_MAX_PHYS_CHN_NUM-1]

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

[0, OT_MCF_MAX_PHYS_CHN_NUM-1]

CORNER_RECTEX

VPSS

[0,OT_VPSS_MAX_GRP_NUM-1]

[0,OT _VPSS_MAX_PHYS_CHN_NUM-1]

VO

[0,OT_VO_MAX_LAYER_NUM-1]

[0, OT_VO_MAX_CHN_NUM-1]

MCF

[0,OT_MCF_MAX_GRP_NUM-1]

[0, OT_MCF_MAX_PHYS_CHN_NUM-1]

  • 区域支持的功能

    目前各种类型的区域支持的功能如表3表4所示。

说明:

  • VO模块仅在single模式支持region,multi模式不支持。

  • PCIV(Peripheral Component Interconnect Video)叠放region时,只支持从片叠放region,主片不支持叠放region。

表 3 SS528V100/SS625V100/SS524V100/SS522V101/SS626V100 region支持的功能

支持的功能

支持的模块

OVERLAY

OVERLAYEX

COVER

COVEREX

LINE

MOSAIC

MOSAICEX

VPSS

VENC

VPSS

PCIV(SS524V100/SS522V101 不支持PCIV)

VO

VPSS

VI

VPSS

VO

VPSS

VO

VPSS

VPSS

像素格式

Argb1555

Argb4444

Argb8888

CLUT2

CLUT4

Argb1555

Argb4444

CLUT2

CLUT4

Argb1555

Argb4444

Argb8888

CLUT2

CLUT4

RGB888

RGB888

N/A

N/A

N/A

叠加层次

支持

支持

支持

支持

N/A

支持

支持

位图填充

支持

支持

N/A

N/A

N/A

N/A

N/A

叠加透明度

支持

支持

N/A

N/A

N/A

N/A

N/A

前景alpha范围

0~255

0~128

0~255

N/A

N/A

N/A

N/A

N/A

背景alpha范围

0~255

0~128

0~255

N/A

N/A

N/A

N/A

N/A

qp保护

N/A

支持

N/A

N/A

N/A

N/A

N/A

N/A

反色

支持(由用户实现)

N/A

N/A

N/A

N/A

N/A

N/A

N/A

表 4 SS928V100 region支持的功能

支持的功能

支持的模块

OVERLAY

OVERLAYEX

COVER

COVEREX

LINE

MOSAIC

MOSAICEX

VENC

VPSS

VI

VO

AVS

PCIV

MCF

VPSS

MCF

VPSS

VO

VI

MCF

VPSS

VO

MCF

VPSS

MCF

VPSS

MCF

像素格式

Argb1555

Argb4444

CLUT2

CLUT4

Argb1555

Argb4444

Argb8888

CLUT2

CLUT4

RGB888

RGB888

N/A

N/A

N/A

叠加层次

支持

支持

支持

支持

N/A

支持

支持

位图填充

支持

支持

N/A

N/A

N/A

N/A

N/A

叠加透明度

支持

支持

N/A

N/A

N/A

N/A

N/A

前景alpha范围

0~128

0~255

N/A

N/A

N/A

N/A

N/A

背景alpha范围

0~128

0~255

N/A

N/A

N/A

N/A

N/A

qp保护

支持

N/A

N/A

N/A

N/A

N/A

N/A

反色

N/A

N/A

N/A

N/A

N/A

N/A

N/A

表 5 SS528V100/SS625V100/SS524V100/SS522V101/SS626V100 region COVER/COVEREX类型支持情况

模块类型

COVER/COVEREX类型

COVER (矩形)

COVER (实心四边形)

COVER (空心四边形)

COVEREX (矩形)

COVEREX (实心四边形)

COVEREX (空心四边形)

VPSS

支持

不支持

不支持

支持

不支持

支持

VO

NA

NA

NA

支持

不支持

不支持

VI

支持

不支持

不支持

NA

NA

NA

表 6 SS928V100 region COVER/COVEREX类型支持情况

模块类型

COVER/COVEREX类型

COVER (矩形)

COVER (实心四边形)

COVER (空心四边形)

COVEREX (矩形)

COVEREX (实心四边形)

COVEREX (空心四边形)

VPSS

支持

支持

支持

支持

支持

支持

VO

NA

NA

NA

支持

支持

支持

VI

NA

NA

NA

支持

支持

支持

MCF(Mono-Color-Fusion)

支持

支持

支持

支持

支持

支持

ARGB CLUT2/CLUT4介绍

  • CLUT格式是一个查色表,保存颜色格式为ARGB8888,其中CLUT2可以保存4种颜色,CLUT4可以保存16种颜色。

  • 颜色值通过ss_mpi_rgn_set_attr接口设置。

  • CLUT2每个颜色需要2bit内存,表示该颜色在查色表中的序号。CLUT4每个颜色则需要4bit内存。

  • 每个模块叠加一个或多个CLUT2和CLUT4位图,同一时间分别只支持一个查色表。

使用示意

使用过程包含以下步骤:

  • 用户填充区域属性并创建区域。

  • 将该区域指定到具体通道中(如VENC)。在指定到具体通道时,需要输入通道的显示属性。

以上步骤完成区域的创建和使用。用户还可以通过以下操作来控制区域属性以及在某通道的通道显示属性。

  • 通过ss_mpi_rgn_get_attr、ss_mpi_rgn_set_attr获取和设置区域属性。

  • 通过ss_mpi_rgn_set_bmp(仅针对OVERLAY、OVERLAYEX)设置区域的位图信息。

  • 通过ss_mpi_rgn_get_display_attr和ss_mpi_rgn_set_display_attr获取和设置区域在某通道(如VENC通道)的通道显示属性。

  • 最后用户可以将该区域从通道中撤出(非必须操作),再销毁区域。

单buff更新方案:

OVERLAY和OVERLAYEX这两种类型的区域支持设置画布数量为1。当buff数量为1时,想要对buff进行更新需要改变以往的流程。

  1. 创建OVERLAY或者OVERLAYEX区域,设置画布数量为1。

  2. 如果区域绑定到了通道上,则先解绑定。

  3. 设置区域位图到画布。

  4. 设置完成后绑定区域到通道上。

  5. 解绑定区域。

  6. 更新画布。

  7. 绑定区域到通道上。

    更新时重复5~7

  8. 不用时解绑定、销毁区域。

    注意:如果没有解绑定就直接更新画布,可能看到画布出现花屏的现象。这种方案较适用于需要省内存且buff刷新不频繁的场景下。

CLUT类型OVERLAY操作步骤:

  1. 创建OVERLAY。

  2. 设置ot_rgn_overlay_attr属性,设置clut\OT_RGN_CLUT_NUM]中的值代表了查色表中的颜色值。

  3. 调用ss_mpi_rgn_attach_to_chn接口绑定到VENC通道上。

  4. 调用ss_mpi_rgn_set_bmp可以加载二值化后的位图。

  5. 调用ss_mpi_rgn_set_display_attr可以设置颜色值。

  6. 不用时解绑定,销毁区域。

批处理过程包含以下步骤:

  1. 用户填充区域属性并创建区域。

  2. 将该区域指定到具体通道中(如VENC)。在指定到具体通道时,需要输入通道的显示属性。

  3. 调用ss_mpi_rgn_batch_begin设置需要进行批处理的区域。

  4. 调用接口ss_mpi_rgn_set_bmp(仅针对OVERLAY、OVERLAYEX)设置各个区域位图信息或者调用ss_mpi_rgn_get_canvas_info设置各个区域位图信息。

  5. 调用ss_mpi_rgn_set_display_attr设置各个区域显示属性。

  6. 完成各个区域的设置后,调用ss_mpi_rgn_batch_end对各个区域的信息同步更新。

    其它具体细节参考sample。

    • 支持批处理的MPI接口有:

      ss_mpi_rgn_set_bmp,ss_mpi_rgn_set_display_attr,ss_mpi_rgn_get_canvas_info,ss_mpi_rgn_batch_begin,ss_mpi_rgn_batch_end。

    • 不支持批处理的MPI接口有:

      ss_mpi_rgn_set_attr,ss_mpi_rgn_destroy,ss_mpi_rgn_detach_from_chn,ss_mpi_rgn_update_canvas。

    • 接口功能与批处理无关:

      ss_mpi_rgn_create,ss_mpi_rgn_get_attr,ss_mpi_rgn_attach_to_chn,ss_mpi_rgn_get_display_attr。

API参考

区域管理模块主要提供区域资源的控制管理功能,包括区域的创建、销毁,获取与设置区域属性,获取与设置区域的通道显示属性等。

须知: 本章描述中的模块名称、设备、设备号、组、组号、通道、通道号等为通用描述,不再具体指出是对于哪个解决方案或哪个模块而言的,对于不同解决方案,region支持的模块信息见表1、表2。

该功能模块提供以下MPI:

  • ss_mpi_rgn_create:创建区域。

  • ss_mpi_rgn_destroy:销毁区域。

  • ss_mpi_rgn_get_attr:获取区域属性

  • ss_mpi_rgn_set_attr:设置区域属性。

  • ss_mpi_rgn_set_bmp:设置区域位图。

  • ss_mpi_rgn_attach_to_chn:将区域叠加到通道上。

  • ss_mpi_rgn_detach_from_chn:将区域从通道中撤出。

  • ss_mpi_rgn_set_display_attr:设置区域的通道显示属性。

  • ss_mpi_rgn_get_display_attr:获取区域的通道显示属性。

  • ss_mpi_rgn_get_canvas_info:获取区域画布信息。

  • ss_mpi_rgn_update_canvas:更新区域画布信息。

  • ss_mpi_rgn_batch_begin:设置区域批处理。

  • ss_mpi_rgn_batch_end:区域批处理信息同步。

  • ss_mpi_rgn_close_fd:关闭区域管理模块文件描述符。

ss_mpi_rgn_create

【描述】

创建区域。

【语法】

td_s32 ss_mpi_rgn_create(ot_rgn_handle handle, const ot_rgn_attr *rgn_attr);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

必须是未使用的handle号

取值范围:0, OT_RGN_HANDLE_MAX)。

输入

rgn_attr

区域属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 该句柄由用户指定,意义等同于ID号。

  • 不支持重复创建。

  • 区域属性必须合法,具体约束参见[ot_rgn_type_attr。

  • 区域属性指针不能为空。

  • 创建COVER、COVEREX、LINE、MOSAIC、MOSAICEX、CORNER_RECTEX时,只需指定区域类型即可。其它的属性,如区域位置,层次等信息在调用ss_mpi_rgn_attach_to_chn接口时指定。

  • 创建区域时,本接口只进行基本的参数的检查,譬如:最小宽高,最大宽高等;当区域attach到通道上时,根据各通道模块支持类型的约束条件进行更加有针对性的参数检查,譬如支持的像素格式等;

【举例】

ot_rgn_handle handle;
ot_rgn_attr rgn_attr;
td_s32 ret = TD_SUCCESS;
handle = 0;
rgn_attr.type = OT_RGN_OVERLAY;
rgn_attr.attr.overlay.pixel_format = OT_PIXEL_FORMAT_ARGB_1555;
rgn_attr.attr.overlay.size.width = 16;
rgn_attr.attr.overlay.size.height = 16;
rgn_attr.attr.overlay.bg_color = 0x0000ffff;
ret = ss_mpi_rgn_create(handle, &rgn_attr)
if (ret != TD_SUCCESS)   {
    return ret;
}
ret = ss_mpi_rgn_get_attr(handle, &rgn_attr);
if (ret != TD_SUCCESS) {
    return ret;
}
 
rgn_attr.attr.overlay.bg_color = 0x0000cccc;
ret = ss_mpi_rgn_set_attr(handle, &rgn_attr);
if (ret != TD_SUCCESS) {
     return ret;
}
ret = ss_mpi_rgn_destroy(handle);
if (ret != TD_SUCCESS) {
    return ret;
}

【相关主题】

ss_mpi_rgn_destroy

【描述】

销毁区域。

【语法】

td_s32 ss_mpi_rgn_destroy(ot_rgn_handle handle);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 如果需要销毁attach到VENC的OSD,建议在调用ss_mpi_rgn_destroy接口之前先调用ss_mpi_venc_reset_chn(该接口详见第6章)。

  • 调用该接口的过程中,不允许同时调用ss_mpi_rgn_set_attr/ss_mpi_rgn_set_bmp。

  • 无论该接口调用成功或者失败,用户都需要重新调用ss_mpi_rgn_get_canvas_info才能对画布进行操作。

【举例】

参见ss_mpi_rgn_create举例。

【相关主题】

无。

ss_mpi_rgn_get_attr

【描述】

获取区域属性。

【语法】

td_s32 ss_mpi_rgn_get_attr(ot_rgn_handle handle, ot_rgn_attr *rgn_attr);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

rgn_attr

区域属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 区域属性指针不能为空。

【举例】

参见ss_mpi_rgn_create举例。

【相关主题】

无。

ss_mpi_rgn_set_attr

【描述】

设置区域属性。

【语法】

td_s32 ss_mpi_rgn_set_attr(ot_rgn_handle handle, const ot_rgn_attr *rgn_attr);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

rgn_attr

区域属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 当区域通过ss_mpi_rgn_attach_to_chn接口绑定到通道上时,本接口不可以用于修改静态属性,但是可以修改动态属性;当区域没有attach到任何通道上时,本接口即可用于修改静态属性,也可用于修改动态属性。

  • 区域属性指针不能为空。

  • 调用了ss_mpi_rgn_get_canvas_info之后,调用本接口无效,除非调用ss_mpi_rgn_update_canvas更新画布生效。

  • 调用该接口的过程中,不允许同时调用ss_mpi_rgn_destroy。

  • COVER、COVEREX、LINE、MOSAIC、MOSAICEX、CORNER_RECTEX不支持此接口。

  • 动态更新背景色会覆盖整个区域。

【举例】

参见ss_mpi_rgn_create举例。

【相关主题】

无。

ss_mpi_rgn_set_bmp

【描述】

设置区域位图,即对区域进行位图填充。

【语法】

td_s32 ss_mpi_rgn_set_bmp(ot_rgn_handle handle, const ot_bmp *bmp);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

bmp

位图属性指针。

ot_bmp描述请参考“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 支持位图的大小和区域的大小不一致。

  • 位图从区域的(0,0)点开始加载。当位图比区域大时,将会自动将图像剪裁成区域大小。

  • 位图的像素格式必须和区域的像素格式一致。

  • 位图属性指针不能为空。

  • 支持多次调用。

  • 此接口只对OVERLAY及OVERLAYEX两种类型有效。

  • 调用了ss_mpi_rgn_get_canvas_info之后,调用本接口无效,除非调用ss_mpi_rgn_update_canvas更新画布生效。

  • 调用该接口的过程中,不允许同时调用ss_mpi_rgn_destroy。

【举例】

    ot_rgn_handle handle;
    ot_bmp bmp;
    td_s32 ret = TD_SUCCESS;
    bmp.enPixelFormat = OT_PIXEL_FORMAT_ARGB_1555;
    bmp.width  = 4;
    bmp.height = 4;
    bmp.data = malloc(2 * bmp.width * bmp.height);
    if (TD_NULL == bmp.data) {
        return TD_FAILURE;
    }
    memset(bmp.data, 0xcc, ot_size);
    
    ret = ss_mpi_rgn_set_bmp(handle, &bmp);
    if (ret != TD_SUCCESS) {
        free(bmp.data);
        return ret;
    }
    free(bmp.data);

【相关主题】

无。

ss_mpi_rgn_attach_to_chn

【描述】

将区域叠加到通道上。

【语法】

td_s32 ss_mpi_rgn_attach_to_chn(ot_rgn_handle handle, const ot_mpp_chn *chn, const ot_rgn_chn_attr *chn_attr);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:0, OT_RGN_HANDLE_MAX)。

输入

chn

通道结构体指针。具体描述请参见“系统控制”章节。

输入

chn_attr

区域通道显示属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 通道结构体指针不能为空。

  • 区域通道显示属性指针不能为空。

  • 支持多次叠加,但此接口不用于改变属性。

  • 如果是OVERLAY区域,通道显示属性中的qp信息需要注意,参见结构体[ot_rgn_overlay_qp_info描述。

  • 将区域叠加到组上时,必须叠加到该组的通道0上,否则叠加不成功。

  • 将OVERLAY区域叠加到VENC通道上时,必须配置ot_rgn_overlay_chn_attr的ot_rgn_attach_dst属性,否则叠加不成功。

【举例】

无。

【相关主题】

无。

ss_mpi_rgn_detach_from_chn

【描述】

将区域从通道中撤出。

【语法】

td_s32 ss_mpi_rgn_detach_from_chn(ot_rgn_handle handle, const ot_mpp_chn *chn);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

chn

通道结构体指针。具体描述请参见“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 通道结构体指针不能为空。

  • 支持多次调用。

【举例】

无。

【相关主题】

无。

ss_mpi_rgn_set_display_attr

【描述】

设置区域的通道显示属性。

【语法】

td_s32 ss_mpi_rgn_set_display_attr(ot_rgn_handle handle, const ot_mpp_chn *chn,const ot_rgn_chn_attr *chn_attr);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

chn

通道结构体指针。具体描述请参见“系统控制”章节。

输入

chn_attr

区域通道显示属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 建议先获取属性,再设置。

  • 通道结构体指针不能为空。

  • 区域通道显示属性指针不能为空。

  • 区域必须先叠加到通道上。

  • 静态属性不能修改,动态属性可以被修改,详细情况参见结构体ot_rgn_type_chn_attr。

【举例】

    td_s32 ret = TD_SUCCESS;
    ot_rgn_handle handle;
    ot_mpp_chn chn;
         ot_rgn_attr rgn_attr;
    ot_rgn_chn_attr chn_attr;
    handle = 0;
    chn.mod_id = OT_ID_VENC;
    chn.dev_id = 0;
    chn. chn_id = 0;
    
    ret = ss_mpi_rgn_get_display_attr(handle, &chn, &chn_attr);
    if (ret != TD_SUCCESS) {
        NOT_PASS(ret);
        goto END;
    }
    chn_attr.is_show = TD_TRUE;
    chn_attr.type = OT_RGN_OVERLAY;
    chn_attr.attr.ot_rgn_overlay_chn_attr.point.x = 4;
    chn_attr.attr.ot_rgn_overlay_chn_attr.point.y = 4;
    chn_attr.attr.ot_rgn_overlay_chn_attr.bg_alpha = 128;
    chn_attr.attr.ot_rgn_overlay_chn_attr.fg_alpha = 128;
    chn_attr.attr.ot_rgn_overlay_chn_attr.layer = 0;
    
    chn_attr.attr.ot_rgn_overlay_chn_attr.qp_info.is_abs_qp = TD_FALSE;
    chn_attr.attr.ot_rgn_overlay_chn_attr.qp_info.qp_val = 0;
    ret = ss_mpi_rgn_set_display_attr(handle, &chn, &chn_attr);
    if (ret != TD_SUCCESS) {
        return ret;
    }

【相关主题】

无。

ss_mpi_rgn_get_display_attr

【描述】

获取区域的通道显示属性。

【语法】

td_s32 ss_mpi_rgn_get_display_attr(ot_rgn_handle handle, const ot_mpp_chn *chn, ot_rgn_chn_attr *chn_attr);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。取值范围:[0, OT_RGN_HANDLE_MAX)

输入

chn

通道结构体指针。具体描述请参见系统控制章节。

输入

chn_attr

区域通道显示属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 通道结构体指针不能为空。

  • 区域通道显示属性指针不能为空。

【举例】

请参见ss_mpi_rgn_set_display_attr的【举例】。

【相关主题】

无。

ss_mpi_rgn_get_canvas_info

【描述】

获取区域的显示画布信息。

【语法】

td_s32 ss_mpi_rgn_get_canvas_info(ot_rgn_handle handle, ot_rgn_canvas_info *canvas_info);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

canvas_info

区域显示画布信息。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 本接口与ss_mpi_rgn_set_bmp功能类似,本接口相对于ss_mpi_rgn_set_bmp接口,用户可以直接更新显示内部画布数据,节省一次内存拷贝。

  • 本接口用于获取区域对应的画布信息,在得到画布地址之后,用户可直接对画布进行操作,譬如:将bmp数据直接填写到该画布中。然后通过调用ss_mpi_rgn_update_canvas接口,更新显示画布数据。

  • 本接口与ss_mpi_rgn_set_bmp接口互斥。如果已经使用了本接口,那么在调用ss_mpi_rgn_update_canvas前,调用ss_mpi_rgn_set_bmp不生效。

【举例】

ot_rgn_handle handle;
ot_rgn_attr rgn_attr;
    td_s32 ret = TD_SUCCESS;
    handle = 0;
    rgn_attr.type = OT_RGN_OVERLAY;
    rgn_attr.attr.overlay.pixel_format = OT_PIXEL_FORMAT_ARGB_1555;
    rgn_attr.attr.overlay.size.width = 16;
         rgn_attr.attr.overlay.size.height = 16;
rgn_attr.attr.overlay.bg_color = 0x0000ffff;
         /* 1. Create handle for overlay region */
         ret = ss_mpi_rgn_create(handle, &rgn_attr);
         if (ret != TD_SUCCESS){
        return ret;
         }
 
    /* 2. Get current overlay canvas info */
    ret = ss_mpi_rgn_get_canvas_info(handle, &canvas_info);
    if (TD_SUCCESS != ret) {
        printf("ss_mpi_rgn_get_canvas_info fail! ret: 0x%x.\n", ret);
        return NULL;
    }
     /* 3. User can set canvas here. */
         /* 4. Update canvas */
    ret = ss_mpi_rgn_update_canvas (handle);
    if (TD_SUCCESS != ret) {
        printf("ss_mpi_rgn_update_canvas fail! ret: 0x%x.\n", ret);
        return NULL;
    }

【相关主题】

无。

ss_mpi_rgn_update_canvas

【描述】

更新显示画布。

【语法】

td_s32 ss_mpi_rgn_update_canvas (ot_rgn_handle handle);

【参数】

参数名称

描述

输入/输出

handle

区域句柄号。

取值范围:[0, OT_RGN_HANDLE_MAX)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 本接口配合ss_mpi_rgn_get_canvas_info使用。主要用于画布内存数据更新之后,进行画布切换显示。

  • 每次调用本接口前,都必须先获取画布信息,然后在调用本接口进行更新。

  • 本接口仅支持OVERLAY或OVERLAYEX类型的区域。

【举例】

请参见ss_mpi_rgn_get_canvas_info。

【相关主题】

无。

ss_mpi_rgn_batch_begin

【描述】

设置多个区域进行批处理。

【语法】

td_s32 ss_mpi_rgn_batch_begin(ot_rgn_handle_grp *grp, td_u32 handle_num, const ot_rgn_handle handle[]);

【参数】

参数名称

描述

输入/输出

grp

批处理组号。

取值范围:[0, OT_RGN_GRP_MAX)。

输出

handle_num

一组中的句柄个数。

取值范围:[2, OT_RGN_BATCH_HANDLE_MAX)

输入

handle[]

需要进行批处理的区域句柄数组。

数组长度取值范围:[2, OT_RGN_BATCH_HANDLE_MAX)

数组元素取值范围:[0, OT_RGN_HANDLE_MAX)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 设置的句柄个数一定要等于数组的长度,且不超过最大值。

  • 区域类型必须是OVERLAY类型。

  • 必须与ss_mpi_rgn_batch_end成对出现。

  • 此接口不支持多线程调用。

  • 单buf模式下批处理不生效

  • 批处理中不可以调用ss_mpi_rgn_set_attr,ss_mpi_rgn_destroy,ss_mpi_rgn_detach_from_chn,ss_mpi_rgn_update_canvas接口。

【举例】

ot_rgn_handle handle;
ot_rgn_handle handle[3];
ot_rgn_handle_grp grp;
ot_rgn_attr rgn_attr;
ot_rgn_chn_attr chn_attr;
ot_mpp_chn chn;
td_s32 handle_num;
ot_bmp bmp;
td_bool is_canvas = TD_TRUE;
ot_rgn_canvas_info canvas_info;
td_s32 ret = TD_SUCCESS;
rgn_attr.type = OT_RGN_OVERLAY;
rgn_attr.attr.overlay.pixel_format = OT_PIXEL_FORMAT_ARGB_1555;
rgn_attr.attr.overlay.size.width = 16;
rgn_attr.attr.overlay.size.height = 16;
rgn_attr.attr.overlay.bg_color = 0x0000ffff;
/* 1. Create handle for overlay region */
for (handle= 0; handle<3; handle++) {
             ret = ss_mpi_rgn_create(handle, &rgn_attr);
             if (ret != TD_SUCCESS) {
              return ret;
             }
         HANDLE[i]= i;
}
/*2.Attach to Chn*/
chn_attr.is_show = TD_TRUE;
chn_attr.type = OT_RGN_OVERLAY;
chn_attr.attr.ot_rgn_overlay_chn_attr.point.x = 64;
chn_attr.attr.ot_rgn_overlay_chn_attr.point.y = 64;
chn_attr.attr.ot_rgn_overlay_chn_attr.bg_alpha = 128;
chn_attr.attr.ot_rgn_overlay_chn_attr.fg_alpha = 128;
chn_attr.attr.ot_rgn_overlay_chn_attr.layer = 0;
 
chn_attr.attr.ot_rgn_overlay_chn_attr.qp_info.enable = 0;
chn_attr.attr.ot_rgn_overlay_chn_attr.qp_info.is_abs_qp = 0;
chn_attr.attr.ot_rgn_overlay_chn_attr.qp_info.qp_val = 0;
chn_attr.attr.ot_rgn_overlay_chn_attr.ot_rgn_attach_dst = OT_RGN_ATTACH_JPEG_MAIN;
chn.mod_id  = OT_ID_VENC;
chn.dev_id = 0;
chn.chn_id = 0;
for (handle = 0; handle<3; handle++) {
ret = ss_mpi_rgn_attach_to_chn(handle, &chn, &chn_attr);
if (ret != TD_SUCCESS) {
       return ret;
     }
}
 
/*3 Set Batch */
handle_num = 3;
for (i = 0; i < 3; i++) {
HANDLE[i]=i;
}
ret = ss_mpi_rgn_batch_begin(&grp, handle_num, &handle[0]);
if (ret != TD_SUCCESS) {
    return ret;
}
/*4 Batch process*/
/* User can set canvas here. */
if (is_canvas) {
for (handle = 0; handle < 3; handle++) {
ret = ss_mpi_rgn_get_canvas_info(handle, &canvas_info);
if (ret != TD_SUCCESS) {
           return ret;
        }
}
} else { /* User can load bmp here. */
for(handle = 0; handle < 3; handle++) {
ret = ss_mpi_rgn_set_bmp(handle, &bmp);
if (ret != TD_SUCCESS) {
return ret;
        }
}
}/*5 Batch update*/
ret = ss_mpi_rgn_batch_end(grp);
if (ret != TD_SUCCESS) {
   return ret;
}

【相关主题】

ss_mpi_rgn_batch_end

ss_mpi_rgn_batch_end

【描述】

对一组区域的批处理信息进行同时更新。

【语法】

td_s32 ss_mpi_rgn_batch_end(ot_rgn_handle_grp grp);

【参数】

参数名称

描述

输入/输出

grp

批处理组号。

取值范围:[0, OT_RGN_GRP_MAX)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

  • 区域必须已创建。

  • 区域批处理组号必须已获取。

  • 本接口是配合ss_mpi_rgn_batch_begin

  • 区域类型必须是OVERLAY类型。

  • 此接口不支持多线程调用。

【举例】

请参见ss_mpi_rgn_batch_begin

【相关主题】

ss_mpi_rgn_close_fd

【描述】

关闭区域管理模块文件描述符。

【语法】

td_s32 ss_mpi_rgn_close_fd(td_void);

【参数】

【返回值】

返回值

描述

非负数

成功。

负数

失败,参见错误码

【需求】

  • 头文件:ot_common_region.h、ss_mpi_region.h

  • 库文件:libss_mpi.a

【注意】

【举例】

【相关主题】

数据类型

视频前处理相关数据类型、数据结构定义如下:

  • OT_RGN_CLUT_NUM:定义RGB颜色查表个数。

  • OT_RGN_GRP_MAX:定义批处理最大的组数。

  • OT_RGN_HANDLE_MAX:定义区域的最大句柄数。

  • OT_RGN_BATCH_HANDLE_MAX:定义一组批处理最多区域句柄数。

  • OT_RGN_MAX_BUF_NUM:定义区域使用的最大内存数量。

  • OT_RGN_MIN_WIDTH:定义区域宽度的最小值。

  • OT_RGN_MIN_HEIGHT:定义区域高度的最小值。

  • OT_RGN_ALIGN:定义区域坐标宽高度对齐值。

  • OT_RGN_COVER_MIN_X:定义COVER矩形区域起始位置以及任意四边形坐标点X坐标最小值。

  • OT_RGN_COVER_MIN_Y:定义COVER矩形区域起始位置以及任意四边形坐标点Y坐标最小值。

  • OT_RGN_COVER_MAX_X:定义COVER矩形区域起始位置以及任意四边形坐标点X坐标最大值。

  • OT_RGN_COVER_MAX_Y:定义COVER矩形区域起始位置以及任意四边形坐标点Y坐标最大值。

  • OT_RGN_COVER_MAX_WIDTH:定义COVER矩形区域的最大宽度。

  • OT_RGN_COVER_MAX_HEIGHT:定义COVER矩形区域的最大高度。

  • OT_RGN_COVEREX_MIN_X:定义COVEREX矩形区域起始位置以及任意四边形坐标点X坐标最小值。

  • OT_RGN_COVEREX_MIN_Y:定义COVEREX矩形区域起始位置以及任意四边形坐标点Y坐标最小值。

  • OT_RGN_COVEREX_MAX_X:定义COVEREX矩形区域起始位置以及任意四边形坐标点X坐标最大值。

  • OT_RGN_COVEREX_MAX_Y:定义COVEREX矩形区域起始位置以及任意四边形坐标点Y坐标最大值。

  • OT_RGN_COVEREX_MAX_WIDTH:定义COVEREX矩形区域的最大宽度。

  • OT_RGN_COVEREX_MAX_HEIGHT:定义COVEREX矩形区域的最大高度。

  • OT_RGN_COVEREX_MIN_THICK:定义能力集空心COVEREX任意四边形的最小线宽。

  • OT_RGN_COVEREX_MAX_THICK:定义能力集空心COVEREX任意四边形的最大线宽。

  • OT_RGN_OVERLAY_MIN_X:定义OVERLAY区域起始位置X坐标最小值。

  • OT_RGN_OVERLAY_MIN_Y:定义OVERLAY区域起始位置Y坐标最小值。

  • OT_RGN_OVERLAY_MAX_X:定义OVERLAY区域起始位置X坐标最大值。

  • OT_RGN_OVERLAY_MAX_Y:定义OVERLAY区域起始位置Y坐标最大值。

  • OT_RGN_OVERLAY_MAX_WIDTH:定义OVERLAY区域的最大宽度。

  • OT_RGN_OVERLAY_MAX_HEIGHT:定义OVERLAY区域的最大高度。

  • OT_RGN_OVERLAYEX_MIN_X:定义OVERLAYEX区域起始位置X坐标最小值。

  • OT_RGN_OVERLAYEX_MIN_Y:定义OVERLAYEX区域起始位置Y坐标最小值。

  • OT_RGN_OVERLAYEX_MAX_X:定义OVERLAYEX区域起始位置X坐标最大值。

  • OT_RGN_OVERLAYEX_MAX_Y:定义OVERLAYEX区域起始位置Y坐标最大值。

  • OT_RGN_OVERLAYEX_MAX_WIDTH:定义OVERLAYEX区域的最大宽度。

  • OT_RGN_OVERLAYEX_MAX_HEIGHT:定义OVERLAYEX区域的最大高度。

  • OT_RGN_LINE_MIN_X:定义LINE区域起点和终点位置坐标点X坐标最小值。

  • OT_RGN_LINE_MIN_Y:定义LINE区域起点和终点位置坐标点Y坐标最小值。

  • OT_RGN_LINE_MAX_X:定义LINE区域起点和终点位置坐标点X坐标最大值。

  • OT_RGN_LINE_MAX_Y:定义LINE区域起点和终点位置坐标点Y坐标最大值。

  • OT_RGN_LINE_MIN_THICK:定义LINE区域最小宽度。

  • OT_RGN_LINE_MAX_THICK:定义LINE区域最大宽度。

  • OT_RGN_LINE_POINT_NUM:定义LINE区域坐标点数量。

  • OT_RGN_MOSAIC_MIN_X:定义MOSAIC矩形区域起始位置坐标点X坐标最小值。

  • OT_RGN_MOSAIC_MIN_Y:定义MOSAIC矩形区域起始位置坐标点Y坐标最小值。

  • OT_RGN_MOSAIC_MAX_X:定义MOSAIC矩形区域起始位置坐标点X坐标最大值。

  • OT_RGN_MOSAIC_MAX_Y:定义MOSAIC矩形区域起始位置坐标点Y坐标最大值。

  • OT_RGN_MOSAIC_MIN_WIDTH:定义MOSAIC矩形区域的最小宽度。

  • OT_RGN_MOSAIC_MIN_HEIGHT:定义MOSAIC矩形区域的最小高度。

  • OT_RGN_MOSAIC_MAX_WIDTH:定义MOSAIC矩形区域的最大宽度。

  • OT_RGN_MOSAIC_MAX_HEIGHT:定义MOSAIC矩形区域的最大高度。

  • OT_RGN_MOSAICEX_MIN_X:定义MOSAICEX矩形区域起始位置坐标点X坐标最小值。

  • OT_RGN_MOSAICEX_MIN_Y:定义MOSAICEX矩形区域起始位置坐标点Y坐标最小值。

  • OT_RGN_MOSAICEX_MAX_X:定义MOSAICEX矩形区域起始位置坐标点X坐标最大值。

  • OT_RGN_MOSAICEX_MAX_Y:定义MOSAICEX矩形区域起始位置坐标点Y坐标最大值。

  • OT_RGN_MOSAICEX_MIN_WIDTH:定义MOSAICEX矩形区域的最小宽度。

  • OT_RGN_MOSAICEX_MIN_HEIGHT:定义MOSAICEX矩形区域的最小高度。

  • OT_RGN_MOSAICEX_MAX_WIDTH:定义MOSAICEX矩形区域的最大宽度。

  • OT_RGN_MOSAICEX_MAX_HEIGHT:定义MOSAICEX矩形区域的最大高度。

  • OT_RGN_CORNER_RECTEX_MIN_X:定义CORNER_RECTEX起始位置坐标点X坐标最小值。

  • OT_RGN_CORNER_RECTEX_MIN_Y:定义CORNER_RECTEX起始位置坐标点Y坐标最小值。

  • OT_RGN_CORNER_RECTEX_MAX_X:定义CORNER_RECTEX起始位置坐标点X坐标最大值。

  • OT_RGN_CORNER_RECTEX_MAX_Y:定义CORNER_RECTEX起始位置坐标点Y坐标最大值。

  • OT_RGN_CORNER_RECTEX_MAX_WIDTH:定义CORNER_RECTEX的最大宽度。

  • OT_RGN_CORNER_RECTEX_MAX_HEIGHT:定义CORNER_RECTEX的最大高度。

  • OT_RGN_CORNER_RECTEX_MIN_HOR_LEN:定义CORNER_RECTEX最小水平线长度。

  • OT_RGN_CORNER_RECTEX_MIN_VER_LEN:定义CORNER_RECTEX最小垂直线长度。

  • OT_RGN_CORNER_RECTEX_MAX_HOR_LEN:定义CORNER_RECTEX的最大水平线长度。

  • OT_RGN_CORNER_RECTEX_MAX_VER_LEN:定义CORNER_RECTEX的最大垂直线长度。

  • OT_RGN_CORNER_RECTEX_MIN_THICK:定义CORNER_RECTEX的最小线宽。

  • OT_RGN_CORNER_RECTEX_MAX_THICK:定义CORNER_RECTEX的最大线宽。

  • OT_RGN_VENC_MAX_OVERLAY_NUM:定义一个VENC通道最多可显示的叠加OVERLAY区域的个数。

  • OT_RGN_PCIV_MAX_OVERLAYEX_NUM:定义一个PCIV通道的最大扩展叠加区域的个数。

  • OT_RGN_VPSS_MAX_OVERLAY_NUM:定义一个VPSS组最多可显示的叠加OVERLAY区域的个数。

  • OT_RGN_VPSS_MAX_OVERLAYEX_NUM:定义一个VPSS通道最多可显示的叠加OVERLAYEX区域的个数。

  • OT_RGN_VPSS_MAX_COVER_NUM:定义一个VPSS组最大遮挡区域的个数。

  • OT_RGN_VPSS_MAX_COVEREX_NUM:定义一个VPSS通道最大叠加COVEREX区域的个数。

  • OT_RGN_VPSS_MAX_LINE_NUM:定义一个VPSS通道最大叠加LINE区域的个数。

  • OT_RGN_VPSS_MAX_MOSAIC_NUM:定义一个VPSS组最大叠加MOSAIC区域的个数。

  • OT_RGN_VPSS_MAX_MOSAICEX_NUM:定义一个VPSS通道最大叠加MOSAICEX区域的个数。

  • OT_RGN_VPSS_MAX_CORNER_RECTEX_NUM:定义一个VPSS通道最大叠加CORNER_RECTEX区域的个数。

  • OT_RGN_VO_MAX_LINE_NUM:定义一个VO通道的最大叠加LINE区域的个数。

  • OT_RGN_VO_MAX_OVERLAYEX_NUM:定义一个VO通道的最大叠加OVERLAYEX区域的个数。

  • OT_RGN_VO_MAX_COVEREX_NUM:定义一个VO通道的最大叠加COVEREX区域的个数。

  • OT_RGN_VO_MAX_CORNER_RECTEX_NUM:定义一个VO通道最大叠加CORNER_RECTEX区域的个数。

  • OT_RGN_VI_MAX_COVER_NUM:定义一个VI通道的最大叠加COVER区域的个数。

  • OT_RGN_VI_MAX_COVEREX_NUM:定义一个VI通道的最大叠加COVER区域的个数

  • OT_RGN_VI_MAX_OVERLAYEX_NUM:定义一个VI通道最多可显示的叠加OVERLAYEX区域的个数。

  • OT_RGN_AVS_MAX_OVERLAYEX_NUM:定义一个AVS通道最多可显示的叠加OVERLAYEX区域的个数。

  • OT_RGN_VO_MAX_CORNER_RECTEX_NUM:定义一个VO通道最大叠加CORNER_RECTEX区域的个数。

  • OT_RGN_MCF_MAX_OVERLAYEX_NUM:定义一个MCF通道最多可显示的叠加OVERLAYEX区域的个数。

  • OT_RGN_MCF_MAX_COVER_NUM:定义一个MCF组最大遮挡区域的个数。

  • OT_RGN_MCF_MAX_COVEREX_NUM:定义一个MCF通道最大叠加COVEREX区域的个数。

  • OT_RGN_MCF_MAX_LINE_NUM:定义一个MCF通道最大叠加LINE区域的个数。

  • OT_RGN_MCF_MAX_MOSAIC_NUM:定义一个MCF组的最大叠加MOSAIC区域的个数。

  • OT_RGN_MCF_MAX_MOSAICEX_NUM:定义一个MCF通道最大叠加MOSAICEX区域的个数。

  • OT_RGN_MCF_MAX_CORNER_RECTEX_NUM:定义一个MCF通道最大叠加CORNER_RECTEX区域的个数

  • OT_RGN_COORD_X_MAX:定义COVER 相对x坐标最大值。

  • OT_RGN_COORD_Y_MAX:定义COVER 相对Y坐标最大值。

  • OT_RGN_COORD_WIDTH_MAX:定义COVER 相对宽度最大值。

  • OT_RGN_COORD_HEIGHT_MAX:定义COVER 相对高度最大值。

  • ot_rgn_handle:定义区域句柄。

  • ot_rgn_handle_grp:定义批处理区域组号。

  • ot_rgn_type:定义区域类型。

  • ot_rgn_overlay_qp_info:定义叠加区域qp属性结构体。

  • ot_rgn_attach_dst:定义叠加区域VENC图像的类型。

  • ot_rgn_overlay_attr:定义叠加区域属性结构体。

  • ot_rgn_overlay_chn_attr:定义叠加区域通道显示属性。

  • ot_rgn_cover_chn_attr:定义遮挡区域的通道显示属性。

  • ot_rgn_coverex_chn_attr:定义扩展遮挡区域的通道显示属性。

  • ot_rgn_line_chn_attr:定义线性遮挡区域的通道显示属性。

  • ot_rgn_overlayex_attr:定义扩展叠加区域属性结构体。

  • ot_rgn_overlayex_chn_attr:定义扩展叠加区域的通道显示属性。

  • ot_rgn_type_attr:定义区域属性联合体。

  • ot_rgn_type_chn_attr:定义区域通道显示属性联合体。

  • ot_rgn_mosaic_chn_attr:定义MOSAIC区域属性结构体。

  • ot_rgn_mosaicex_chn_attr:定义MOSAICEX区域属性结构体。

  • ot_rgn_corner_rect_chn_attr:定义CORNER_RECTEX区域属性结构体。

  • ot_rgn_chn_attr:定义区域通道显示属性结构体。

  • ot_rgn_canvas_info:定义区域显示画布属性结构体。

OT_RGN_CLUT_NUM

【说明】

定义RGB颜色查表个数。

【定义】

#define OT_RGN_CLUT_NUM 16

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_GRP_MAX

【说明】

定义批处理最大的组数。

【定义】

#define OT_RGN_GRP_MAX   8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_HANDLE_MAX

【说明】

定义区域的最大句柄个数。

【定义】

#define OT_RGN_HANDLE_MAX     1024

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_BATCH_HANDLE_MAX

【说明】

定义一组批处理最多区域句柄数。

【定义】

#define OT_RGN_BATCH_HANDLE_MAX  24

【成员】

【注意事项】

【相关数据类型及接口】

OT_RGN_MAX_BUF_NUM

【说明】

定义区域使用的最大内存数量。

【定义】

#define OT_RGN_MAX_BUF_NUM                2

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MIN_WIDTH

【说明】

定义区域宽度的最小值。

【定义】

#define OT_RGN_MIN_WIDTH                2

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MIN_HEIGHT

【说明】

定义区域高度的最小值。

【定义】

#define OT_RGN_MIN_HEIGHT                2

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_ALIGN

【说明】

定义区域坐标宽高度对齐值。

【定义】

#define OT_RGN_ALIGN                2

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVER_MIN_X

【说明】

定义COVER矩形区域起始位置以及任意四边形坐标点X坐标最小值。

【定义】

SS928V100:

#define OT_RGN_COVER_MIN_X                 -8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVER_MIN_X                 -16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVER_MIN_Y

【说明】

定义COVER矩形区域起始位置以及任意四边形坐标点Y坐标最小值。

【定义】

SS928V100:

#define OT_RGN_COVER_MIN_Y                 -8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVER_MIN_Y                 -8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVER_MAX_X

【说明】

定义COVER矩形区域起始位置以及任意四边形坐标点X坐标最大值。

【定义】

SS928V100:

#define OT_RGN_COVER_MAX_X                 8190

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVER_MAX_X                 16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVER_MAX_Y

【说明】

定义COVER矩形区域起始位置以及任意四边形坐标点Y坐标最大值。

【定义】

SS928V100:

#define OT_RGN_COVER_MAX_Y                 8190

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVER_MAX_Y                 8190

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVER_MAX_WIDTH

【说明】

定义COVER矩形区域的最大宽度。

【定义】

SS928V100:

#define OT_RGN_COVER_MAX_WIDTH                 8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVER_MAX_WIDTH                 16384

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVER_MAX_HEIGHT

【说明】

定义COVER矩形区域的最大高度。

【定义】

SS928V100:

#define OT_RGN_COVER_MAX_HEIGHT                 8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVER_MAX_HEIGHT                 8192

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MIN_X

【说明】

定义COVEREX矩形区域起始位置以及任意四边形坐标点X坐标最小值。

【定义】

SS928V100:

#define OT_RGN_COVEREX_MIN_X                -16384

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVEREX_MIN_X                -16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MIN_Y

【说明】

定义COVEREX矩形区域起始位置以及任意四边形坐标点Y坐标最小值。

【定义】

SS928V100:

#define OT_RGN_COVEREX_MIN_Y                -16384

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVEREX_MIN_Y                 -8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MAX_X

【说明】

定义COVEREX矩形区域起始位置以及任意四边形坐标点X坐标最大值。

【定义】

#define OT_RGN_COVEREX_MAX_X                 16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MAX_Y

【说明】

定义COVEREX矩形区域起始位置以及任意四边形坐标点Y坐标最大值。

【定义】

SS928V100:

#define OT_RGN_COVEREX_MAX_Y                16382

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVEREX_MAX_Y                 8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MAX_WIDTH

【说明】

定义COVEREX矩形区域的最大宽度。

【定义】

#define OT_RGN_COVEREX_MAX_WIDTH             16384

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MAX_HEIGHT

【说明】

定义COVEREX矩形区域的最大高度。

【定义】

#define OT_RGN_COVEREX_MAX_HEIGHT               8192

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MIN_THICK

【说明】

定义能力集COVEREX空心任意四边形的最小线宽。

【定义】

#define OT_RGN_COVEREX_MIN_THICK        2

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_COVEREX_MAX_THICK

【说明】

定义能力集COVEREX空心任意四边形的最大线宽。

【定义】

SS928V100:

#define OT_RGN_COVEREX_MAX_THICK       16

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_COVEREX_MAX_THICK        14

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAY_MIN_X

【说明】

定义OVERLAY区域起始位置X坐标最小值。

【定义】

#define OT_RGN_OVERLAY_MIN_X                 0

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAY_MIN_Y

【说明】

定义OVERLAY区域起始位置Y坐标最小值。

【定义】

#define OT_RGN_OVERLAY_MIN_Y                 0

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAY_MAX_X

【说明】

定义OVERLAY区域起始位置X坐标最大值。

【定义】

SS928V100:

#define OT_RGN_OVERLAY_MAX_X               8190

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_OVERLAY_MAX_X                16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAY_MAX_Y

【说明】

定义OVERLAY区域起始位置Y坐标最大值。

【定义】

#define OT_RGN_OVERLAY_MAX_Y                 8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAY_MAX_WIDTH

【说明】

定义OVERLAY区域的最大宽度。

【定义】

SS928V100:

#define OT_RGN_OVERLAY_MAX_WIDTH            8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_OVERLAY_MAX_WIDTH             16384

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAY_MAX_HEIGHT

【说明】

定义OVERLAY区域的最大高度。

【定义】

#define OT_RGN_OVERLAY_MAX_HEIGHT          8192

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAYEX_MIN_X

【说明】

定义OVERLAYEX区域起始位置X坐标最小值。

【定义】

#define OT_RGN_OVERLAYEX_MIN_X                 0

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAYEX_MIN_Y

【说明】

定义OVERLAYEX区域起始位置Y坐标最小值。

【定义】

#define OT_RGN_OVERLAYEX_MIN_Y                 0

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAYEX_MAX_X

【说明】

定义OVERLAYEX区域起始位置X坐标最大值。

【定义】

#define OT_RGN_OVERLAYEX_MAX_X                16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAYEX_MAX_Y

【说明】

定义OVERLAYEX区域起始位置Y坐标最大值。

【定义】

#define OT_RGN_OVERLAYEX_MAX_Y                8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAYEX_MAX_WIDTH

【说明】

定义OVERLAYEX区域的最大宽度。

【定义】

SS928V100:

#define OT_RGN_OVERLAYEX_MAX_WIDTH          8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

#define OT_RGN_OVERLAYEX_MAX_WIDTH           16384

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_OVERLAYEX_MAX_HEIGHT

【说明】

定义OVERLAYEX区域的最大高度。

【定义】

#define OT_RGN_OVERLAYEX_MAX_HEIGHT          8192

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_LINE_MIN_X

【说明】

定义LINE区域起点和终点位置坐标点X坐标最小值。

【定义】

#define OT_RGN_LINE_MIN_X                0

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_LINE_MIN_Y

【说明】

定义LINE区域起点和终点位置坐标点Y坐标最小值。

【定义】

#define OT_RGN_LINE_MIN_Y                0

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_LINE_MAX_X

【说明】

定义LINE区域起点和终点位置坐标点X坐标最大值。

【定义】

#define OT_RGN_LINE_MAX_X                16382

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_LINE_MAX_Y

【说明】

定义LINE区域起点和终点位置坐标点Y坐标最大值。

【定义】

#define OT_RGN_LINE_MAX_Y                8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_LINE_MIN_THICK

【说明】

定义LINE区域最小宽度。

【定义】

#define OT_RGN_LINE_MIN_THICK                1

【成员】

无。

【注意事项】

LINE不支持单像素线宽,此值为实际宽度的一半。

【相关数据类型及接口】

无。

OT_RGN_LINE_MAX_THICK

【说明】

定义LINE区域最大宽度。

【定义】

SS928V100:

#define OT_RGN_LINE_MAX_THICK               8

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_LINE_MAX_THICK                7

【成员】

无。

【注意事项】

LINE不支持奇数像素线宽,此值为实际宽度的一半。

【相关数据类型及接口】

无。

OT_RGN_LINE_POINT_NUM

【说明】

定义LINE区域坐标点数量。

【定义】

#define OT_RGN_LINE_POINT_NUM                2

【成员】

无。

【注意事项】

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MIN_X

【说明】

定义MOSAIC矩形区域起始位置坐标点X坐标最小值。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/:

#define OT_RGN_MOSAIC_MIN_X                0

SS928V100:

#define OT_RGN_MOSAIC_MIN_X                (-8192)

SS626V100:

#define OT_RGN_MOSAIC_MIN_X                (-16384)

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MIN_Y

【说明】

定义MOSAIC矩形区域起始位置坐标点Y坐标最小值。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101:

#define OT_RGN_MOSAIC_MIN_Y                0

SS928V100/SS626V100:

#define OT_RGN_MOSAIC_MIN_Y                (-8192)

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MAX_X

【说明】

定义MOSAIC矩形区域起始位置坐标点X坐标最大值。

【定义】

SS928V100:

#define OT_RGN_MOSAIC_MAX_X                  8188

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_MOSAIC_MAX_X                 16380

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MAX_Y

【说明】

定义MOSAIC矩形区域起始位置坐标点Y坐标最大值。

【定义】

#define OT_RGN_MOSAIC_MAX_Y                8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MIN_WIDTH

【说明】

定义MOSAIC矩形区域的最小宽度。

【定义】

#define OT_RGN_MOSAIC_MIN_WIDTH               8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MIN_HEIGHT

【说明】

定义MOSAIC矩形区域的最小高度。

【定义】

#define OT_RGN_MOSAIC_MIN_HEIGHT                8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MAX_WIDTH

【说明】

定义MOSAIC矩形区域的最大宽度。

【定义】

SS928V100:

#define OT_RGN_MOSAIC_MAX_WIDTH              8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_MOSAIC_MAX_WIDTH               16384

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAIC_MAX_HEIGHT

【说明】

定义MOSAIC矩形区域的最大高度。

【定义】

#define OT_RGN_MOSAIC_MAX_HEIGHT          8192

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MIN_X

【说明】

定义MOSAICEX矩形区域起始位置坐标点X坐标最小值。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101:

#define OT_RGN_MOSAICEX_MIN_X                0

SS928V100/SS626V100:

#define OT_RGN_MOSAICEX_MIN_X              (-16384)

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MIN_Y

【说明】

定义MOSAICEX矩形区域起始位置坐标点Y坐标最小值。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101:

#define OT_RGN_MOSAICEX_MIN_Y                0

SS928V100/SS626V100:

#define OT_RGN_MOSAICEX_MIN_Y              (-8192)

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MAX_X

【说明】

定义MOSAICEX矩形区域起始位置坐标点X坐标最大值。

【定义】

#define OT_RGN_MOSAICEX_MAX_X                 16380

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MAX_Y

【说明】

定义MOSAICEX矩形区域起始位置坐标点Y坐标最大值。

【定义】

#define OT_RGN_MOSAICEX_MAX_Y                8190

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MIN_WIDTH

【说明】

定义MOSAICEX矩形区域的最小宽度。

【定义】

#define OT_RGN_MOSAICEX_MIN_WIDTH               8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MIN_HEIGHT

【说明】

定义MOSAICEX矩形区域的最小高度。

【定义】

#define OT_RGN_MOSAICEX_MIN_HEIGHT                8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MAX_WIDTH

【说明】

定义MOSAICEX矩形区域的最大宽度。

【定义】

SS928V100:

#define OT_RGN_MOSAICEX_MAX_WIDTH              8192

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

#define OT_RGN_MOSAICEX_MAX_WIDTH               16384

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MOSAICEX_MAX_HEIGHT

【说明】

定义MOSAICEX矩形区域的最大高度。

【定义】

#define OT_RGN_MOSAICEX_MAX_HEIGHT          8192

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MIN_X

【说明】

定义CORNER_RECTEX起始位置坐标点X坐标最小值。

【定义】

#define OT_RGN_CORNER_RECTEX_MIN_X                0

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MIN_Y

【说明】

定义CORNER_RECTEX起始位置坐标点Y坐标最小值。

【定义】

#define OT_RGN_CORNER_RECTEX_MIN_Y                0

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_X

【说明】

定义CORNER_RECTEX起始位置坐标点X坐标最大值。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_X                 16382

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_Y

【说明】

定义CORNER_RECTEX起始位置坐标点Y坐标最大值。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_Y                8190

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_WIDTH

【说明】

定义CORNER_RECTEX的最大宽度。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_WIDTH               8192

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_HEIGHT

【说明】

定义CORNER_RECTEX的最大高度。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_HEIGHT          8192

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MIN_HOR_LEN

【说明】

定义CORNER_RECTEX最小水平线长度。

【定义】

#define OT_RGN_CORNER_RECTEX_MIN_HOR_LEN               2

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MIN_VER_LEN

【说明】

定义CORNER_RECTEX最小垂直线长度。

【定义】

#define OT_RGN_CORNER_RECTEX_MIN_VER_LEN                2

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_HOR_LEN

【说明】

定义CORNER_RECTEX的最大水平线长度。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_HOR_LEN               8192

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_VER_LEN

【说明】

定义CORNER_RECTEX的最大垂直线长度。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_VER_LEN          8192

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MIN_THICK

【说明】

定义CORNER_RECTEX的最小线宽。

【定义】

#define OT_RGN_CORNER_RECTEX_MIN_THICK               2

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_CORNER_RECTEX_MAX_THICK

【说明】

定义CORNER_RECTEX的最大线宽。

【定义】

#define OT_RGN_CORNER_RECTEX_MAX_THICK          16

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_VENC_MAX_OVERLAY_NUM

【说明】

定义一个VENC通道的最大叠加OVERLAY区域的个数。

【定义】

#define OT_RGN_VENC_MAX_OVERLAY_NUM          8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_PCIV_MAX_OVERLAYEX_NUM

【说明】

定义一个PCIV通道最大叠加OVERLAYEX区域的个数。

【定义】

#define OT_RGN_PCIV_MAX_OVERLAYEX_NUM          1

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_OVERLAY_NUM

【说明】

定义一个VPSS组的最大叠加OVERLAY区域的个数。

【定义】

#define OT_RGN_VPSS_MAX_OVERLAY_NUM         8

【成员】

无。

【注意事项】

SS928V100不支持此宏。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_OVERLAYEX_NUM

【说明】

定义一个VPSS通道的最大叠加OVERLAYEX区域的个数。

【定义】

#define OT_RGN_VPSS_MAX_OVERLAYEX_NUM          8

【成员】

无。

【注意事项】

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_COVER_NUM

【说明】

定义一个VPSS组最大叠加COVER区域的个数。

【定义】

SS928V100:

#define OT_RGN_VPSS_MAX_COVER_NUM          16

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_VPSS_MAX_COVER_NUM          4

【成员】

无。

【注意事项】

对于SS928V100,当叠加的VPSS 组号大于等于OT_VPSS_VGS_GRP_NO(100)时,支持COVER数量为9个(9个矩形,或8个矩形加1个任意四边形)。当叠加的VPSS 组号小于OT_VPSS_VGS_GRP_NO(100)时,支持COVER数量为16个(16个矩形,或8个矩形加8个任意四边形)。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_COVEREX_NUM

【说明】

定义一个VPSS通道最大叠加COVEREX区域的个数。

【定义】

#define OT_RGN_VPSS_MAX_COVEREX_NUM          8

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_LINE_NUM

【说明】

定义一个VPSS通道的最大叠加LINE区域的个数。

【定义】

#define OT_RGN_VPSS_MAX_LINE_NUM         40

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_MOSAIC_NUM

【说明】

定义一个VPSS组的最大叠加MOSAIC区域的个数。

【定义】

#define  OT_RGN_VPSS_MAX_MOSAIC_NUM         4

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_MOSAICEX_NUM

【说明】

定义一个VPSS通道的最大叠加MOSAICEX区域的个数。

【定义】

SS928V100:

#define OT_RGN_VPSS_MAX_MOSAICEX_NUM         8

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_VPSS_MAX_MOSAICEX_NUM         4

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VPSS_MAX_CORNER_RECTEX_NUM

【说明】

定义一个VPSS通道最大叠加CORNER_RECTEX区域的个数。

【定义】

#define OT_RGN_VPSS_MAX_CORNER_RECTEX_NUM          32

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_VO_MAX_LINE_NUM

【说明】

定义一个VO通道的最大叠加LINE区域的个数。

【定义】

#define OT_RGN_VO_MAX_LINE_NUM         4

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VO_MAX_OVERLAYEX_NUM

【说明】

定义一个VO通道的最大叠加OVERLAYEX区域的个数。

【定义】

#define OT_RGN_VO_MAX_OVERLAYEX_NUM           1

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VO_MAX_COVEREX_NUM

【说明】

定义一个VO通道的最大叠加COVEREX区域的个数。

【定义】

SS928V100:

#define OT_RGN_VO_MAX_COVEREX_NUM          1

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_RGN_VO_MAX_COVEREX_NUM          4

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_VO_MAX_CORNER_RECTEX_NUM

【说明】

定义一个VO通道最大叠加CORNER_RECTEX区域的个数。

【定义】

#define OT_RGN_VO_MAX_CORNER_RECTEX_NUM          32

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

OT_RGN_VI_MAX_COVER_NUM

【说明】

定义一个VI通道的最大叠加COVER区域的个数。

【定义】

#define OT_RGN_VI_MAX_COVER_NUM          4

【成员】

【注意事项】

SS928V100不支持此宏。

【相关数据类型及接口】

OT_RGN_VI_MAX_COVEREX_NUM

【说明】

定义一个VI通道的最大叠加COVEREX区域的个数。

【定义】

#define OT_RGN_VI_MAX_COVEREX_NUM          16

【成员】

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

OT_RGN_VI_MAX_OVERLAYEX_NUM

【说明】

定义一个VI通道的最大叠加OVERLAYEX区域的个数。

【定义】

#define OT_RGN_VI_MAX_OVERLAYEX_NUM          16

【成员】

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

OT_RGN_AVS_MAX_OVERLAYEX_NUM

【说明】

定义一个AVS通道的最大叠加OVERLAYEX区域的个数。

【定义】

#define OT_RGN_AVS_MAX_OVERLAYEX_NUM          8

【成员】

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

OT_RGN_MCF_MAX_OVERLAYEX_NUM

【说明】

定义一个MCF通道的最大叠加OVERLAYEX区域的个数。

【定义】

#define OT_RGN_MCF_MAX_OVERLAYEX_NUM          8

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_MCF_MAX_COVER_NUM

【说明】

定义一个MCF组最大叠加COVER区域的个数。

【定义】

#define OT_RGN_MCF_MAX_COVER_NUM          9

【成员】

无。

【注意事项】

  • 仅SS928V100支持此宏。

  • 对于SS928V100,支持COVER数量为9个(9个矩形,或8个矩形加1个任意四边形)。

【相关数据类型及接口】

OT_RGN_MCF_MAX_COVEREX_NUM

【说明】

定义一个MCF通道最大叠加COVEREX区域的个数。

【定义】

#define OT_RGN_MCF_MAX_COVEREX_NUM          8

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_MCF_MAX_LINE_NUM

【说明】

定义一个MCF通道的最大叠加LINE区域的个数。

【定义】

#define OT_RGN_MCF_MAX_LINE_NUM         40

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_MCF_MAX_MOSAIC_NUM

【说明】

定义一个MCF组的最大叠加MOSAIC区域的个数。

【定义】

#define OT_RGN_MCF_MAX_MOSAIC_NUM         4

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_MCF_MAX_MOSAICEX_NUM

【说明】

定义一个MCF通道的最大叠加MOSAICEX区域的个数。

【定义】

#define OT_RGN_MCF_MAX_MOSAICEX_NUM         8

【成员】

仅SS928V100支持此宏。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_RGN_MCF_MAX_CORNER_RECTEX_NUM

【说明】

定义一个MCF通道最大叠加CORNER_RECTEX区域的个数。

【定义】

#define OT_RGN_MCF_MAX_CORNER_RECTEX_NUM          32

【成员】

无。

【注意事项】

仅SS928V100支持此宏。

【相关数据类型及接口】

无。

OT_RGN_COORD_X_MAX

【说明】

定义COVER 相对x坐标最大值

【定义】

#define OT_RGN_COORD_X_MAX                   999

【成员】

【注意事项】

【相关数据类型及接口】

无。

OT_RGN_COORD_Y_MAX

【说明】

定义COVER 相对Y坐标最大值

【定义】

#define OT_RGN_COORD_Y_MAX                   999

【成员】

【注意事项】

【相关数据类型及接口】

OT_RGN_COORD_WIDTH_MAX

【说明】

定义COVER 相对宽度最大值

【定义】

#define OT_RGN_COORD_WIDTH_MAX            1000

【成员】

【注意事项】

【相关数据类型及接口】

OT_RGN_COORD_HEIGHT_MAX

【说明】

定义COVER 相对高度最大值。

【定义】

#define OT_RGN_COORD_HEIGHT_MAX            1000

【成员】

【注意事项】

【相关数据类型及接口】

ot_rgn_handle

【说明】

定义区域句柄。

【定义】

typedef td_u32 ot_rgn_handle;

【成员】

成员名称

描述

ot_rgn_handle

区域句柄。

【注意事项】

无。

【相关数据类型及接口】

ot_rgn_handle_grp

【说明】

定义批处理组号。

【定义】

typedef td_u32 ot_rgn_handle_grp;

【成员】

成员名称

描述

ot_rgn_handle_grp

定义批处理区域组号。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_rgn_type

【说明】

定义区域类型。

【定义】

typedef enum {
    OT_RGN_OVERLAY = 0,
    OT_RGN_COVER,
    OT_RGN_OVERLAYEX,
    OT_RGN_COVEREX,
    OT_RGN_LINE,
    OT_RGN_MOSAIC,
    OT_RGN_MOSAICEX,
    OT_RGN_CORNER_RECTEX,
    OT_RGN_BUTT
} ot_rgn_type;

【成员】

成员名称

描述

OT_RGN_OVERLAY

视频叠加区域。

OT_RGN_COVER

视频遮挡区域。

OT_RGN_OVERLAYEX

扩展视频叠加区域。

OT_RGN_COVEREX

扩展视频遮挡区域。

OT_RGN_LINE

扩展线形遮挡区域

OT_RGN_MOSAIC

MOSAIC视频区域。

OT_RGN_MOSAICEX

扩展MOSAICEX视频区域。

OT_RGN_CORNER_RECTEX

角框区域,仅SS928V100支持。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_rgn_overlay_qp_info

【说明】

定义叠加区域qp属性结构体。

【定义】

typedef struct {
    td_bool      enable;
    td_bool      is_abs_qp;
    td_s32       qp_val;
} ot_rgn_overlay_qp_info;

【成员】

成员名称

描述

is_abs_qp

是否绝对qp

qp_val

qp值。

当is_abs_qp为TD_TRUE时

取值范围:[0, 51]。

当is_abs_qp为TD_FALSE时

取值范围:[-51, 51]。

enable

是否打开OVERLAY的qp保护。

【注意事项】

仅用于编码中的码率控制,如果对此选项不了解,建议全部设置为0。

【相关数据类型及接口】

无。

ot_rgn_attach_dst

【说明】

定义叠加区域VENC图像的类型。

【定义】

typedef {
    OT_RGN_ATTACH_JPEG_MAIN =0,
    OT_RGN_ATTACH_JPEG_MPF0,
    OT_RGN_ATTACH_JPEG_MPF1,
    OT_RGN_ATTACH_JPEG_BUTT
} ot_rgn_attach_dst;

【成员】

成员名称

描述

OT_RGN_ATTACH_JPEG_MAIN

叠加区域绑定到VENC通道的主图。

OT_RGN_ATTACH_JPEG_MPF0

叠加区域绑定到VENC通道的JPEGE协议的MPF0图。(不支持)

OT_RGN_ATTACH_JPEG_MPF1

叠加区域绑定到VENC通道的JPEGE协议的MPF1图。(不支持)

【注意事项】

  • 当前只支持OVERLAY类型的区域进行设置。

  • OVERLAY类型的区域如果绑定到VENC通道上时,这个属性必须配置。

  • OVERLAY类型的区域如果用于VENC通道的H265或者H264协议,需要将这个属性配置成OT_RGN_ATTACH_JPEG_MAIN。如果是JPEGE协议,则需根据需要进行配置。

【相关数据类型及接口】

ot_rgn_overlay_attr

【说明】

定义叠加区域属性结构体。

【定义】

typedef struct {
    ot_pixel_format pixel_format;
    td_u32 bg_color;
    ot_size size;
    td_u32 canvas_num;
    td_u32 clut[OT_RGN_CLUT_NUM];
} ot_rgn_overlay_attr;

【成员】

成员名称

描述

pixel_format

像素格式。具体描述请参见“系统控制”章节。

取值范围:

OT_PIXEL_FORMAT_ARGB_1555

OT_PIXEL_FORMAT_ARGB_4444

OT_PIXEL_FORMAT_ARGB_8888(VENC不支持)

OT_PIXEL_FORMAT_ARGB_CLUT2

OT_PIXEL_FORMAT_ARGB_CLUT4

bg_color

区域背景色。

取值范围:当像素格式为OT_PIXEL_FORMAT_ARGB_CLUT2,取值范围:[0,3]

动态属性。

OT_PIXEL_FORMAT_ARGB_CLUT4,取值范围:[0,15]

动态属性。

ot_size

区域的高宽。

取值范围:

宽度:[2, OT_RGN_OVERLAY_MAX_WIDTH],要求以2对齐。

高度:[2, OT_RGN_OVERLAY_MAX_HEIGHT],要求以2对齐。

canvas_num

区域的内存数量

取值范围:

[1, OT_RGN_MAX_BUF_NUM]

clut[OT_RGN_CLUT_NUM]

定义RGB颜色值。

个数:OT_RGN_CLUT_NUM

范围:[0x0~0xFFFFFF]。

像素为OT_PIXEL_FORMAT_ARGB_CLUT2或OT_PIXEL_FORMAT_ARGB_CLUT4时,才进行参数范围检查。

动态属性。

【注意事项】

  • pixel_format、size在调用ss_mpi_rgn_attach_to_chn后,ss_mpi_rgn_detach_from_chn之前为静态变量。

  • OVERLAY的宽高与该区域分配的内存大小相关,建议按实际需要设置区域的宽高,以免造成内存浪费。

  • canvas_num 建议设置为2。

【相关数据类型及接口】

无。

ot_rgn_overlay_chn_attr

【说明】

定义叠加区域的通道显示属性。

【定义】

typedef struct {
    ot_point point;
    td_u32 fg_alpha;
    td_u32 bg_alpha;
    td_u32 layer;
    ot_rgn_overlay_qp_info qp_info;
    ot_rgn_attach_dst dst;
} ot_rgn_overlay_chn_attr;

【成员】

OVERLAY描述:

成员名称

描述

point

区域位置。

取值范围:

水平位置X:[0, OT_RGN_OVERLAY_MAX_X],要求以2对齐。

垂直位置Y:[0, OT_RGN_OVERLAY_MAX_Y],要求以2对齐。

动态属性。

fg_alpha

Alpha位为1的像素点的透明度。也称前景Alpha。

取值范围:VENC [0, 128],VPSS[0,255]。取值越小,越透明。

动态属性。

bg_alpha

Alpha位为0的像素点的透明度。也称背景Alpha。

取值范围:VENC [0, 128],VPSS[0,255]。取值越小,越透明。

动态属性。

layer

区域层次。

取值范围与各模块最多能支持的OVERLAY个数相关,从0开始到通道支持区域最大个数减1。值越大,层次越高。

动态属性。

qp_info

此区域编码时使用的qp值,仅支持VENC。

取值范围:参见结构体ot_rgn_overlay_qp_info。

动态属性。

ot_rgn_attach_dst

定义叠加区域VENC图像的类型,仅支持VENC

取值范围:参见枚举ot_rgn_attach_dst。

静态属性。

【注意事项】

建议用户把OVERLAY的起始位置和宽高限定为16对齐。如图1所示,由于该OVERLAY的宽高不是16对齐,就会出现一个宏块有两个qp的情况,比如宏块A会有region块的qp以及编码计算出来的qp。但是一个宏块只能有一个qp,编码器会选择region的qp,如果宏块A的qp(即region的qp)和它的相邻宏块B的qp相差较大,会导致region区域周边出现图像质量不一致的现象

图 1 OVERLAY的宽高非16对齐示意图

  • 区域内存信息为OT_PIXEL_FORMAT_ARGB_1555格式时,解决方案将会扩展Alpha值。当Alpha位为1时,使用fg_alpha进行透明度叠加;当Alpha位为0时,使用bg_alpha进行透明度叠加。

  • 0表示全透明;128表示不透明。

【相关数据类型及接口】

无。

ot_rgn_cover_chn_attr

【说明】

定义遮挡区域的通道显示属性。

【定义】

typedef struct {
    ot_cover cover;
    td_u32 layer;
    ot_coord coord;
} ot_rgn_cover_chn_attr;

【成员】

成员名称

描述

layer

区域层次。

取值范围与各模块最多能支持的COVER个数相关,从0开始到通道支持区域最大个数减1。值越大,层次越高。

动态属性。

coord

区域坐标类型。

0:绝对坐标

1:相对坐标

详见“系统控制”中ot_coord结构体。

cover

COVER属性,详见“系统控制”中ot_cover结构体。

其中rect表示区域位置和宽高,取值范围如下

水平位置X:

[OT_RGN_COVER_MIN_X, OT_RGN_COVER_MAX_X],要求以2对齐。

垂直位置Y:

[OT_RGN_COVER_MIN_Y, OT_RGN_COVER_MAX_Y],要求以2对齐。

宽高取值范围:

宽度:[2, OT_RGN_COVER_MAX_WIDTH],要求以2对齐。

高度:[2, OT_RGN_COVER_MAX_HEIGHT],要求以2对齐。

若是相对坐标:

水平位置X:[0, OT_RGN_COORD_X_MAX]。

垂直位置Y:[0, OT_RGN_COORD_Y_MAX]。

宽高取值范围:

宽度:[1,OT_RGN_COORD_WIDTH_MAX]。

高度:[1, OT_RGN_COORD_HEIGHT_MAX]。

【注意事项】

  • 区域颜色数据格式为OT_PIXEL_FORMAT_RGB_888。

  • VPSS、MCF模块支持COVER相对坐标。

【相关数据类型及接口】

  • ot_cover

  • ot_quad_cover

ot_rgn_coverex_chn_attr

【说明】

定义扩展遮挡区域的通道显示属性。

【定义】

typedef struct {
    ot_cover coverex;
    td_u32 layer;
    ot_coord coord;
} ot_coverex_chn_attr;

【成员】

成员名称

描述

coverex

COVER属性,详见“系统控制”中ot_cover结构体。

其中rect表示区域位置和宽高,取值范围如下

水平位置X:

[OT_RGN_COVEREX_MIN_X, OT_RGN_COVEREX_MAX_X],要求以2对齐。

垂直位置Y:

[OT_RGN_COVEREX_MIN_Y, OT_RGN_COVEREX_MAX_Y],要求以2对齐。

宽高取值范围:

宽度:[2, OT_RGN_COVEREX_MAX_WIDTH],要求以2对齐。

高度:[2, OT_RGN_COVEREX_MAX_HEIGHT],要求以2对齐。

若是相对坐标:

水平位置X:[0, OT_RGN_COORD_X_MAX]

垂直位置Y:[0, OT_RGN_COORD_Y_MAX]

宽高取值范围:

宽度:[1, OT_RGN_COORD_WIDTH_MAX]

高度:[1, OT_RGN_COORD_HEIGHT_MAX]

layer

区域层次。

取值范围与各模块最多能支持的COVEREX个数相关,从0开始到通道支持区域最大个数减1。值越大,层次越高。

动态属性。

coord

区域坐标类型。

0:绝对坐标

1:相对坐标

详见“系统控制”中ot_coord结构体

【注意事项】

  • 区域颜色数据格式为OT_PIXEL_FORMAT_RGB_888。

  • 仅当ot_cover_type(此接口请参考第2章“系统控制”)设置为OT_COVER_RECT,且attach到VPSS模块时支持相对坐标,且要使用VPSS接口ss_mpi_vpss_set_mod_param(此接口请参考第5章“视频处理子系统”)设置coverex_ratio_support为TRUE,否则设置无效。

【相关数据类型及接口】

ot_rgn_line_chn_attr

【说明】

定义线性遮挡区域的通道显示属性。

【定义】

typedef struct {
    td_u32 thick;
    td_u32 color;
    ot_point points[OT_RGN_LINE_POINT_NUM];
} ot_rgn_line_chn_attr;

【成员】

成员名称

描述

thick

线宽,最小为OT_RGN_LINE_MIN_THICK,最大为OT_RGN_LINE_MAX_THICK,实际生效的值(显示效果、PROC信息、LOG信息)是设置值的两倍

color

线型区域颜色,支持RGB888格式,范围0-0xffffff

points[OT_RGN_LINE_POINT_NUM]

坐标数组,保存线的起点和终点坐标,要求以2对齐

X坐标范围是[OT_RGN_LINE_MIN_X,OT_RGN_LINE_MAX_X],

Y坐标范围是[OT_RGN_LINE_MIN_Y,OT_RGN_LINE_MAX_Y],

【注意事项】

区域颜色数据格式为OT_PIXEL_FORMAT_RGB_888。

【相关数据类型及接口】

OT_RGN_LINE_POINT_NUM

ot_rgn_overlayex_attr

【说明】

定义扩展叠加区域属性结构体。

【定义】

typedef struct {
    ot_pixel_format pixel_format;
    td_u32 bg_color;
    ot_size size;
    td_u32 canvas_num;
    td_u32 clut[OT_RGN_CLUT_NUM];
} ot_rgn_overlayex_attr;

【成员】

成员名称

描述

pixel_format

像素格式。具体描述请参见“系统控制”章节。

取值范围:

OT_PIXEL_FORMAT_ARGB_1555;

OT_PIXEL_FORMAT_ARGB_4444;

OT_PIXEL_FORMAT_ARGB_8888;

OT_PIXEL_FORMAT_ARGB_CLUT2;

OT_PIXEL_FORMAT_ARGB_CLUT4。

bg_color

区域背景色。

当像素格式为OT_PIXEL_FORMAT_ARGB_CLUT2,取值范围:[0,3]。

当像素格式为OT_PIXEL_FORMAT_ARGB_CLUT4,取值范围:[0,15]。

动态属性。

size

区域的高宽。

取值范围:

宽度:[2, OT_RGN_OVERLAYEX_MAX_WIDTH],要求以2对齐。

高度:[2, OT_RGN_OVERLAYEX_MAX_HEIGHT],要求以2对齐。

canvas_num

区域的内存数量

取值范围:[1, OT_RGN_MAX_BUF_NUM]

clut[OT_RGN_CLUT_NUM]

定义RGB颜色值。

个数:OT_RGN_CLUT_NUM

范围:[0x0, 0xffffffff]。

像素为OT_PIXEL_FORMAT_ARGB_CLUT2或者OT_PIXEL_FORMAT_ARGB_CLUT4时,才进行参数范围检查。

动态属性。

【注意事项】

  • pixel_format、size只在调用ss_mpi_rgn_attach_to_chn后,ss_mpi_rgn_detach_from_chn之前为静态变量。

  • OVERLAYEX的宽高与该区域分配的内存大小相关,建议按实际需要设置区域的宽高,以免造成内存浪费。

  • clut\OT_RGN_CLUT_NUM],RGB颜色查表属性,用于OVERLAYEX设置RGN颜色值。

【相关数据类型及接口】

无。

ot_rgn_overlayex_chn_attr

【说明】

定义扩展叠加区域的通道显示属性。

【定义】

typedef struct {
    ot_point point;
    td_u32 fg_alpha;
    td_u32 bg_alpha;
    td_u32 layer;
} ot_rgn_overlayex_chn_attr;

【成员】

成员名称

描述

point

区域位置。

OVERLAYEX位置取值范围:

水平位置X:[OT_RGN_OVERLAYEX_MIN_X, OT_RGN_OVERLAYEX_MAX_X],要求以2对齐。

垂直位置Y:[OT_RGN_OVERLAYEX_MIN_Y, OT_RGN_OVERLAYEX_MAX_Y],要求以2对齐。

动态属性。

fg_alpha

Alpha位为1的像素点的透明度。也称前景Alpha。

取值范围:[0, 255]。取值越小,越透明。

动态属性。

bg_alpha

Alpha位为0的像素点的透明度。也称背景Alpha。

取值范围:[0, 255]。取值越小,越透明。

动态属性。

layer

区域层次。

取值范围与各模块最多能支持的OVERLAYEX个数相关,从0开始到通道支持区域最大个数减1。值越大,层次越高。

动态属性。

【注意事项】

  • 区域内存信息为OT_PIXEL_FORMAT_ARGB_1555格式时,解决方案将会扩展Alpha值。当Alpha位为1时,使用fg_alpha进行透明度叠加;当Alpha位为0时,使用bg_alpha进行透明度叠加。

  • 0表示全透明;255表示不透明。

【相关数据类型及接口】

无。

ot_rgn_type_attr

【说明】

定义区域属性联合体。

【定义】

typedef union {
    ot_rgn_overlay_attr      overlay;
    ot_rgn_overlayex_attr    overlayex;
} ot_rgn_type_attr;

【成员】

成员名称

描述

overlay

通道叠加区域属性。

overlayex

扩展叠加区域属性。

【注意事项】

由于COVER、COVEREX、LINE、MOSAIC、MOSAICEX没有区域属性,所以此联合体不包含相关成员。

【相关数据类型及接口】

无。

ot_rgn_type_chn_attr

【说明】

定义区域通道显示属性联合体。

【定义】

typedef union {
    ot_rgn_overlay_chn_attr      overlay_chn;
    ot_rgn_cover_chn_attr        cover_chn;
    ot_rgn_line_chn_attr         line_chn;
    ot_rgn_coverex_chn_attr      coverex_chn;
    ot_rgn_overlayex_chn_attr    overlayex_chn;
    ot_rgn_mosaic_chn_attr       mosaic_chn;
    ot_rgn_mosaicex_chn_attr       mosaicex_chn;
    ot_rgn_corner_rect_chn_attr 	corner_rectex_chn;
} ot_rgn_type_chn_attr;

【成员】

成员名称

描述

overlay_chn

叠加区域通道显示属性。

overlayex_chn

扩展叠加区域通道显示属性。

cover_chn

遮挡区域通道显示属性。

coverex_chn

扩展遮挡区域通道显示属性。

line_chn

扩展的线形遮挡区域显示属性。

mosaic_chn

MOSAIC显示属性。

mosaicex_chn

扩展的MOSAICEX显示属性。

corner_rectex_chn

扩展的角框显示属性(仅SS928V100支持)

【注意事项】

无。

【相关数据类型及接口】

无。

ot_rgn_attr

【说明】

定义区域属性结构体。

【定义】

typedef struct {
    ot_rgn_type type;
    ot_rgn_type_attr attr;
} ot_rgn_attr;

【成员】

成员名称

描述

type

区域类型。

attr

区域属性。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_rgn_mosaic_chn_attr

【说明】

定义MOSAIC区域属性结构体。

【定义】

typedef struct {
    ot_rect rect;
    ot_mosaic_blk_size blk_size;
    td_u32 layer;
} ot_rgn_mosaic_chn_attr;

【成员】

成员名称

描述

rect

区域位置,宽高。

位置取值范围:

  • 水平位置X:

[OT_RGN_MOSAIC_MIN_X, OT_RGN_MOSAIC_MAX_X],要求以4对齐。

  • 垂直位置Y:

[OT_RGN_MOSAIC_MIN_Y, OT_RGN_MOSAIC_MAX_Y],要求以2对齐。

宽高取值范围:

  • 宽度:[OT_RGN_MOSAIC_MIN_WIDTH, OT_RGN_MOSAIC_MAX_WIDTH],要求以4对齐。
  • 高度:[OT_RGN_MOSAIC_MIN_HEIGHT, OT_RGN_MOSAIC_MAX_HEIGHT],要求以2对齐。

动态属性。

blk_size

区域块大小,ot_mosaic_blk_size详细信息请参考“系统控制”章节。

layer

MOSAIC区域层次。

取值范围与各模块最多能支持的MOSAIC个数相关,从0开始到支持区域最大个数减1。值越大,层次越高。

动态属性。

【注意事项】

  • 在一个组内实现多个MOSAIC时,该组内所有MOSAIC的blk_size以生效的layer最大的blk_size为准;当layer相同时,以生效的最后attach的blk_size为准。

  • 解决方案blk_size范围如下。

解决方案

blk_size范围

SS524V100/SS522V101/SS528V100/SS625V100

OT_MOSAIC_BLK_SIZE_8- OT_MOSAIC_BLK_SIZE_32

SS928V100

OT_MOSAIC_BLK_SIZE_16- OT_MOSAIC_BLK_SIZE_64

SS626V100

OT_MOSAIC_BLK_SIZE_8- OT_MOSAIC_BLK_SIZE_64

【相关数据类型及接口】

ot_mosaic_blk_size

ot_rgn_mosaicex_chn_attr

【说明】

定义MOSAICEX区域属性结构体。

【定义】

typedef struct {
    ot_rect rect;
    ot_mosaic_blk_size   blk_size;
    td_u32 layer;
} ot_rgn_mosaicex_chn_attr;

【成员】

成员名称

描述

rect

区域位置,宽高。

位置取值范围:

  • 水平位置X:

[OT_RGN_MOSAICEX_MIN_X, OT_RGN_MOSAICEX_MAX_X],要求以4对齐。

  • 垂直位置Y:

[OT_RGN_MOSAICEX_MIN_Y, OT_RGN_MOSAICEX_MAX_Y],要求以2对齐。

宽高取值范围:

  • 宽度:[OT_RGN_MOSAICEX_MIN_WIDTH, OT_RGN_MOSAICEX_MAX_WIDTH],要求以4对齐。
  • 高度:[OT_RGN_MOSAICEX_MIN_HEIGHT, OT_RGN_MOSAICEX_MAX_HEIGHT],要求以2对齐。

动态属性。

blk_size

区域块大小,ot_mosaic_blk_size详细信息请参考“系统控制”章节。

layer

MOSAICEX区域层次。

取值范围与各模块最多能支持的MOSAICEX个数相关,从0开始到支持区域最大个数减1。值越大,层次越高。

动态属性。

【注意事项】

  • MOSAICEX通道间相互独立,通道内各区域的blk_size可以不同。

  • blk_size范围规格和MOSAIC规格一致。

【相关数据类型及接口】

ot_mosaic_blk_size

ot_rgn_corner_rect_chn_attr

【说明】

定义CORNER_RECTEX区域属性结构体。

【定义】

typedef struct {
    ot_corner_rect               corner_rect;
    ot_corner_rect_attr           corner_rect_attr;
    td_u32                      layer;
} ot_rgn_corner_rect_chn_attr;

【成员】

成员名称

描述

corner_rect

角框位置属性,详见“系统控制”中ot_corner_rect结构体。

其中rect表示区域位置和宽高,取值范围如下

水平位置X:

[OT_RGN_CORNER_RECTEX_MIN_X, OT_RGN_CORNER_RECTEX_MAX_X,要求以2对齐。

垂直位置Y:

[OT_RGN_CORNER_RECTEX_MIN_Y, OT_RGN_CORNER_RECTEX_MAX_Y],要求以2对齐。

宽高取值范围:

宽度:[2, OT_RGN_CORNER_RECTEX_MAX_WIDTH],要求以2对齐。

高度:[2, OT_RGN_CORNER_RECTEX_MAX_HEIGHT],要求以2对齐。

其中hor_len表示水平线长,要求以2对齐,取值范围[OT_RGN_CORNER_RECTEX_MIN_HOR_LEN, OT_RGN_CORNER_RECTEX_MAX_HOR_LEN]

其中ver_len表示垂直线长,要求以2对齐,取值范围[OT_RGN_CORNER_RECTEX_MIN_VER_LEN, OT_RGN_CORNER_RECTEX_MAX_VER_LEN]

其中thick表示线宽,要求以2对齐,取值范围[OT_RGN_CORNER_RECTEX_MIN_THICK, OT_RGN_CORNER_RECTEX_MAX_THICK]

corner_rect_attr

角框属性,详见“系统控制”中ot_corner_rect_attr结构体。

其中color颜色格式为RGB888,取值范围为[0,0xffffff]

layer

区域层级:取值范围与各模块最多能支持的CORNER_RECTEX个数相关,从0开始到通道支持区域最大个数减1。值越大,层次越高。

动态属性。

【注意事项】

  • 仅SS928V100支持此结构体。

  • 区域颜色数据格式为OT_PIXEL_FORMAT_RGB_888。

  • 仅当ot_corner_rect_type(此枚举请参考第2章“系统控制”)设置为OT_CORNER_RECT_TYPE_CORNER时hor_len和ver_len才生效,否则设置无效。

  • 关于角框的其他注意事项参见“视频图形子系统”章节。

【相关数据类型及接口】

ot_rgn_chn_attr

【说明】

定义区域通道显示属性结构体。

【定义】

typedef struct {
    td_bool             is_show;
    ot_rgn_type         type;
    ot_rgn_type_chn_attr attr;
} ot_rgn_chn_attr;

【成员】

成员名称

描述

is_show

区域是否显示。

取值范围:TD_TRUE或者TD_FALSE

动态属性。

type

区域类型。

静态属性。

attr

区域通道显示属性。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_rgn_canvas_info

【说明】

定义画布信息结构体。

【定义】

typedef struct {
    td_phys_addr_t                 phys_addr;
    ot_size                         size;
    td_u32                         stride;
    ot_pixel_format                 pixel_format;
    td_void  ATTRIBUTE            *virt_addr;
} ot_rgn_canvas_info;

【成员】

成员名称

描述

phys_addr

画布物理地址。

virt_addr

画布虚拟地址。

size

画布尺寸。

stride

画布的stride。

pixel_format

画布的像素格式。具体描述请参见“系统控制”章节。

【注意事项】

无。

【相关数据类型及接口】

无。

错误码

区域管理API错误码如下所示。

表 1 区域管理API错误码

错误代码

宏定义

描述

0xa0038001

OT_ERR_RGN_INVALID_DEV_ID

设备ID超出合法范围

0xa0038003

OT_ERR_RGN_INVALID_CHN_ID

通道组号错误或无效区域句柄

0xa0038007

OT_ERR_RGN_ILLEGAL_PARAM

参数超出合法范围

0xa0038008

OT_ERR_RGN_EXIST

重复创建已存在的设备、通道或资源

0xa0038009

OT_ERR_RGN_UNEXIST

试图使用或者销毁不存在的设备、通道或者资源

0xa003800a

OT_ERR_RGN_NULL_PTR

函数参数中有空指针

0xa003800b

OT_ERR_RGN_NOT_CFG

模块没有配置

0xa003800c

OT_ERR_RGN_NOT_SUPPORT

不支持的参数或者功能

0xa003800d

OT_ERR_RGN_NOT_PERM

该操作不允许如试图修改静态配置参数

0xa0038014

OT_ERR_RGN_NO_MEM

分配内存失败,如系统内存不足

0xa0038015

OT_ERR_RGN_NO_BUF

分配缓存失败,如申请的数据缓冲区太大

0xa0038016

OT_ERR_RGN_BUF_EMPTY

缓冲区中无数据

0xa0038017

OT_ERR_RGN_BUF_FULL

缓冲区中数据满

0xa0038018

OT_ERR_RGN_NOT_READY

系统没有初始化或没有加载相应模块

0xa0038021

OT_ERR_RGN_BAD_ADDR

地址非法

0xa0038022

OT_ERR_RGN_BUSY

系统忙