12.07.2015 Views

Hi3520/Hi3515 媒体处理软件 - Open IP Camera Forum

Hi3520/Hi3515 媒体处理软件 - Open IP Camera Forum

Hi3520/Hi3515 媒体处理软件 - Open IP Camera Forum

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

雅 仪 科 技 ——【 嵌 入 式 智 能 互 联 设 备 】 软 硬 件 方 案 供 应 商 。http://blog.mcuol.com/travellinux, 获 取 更Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考文 档 版 本 06发 布 日 期 2010-08-15部 件 编 码N/A海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司


深 圳 市 海 思 半 导 体 有 限 公 司 为 客 户 提 供 全 方 位 的 技 术 支 持 , 用 户 可 与 就 近 的 海 思 办 事 处 联 系 , 也 可 直 接 与 公司 总 部 联 系 。深 圳 市 海 思 半 导 体 有 限 公 司地 址 : 深 圳 市 龙 岗 区 坂 田 华 为 基 地 华 为 电 气 生 产 中 心 邮 编 :518129网 址 :http://www.hisilicon.com客 户 服 务 电 话 : +86-755-28788858客 户 服 务 传 真 : +86-755-28357515客 户 服 务 邮 箱 :support@hisilicon.com版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司 2009~2010。 保 留 一 切 权 利 。非 经 本 公 司 书 面 许 可 , 任 何 单 位 和 个 人 不 得 擅 自 摘 抄 、 复 制 本 文 档 内 容 的 部 分 或 全 部 , 并 不 得 以 任 何 形 式传 播 。商 标 声 明、 、 海 思 和 其 他 海 思 商 标 均 为 深 圳 市 海 思 半 导 体 有 限 公 司 的 商 标 。本 文 档 提 及 的 其 他 所 有 商 标 或 注 册 商 标 , 由 各 自 的 所 有 人 拥 有 。注 意由 于 产 品 版 本 升 级 或 其 他 原 因 , 本 文 档 内 容 会 不 定 期 进 行 更 新 。 除 非 另 有 约 定 , 本 文 档 仅 作 为 使 用 指 导 ,本 文 档 中 的 所 有 陈 述 、 信 息 和 建 议 不 构 成 任 何 明 示 或 暗 示 的 担 保 。海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考前 言前言概 述本 文 为 使 用 Hi3520/Hi3515 媒 体 处 理 芯 片 进 行 开 发 的 程 序 员 而 写 , 目 的 是 供 您 在 开 发 过程 中 查 阅 媒 体 处 理 软 件 开 发 包 的 各 种 参 考 信 息 , 包 括 API、 头 文 件 、 错 误 码 等 。本 文 档 描 述 了 Hi3520/Hi3515 媒 体 处 理 软 件 的 各 个 API 的 使 用 方 法 , 以 及 相 关 的 数 据 结构 和 错 误 码 。产 品 版 本与 本 文 档 相 对 应 的 产 品 版 本 如 下 。产 品 名 称Hi3520 H.264 编 解 码 处 理 器Hi3515 H.264 编 解 码 处 理 器产 品 版 本V100V100读 者 对 象本 文 档 主 要 适 用 于 以 下 工 程 师 :• 技 术 支 持 工 程 师• 软 件 开 发 工 程 师约 定符 号 约 定在 本 文 中 可 能 出 现 下 列 标 志 , 它 们 所 代 表 的 含 义 如 下 。符 号说 明表 示 有 高 度 潜 在 危 险 , 如 果 不 能 避 免 , 会 导 致 人 员 死 亡 或严 重 伤 害 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司1


前言Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考符 号说 明表 示 有 中 度 或 低 度 潜 在 危 险 , 如 果 不 能 避 免 , 可 能 导 致 人员 轻 微 或 中 等 伤 害 。表 示 有 潜 在 风 险 , 如 果 忽 视 这 些 文 本 , 可 能 导 致 设 备 损 坏 、数 据 丢 失 、 设 备 性 能 降 低 或 不 可 预 知 的 结 果 。表 示 能 帮 助 您 解 决 某 个 问 题 或 节 省 您 的 时 间 。表 示 是 正 文 的 附 加 信 息 , 是 对 正 文 的 强 调 和 补 充 。通 用 格 式 约 定格 式说 明宋 体 正 文 采 用 宋 体 表 示 。黑 体 一 级 、 二 级 、 三 级 标 题 采 用 黑 体 。楷 体警 告 、 提 示 等 内 容 一 律 用 楷 体 , 并 且 在 内 容 前 后 增 加 线 条与 正 文 隔 离 。“Terminal Display” 格 式 “Terminal Display” 格 式 表 示 屏 幕 输 出 信 息 。 此 外 , 屏 幕输 出 信 息 中 夹 杂 的 用 户 从 终 端 输 入 的 信 息 采 用 加 粗 字 体表 示 。“” 用 双 引 号 表 示 文 件 路 径 。 如 “C:\Program Files\Huawei”。命 令 行 格 式 约 定格 式粗 体斜 体意 义命 令 行 关 键 字 ( 命 令 中 保 持 不 变 、 必 须 照 输 的 部 分 ) 采 用加 粗 字 体 表 示 。命 令 行 参 数 ( 命 令 中 必 须 由 实 际 值 进 行 替 代 的 部 分 ) 采 用斜 体 表 示 。[ ] 表 示 用 “[ ]” 括 起 来 的 部 分 在 命 令 配 置 时 是 可 选 的 。{ x | y | ... } 表 示 从 两 个 或 多 个 选 项 中 选 取 一 个 。[ x | y | ... ] 表 示 从 两 个 或 多 个 选 项 中 选 取 一 个 或 者 不 选 。{ x | y | ... } * 表 示 从 两 个 或 多 个 选 项 中 选 取 多 个 , 最 少 选 取 一 个 , 最 多选 取 所 有 选 项 。2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考前 言格 式意 义[ x | y | ... ] * 表 示 从 两 个 或 多 个 选 项 中 选 取 多 个 或 者 不 选 。数 值 单 位 约 定数 据 容 量 、 频 率 、 数 据 速 率 等 的 表 达 方 式 说 明 如 下 。类 别 符 号 对 应 的 数 值1K 1024数 据 容 量 ( 如 RAM 容 量 )1M 1,048,5761G 1,073,741,8241k 1000频 率 、 数 据 速 率 等1M 1,000,0001G 1,000,000,000地 址 、 数 据 的 表 达 方 式 说 明 如 下 。符 号 举 例 说 明0x 0xFE04、0x18 用 16 进 制 表 示 的 数 据 值 、 地 址 值 。0b 0b000、0b00 00000000 表 示 2 进 制 的 数 据 值 以 及 2 进 制 序 列( 寄 存 器 描 述 中 除 外 )。X 00X、1XX 在 数 据 的 表 达 方 式 中 ,X 表 示 0 或 1。例 如 :00X 表 示 000 或 001;1XX 表 示 100、101、110 或 111。修 订 记 录修 订 记 录 累 积 了 每 次 文 档 更 新 的 说 明 。 最 新 版 本 的 文 档 包 含 以 前 所 有 文 档 版 本 的 更 新 内容 。修 订 日 期 版 本 修 订 说 明2010-08-15 06 第 4 章 视 频 输 出4.3 API 参 考 中 新 增 HI_MPI_VO_SetSolidDraw 和HI_MPI_VO_GetSolidDraw。HI_MPI_VO_EnableVideoLayer 的 【 举 例 】 中 增 加 stRect 的 定义 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3


前言Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考修 订 日 期 版 本 修 订 说 明HI_MPI_VO_ChnPause 的 【 举 例 】 中 代 码 有 更 新 。HI_MPI_VO_SyncGroupStart 的 【 举 例 】 中 删 除 参 数 u64BasePts后 面 原 多 余 的 部 分 。HI_MPI_VO_GetChnPts 的 【 举 例 】 中 最 后 的 代 码 有 更 新 。4.4 数 据 类 型 中 新 增 VO_DRAW_CFG_S 和VO_DRAW_ATTR_S。第 5 章 视 频 前 处 理5.2 重 要 概 念 中 增 加 CoverEx RegionHI_MPI_VPP_CreateRegion 的 【 注 意 】 中 增 加 “ 扩 展 视 频 遮 挡区 域 ” 的 描 述 。表 5-1 中 增 加 扩 展 视 频 遮 挡 COVEREX 一 列 。5.4 数 据 类 型 增 加 MAX_COVEREX_REGION_NUM、COVEREX_ATTR_S 和 COVEREX_S。REGION_ATTR_U 的 【 定 义 】 和 【 成 员 】 中 新 增 stCoverEx 的定 义 和 描 述 ;【 相 关 数 据 类 型 及 接 口 】 中 增 加COVEREX_ATTR_S。第 10 章 Proc 调 试 信 息10.4 LOG 的 【 调 试 信 息 分 析 】 中 修 改 “cat /proc/umap/mstlog用 于 获 取 Hi3520 的 主 ARM 上 的 log 级 别 信 息 ”。10.6 VO 的 【 调 试 信 息 】 中 修 改 DEV CONFIG 下 Mux 和OutMode、CHN INFO 下 Field、CHN STATUS 下 SndTyp 的 取值 。10.12 VDEC 的 【 参 数 说 明 】 中 补 充 MODULE PARAM 下 nc_alg取 值 为 1 是 默 认 值 的 说 明 。2010-06-29 05 第 2 章 系 统 控 制2.4.1 基 本 数 据 类 型 中 VO 设 备 的 最 大 个 数 由 3 改 为 6, 其 中 包括 3 个 虚 拟 设 备 ; 增 加 VO 设 备 中 物 理 设 备 的 最 大 个 数 、VO最 小 显 示 buffer 数 、VO 最 大 显 示 buffer 数 、VO 最 小 虚 拟 设 备buffer 数 、VO 最 大 虚 拟 设 备 buffer 数 的 定 义 。第 4 章 视 频 输 出HI_MPI_VO_SetPubAttr 的 注 意 中 增 加 “ 虚 拟 设 备 不 受 公 共 属 性限 制 , 因 此 设 置 虚 拟 设 备 属 性 时 该 接 口 返 回 成 功 。” 的 描 述 。HI_MPI_VO_GetScreenFrame 增 加 2 条 注 意 。HI_MPI_VO_DisableVideoLayer 在 【 错 误 码 】 中 增 加 错 误 码HI_ERR_VB_BUSY 并 增 加 一 条 注 意 。HI_MPI_VO_GetScreenFrame 在 【 注 意 】 中 增 加 一 条 注 意 。HI_MPI_VO_SetDispBufLen 函 数 中 u32BufLen 的 参 数 中 增 加 物理 设 备 和 虚 拟 设 备 的 取 值 范 围 ;【 注 意 】 中 缓 冲 长 度 的 默 认 值区 分 物 理 设 备 和 虚 拟 设 备 ; 删 除 “ 缓 冲 长 度 不 是 默 认 值 的 相 关描 述 ”;“ 缓 冲 长 度 越 大 , 即 用 户 可 以 更 长 时 间 的 持 有 显 示 数据 。” 改 为 “ 缓 冲 长 度 越 大 , 即 用 户 可 以 持 有 的 显 示 图 像 越 多 。”;4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考前 言修 订 日 期 版 本 修 订 说 明新 增 2 条 注 意 事 项 。VO_DEV 的 成 员 VO_DEV 的 描 述 中 增 加 取 值 3~5 对 应 的 设备 ;【 注 意 】 中 增 加 关 于 虚 拟 设 备 的 注 意 。VO_VIDEO_LAYER_ATTR_S 的 [ 注 意 ] 中 增 加 关 于 虚 拟 设 备 的注 意 。第 6 章 视 频 编 码HI_MPI_VENC_RegisterChn 的 【 注 意 】 中 修 改 同 组 的 主 次 码 流宽 高 必 须 符 合 如 下 约 束 。HI_MPI_VENC_SetH264eRcPara 的 【 注 意 】 中 增 加 3 条 事 项 。HI_MPI_VENC_GetH264eRcPara 的 【 注 意 】 中 增 加 1 条 事 项 。VENC_ATTR_H264_RC_S 的 【 定 义 】 和 【 成 员 】 中 增 加bFrameLostAllow; 修 改 【 成 员 】 中 3 个 成 员 的 描 述 。第 8 章 视 频 解 码8.1 概 述 中 增 加 VDEC 实 现 MJPEG、JPEG 解 码 功 能 的 说 明 。8.2 重 要 概 念 中 图 象 输 出 方 式 中 的 “ 快 速 输 出 ” 改 为 “ 直 接 输出 ”; 增 加 “ 超 大 帧 ” 的 描 述HI_MPI_VDEC_CreateChn 的 【 举 例 】 中 增 加 JPEG 的 举 例 。HI_MPI_VDEC_SetChnAttr 的 【 举 例 】 中 增 加 JPEG 的 举 例 。HI_MPI_VDEC_SendStream 的 【 注 意 】 中 增 加 1 条 事 项 。HI_MPI_VDEC_ResetChn 的 【 注 意 】 中 增 加 1 条 事 项 。增 加 HI_MPI_VDEC_SetChnParam、HI_MPI_VDEC_GetChnParam。8.4 数 据 类 型增 加 VDEC_CHN_PARAM_S。VDEC_ATTR_H264_S 的 成 员 u32RefFrameNum 的 描 述 有 修 改 。第 9 章 音 频修 改 表 9-1 中 AAC Encoder 协 议 的 帧 长 ; 增 加 AAC Encoder 协议 中 对 aacPlus1 和 aacPlus2 的 补 充 说 明 。修 改 表 9-2 和 表 9-3 的 表 描 述 ; 调 整 表 9-2 的 表 达 样 式 ; 统 一将 NO 改 为 Not supported。HI_MPI_AI_SetPubAttr 的 【 注 意 】 中 对 buffer 的 大 小 重 新 定 义 。HI_MPI_AO_SetPubAttr 的 【 注 意 】 中 修 改 “I 2 S 主 模 式 时 , 同一 SIO 下 的 AI 和 AO 设 备 的 时 钟 选 择 配 置 必 须 相 同 ”。HI_MPI_AENC_CreateChn 的 【 注 意 】 中 增 加 对 buffer 的 建 议配 置 值 。HI_MPI_ADEC_CreateChn 的 【 注 意 】 中 增 加 对 buffer 的 建 议配 置 值 。HI_MPI_ADEC_SendStream 的 【 注 意 】 中 增 加 “AAC 解 码 只支 持 stream 方 式 ;LPCM 解 码 只 支 持 pack 方 式 ; 其 他 音 频 格文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5


前言Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考修 订 日 期 版 本 修 订 说 明式 的 解 码 两 种 方 式 都 支 持 , 但 正 式 应 用 中 建 议 只 使 用 pack 方式 ” 的 描 述 。ADEC_ATTR_AMR_S 的 【 定 义 】 有 修 改 。第 10 章 Proc 调 试 信 息10.1 概 述 中 删 除 “ 不 同 版 本 中 , 这 些 调 试 信 息 可 能 不 同 , 现 以Hi3520_SDK_V1.0.2.4 版 本 为 准 ” 的 说 明 ; 修 改 关 于 “Hi3520与 Hi3515 显 示 的 proc 信 息 格 式 ” 的 相 关 描 述 。10.6 VO 增 加 级 联 的 相 关 调 试 信 息 及 参 数 说 明 。10.8 VENC 修 改 VENC CHN STATE 的 UserGet 和 userRls 参 数说 明 。10.12 VDEC 增 加 MODULE PARAM 的 相 关 调 试 信 息 及 参 数 说明 。10.18 H264E 更 新 调 试 信 息 及 参 数 说 明 。10.19 H264D 中 的 Const 增 加 参 数 FrmMax 及 相 应 说 明 、Err Stat增 加 参 数 ErrBigF 及 相 应 说 明 。2010-05-29 04 第 3 章 视 频 输 入修 改 表 3-1 下 的 表 说 明 b 中 色 度 重 采 样 ChromaRes 的 配 置 要 求 ,由 “ 一 般 配 置 为 False 既 可 ” 改 为 “ 详 细 说 明 请 参 考 《Hi3520H.264 编 解 码 处 理 器 用 户 指 南 》, 没 有 特 殊 要 求 则 配 置 为 False。”表 3-1 下 的 关 于 采 集 区 域 CapRect 的 配 置 说 明 中 增 加 “CapRect中 所 有 项 的 取 值 都 必 须 是 偶 数 , 其 中 宽 度 值 还 要 求 必 须 是 4 的整 数 倍 ”。第 4 章 视 频 输 出对 API 进 行 分 类 及 顺 序 调 整 。HI_MPI_VO_SetChnFilter 的 【 描 述 】 中 将 “ 利 用 TDE 单 元 进行 缩 放 ” 改 为 “ 利 用 DSU 单 元 进 行 缩 放 ”; 将 系 统 内 部 提 供滤 波 系 数 的 相 关 说 明 改 为 系 统 提 供 的 滤 波 参 数 和 系 数 的 相 关说 明 ; 将 “ 通 过 此 接 口 可 以 设 置 缩 放 系 数 ” 改 为 “ 设 置 缩 放 类型 ”;【 注 意 】 中 增 加 “ 设 置 enFilterType” 和 “ 当 用 户 对 缩 放效 果 有 特 定 需 求 时 ” 的 注 意 事 项 。HI_MPI_VO_SetZoomInRatio 的 【 注 意 】 中 局 部 放 大 比 例 结 构体 中 的 设 置 值 由 原 来 的 “ 表 示 为 百 分 之 多 少 ” 改 为 “ 表 示 千 分之 多 少 ”, 同 时 删 除 “ 最 后 一 位 表 示 精 度 ” 的 说 明 ; 增 加 “ 当混 合 输 入 的 时 候 , 起 始 坐 标 的 横 坐 标 、 宽 度 在 大 图 像 上 会 自 从以 4 对 齐 ( 向 靠 近 0 的 方 向 )” 的 说 明 。增 加 设 置 有 效 区 处 理 模 式 时 的 视 频 层 属 性 的 相 关 概 念 示 意 图4-2。VO_CHN_FILTER_S 的 【 定 义 】 和 【 成 员 】 中 增 加 enFiltType的 描 述 。增 加 图 4-3 局 部 放 大 原 理 示 意 。第 5 章 视 频 前 处 理6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考前 言修 订 日 期 版 本 修 订 说 明增 加 接 口 HI_MPI_VPP_SetDsuFiltParam 和HI_MPI_VPP_GetDsuFiltParam。接 口 HI_MPI_VPP_SetConf 的 【 注 意 】 中 增 加 关 于 滤 波 参 数 、滤 波 类 型 和 滤 波 系 数 的 描 述 。增 加 DSU_HFILTER_PARAM_NUM、DSU_VFILTER_PARAM_NUM、DSU_HSCALE_FILTER_E 和DSU_FILTER_PARAM_S。VIDEO_PREPROC_CONF_S 的 【 定 义 】 和 【 成 员 】 中 增 加enFilterType 的 相 关 内 容 ;【 注 意 事 项 】 中 增 加 滤 波 类 型 、 滤 波参 数 和 滤 波 系 数 的 描 述 。第 6 章 视 频 编 码增 加 接 口 HI_MPI_VENC_SetMeParam 和HI_MPI_VENC_GetMeParam。增 加 数 据 类 型 VENC_ME_PARAM_H264_S 和VENC_ME_PARAM_S。HI_MPI_VENC_SetParamSet 的 【 注 意 】 中 增 加 “ 系 统 有 默 认 的编 码 参 数 , 一 般 情 况 下 无 需 调 用 该 接 口 进 行 设 置 ” 的 说 明 。VENC_PARAM_SET_H264_S 的 【 定 义 】 和 【 成 员 】 中 增 加 9各 H.264 协 议 语 法 元 素 的 成 员 并 修 改 原 成 员chroma_qp_index_offset 的 描 述 ;【 注 意 事 项 】 中 增 加 “ 编 码 参数 的 默 认 值 , 未 在 本 文 档 描 述 。 请 通 过 接 口HI_MPI_VENC_GetParamSet() 查 询 最 新 默 认 参 数 ” 的 描 述 。VENC_ATTR_H264_RC_S 的 【 定 义 】 和 【 成 员 】 中 增 加s32MaxQP 和 bFrameFixQP 的 相 关 描 述 。第 9 章 音 频表 9-1 前 增 加 Hi3520、Hi3515 SDK 音 频 部 分 的 编 解 码 功 能 说明 。表 9-4 前 增 加 海 思 语 音 帧 结 构 的 说 明 。HI_MPI_AI_SetPubAttr 的 【 注 意 】 中 主 模 式 下 支 持 的 采 样 率 配置 ; 增 加 I 2 S 主 模 式 时 的 相 关 说 明 。第 10 章 Proc 调 试 信 息 说 明10.1 概 述 的 【 信 息 查 看 方 法 】 增 加 “ 使 用 其 他 常 用 的 文 件 操 作命 令 查 看 信 息 ” 的 说 明 。10.2 SYS 的 【 调 试 信 息 】 和 【 参 数 说 明 】 中 删 除 参 数 PinMuxCtl。10.4 LOG 的 【 调 试 信 息 分 析 】 中 增 加 描 述 。10.5 VI、10.6 VO、10.7 DSU 的 【 调 试 信 息 】 和 【 参 数 说 明 】更 新 。10.8 VENC 的 【 参 数 说 明 】 中 的 RlFrm 和 FrmU 参 数 说 明 有 更改 。10.9 GROUP、10.11 MD 的 【 调 试 信 息 】 有 更 新 。10.13 AI 的 【 调 试 信 息 】 和 【 参 数 说 明 】 更 新 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7


前言Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考修 订 日 期 版 本 修 订 说 明10.18 H264E【 参 数 说 明 】 中 rcv、encode、disc、skip、bufLeak、rcLost、back 有 更 新 。10.19 H264D 的 【 参 数 说 明 】 中 ErrNalu、LostPic、ErrSlc、LostSlc、Overlap、ErrW、ErrH、ErrRef、ErrCncl、ErrBigF、RecvPic、DecPic、NoFB 有 更 新 。2010-04-29 03 第 4 章 视 频 输 出增 加 以 下 接 口 及 相 关 数 据 结 构 :HI_MPI_VO_SetDispBufLen、HI_MPI_VO_GetDispBufLen第 5 章 视 频 前 处 理增 加 ViOverlay 的 相 关 使 用 说 明 的 数 据 结 构 描 述 。第 6 章 视 频 编 码增 加 以 下 接 口 及 相 关 数 据 结 构 :HI_MPI_VENC_SetParamSet、HI_MPI_VENC_GetParamSet;HI_MPI_VENC_CreateChn 接 口 描 述 中 增 加 分 数 帧 率 的 配 置 说明 。第 9 章 音 频修 改 结 构 体 AIO_ATTR_S 中 u32ClkSel 项 的 描 述第 10 章 Proc 信 息更 新 VI、VPP、VO、AUDIO 等 模 块 的 Proc 调 试 信 息 。8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考前 言修 订 日 期 版 本 修 订 说 明2010-03-27 02 第 3 章 视 频 输 入增 加 接 口 HI_MPI_VI_ClearChnMinorAttr。第 4 章 视 频 输 出增 加 以 下 接 口 及 相 应 数 据 结 构 :HI_MPI_VO_SetValidImgRect、HI_MPI_VO_GetValidImgRect、HI_MPI_VO_SetZoomInRatio、HI_MPI_VO_GetZoomInRatio、HI_MPI_VO_SetScreenFilter、HI_MPI_VO_GetScreenFilter、HI_MPI_VO_SetChnSrcAttr、HI_MPI_VO_SetDevCSC、HI_MPI_VO_GetDevCSC、HI_MPI_VO_SetChnFilter、HI_MPI_VO_GetChnFilter;DSU_HSCALE_FILTER_E、DSU_VSCALE_FILTER_E、VO_CHN_FILTER_S、VO_SCREEN_HFILTER_E、VO_SCREEN_VFILTER_E、VO_SCREEN_FILTER_S、VO_ZOOM_RATIO_S、VO_CSC_S、VO_SRC_ATTR_S。第 5 章 视 频 前 处 理删 除 数 据 结 构 VPP_SCALE_FILTER_E, 增 加 数 据 结 构DSU_HSCALE_FILTER_E、DSU_VSCALE_FILTER_E; 修 改数 据 结 构 VIDEO_PREPROC_CONF_S 的 定 义 。第 6 章 视 频 编 码HI_MPI_VENC_CreateChn 的 接 口 描 述 中 将 码 流 宽 高 16 对 齐 修改 为 8 对 齐 , 增 加 支 持 176 * 120 分 辨 率 的 NTSC 制 QCIF 码 流 ,增 加 1080P 编 码 规 格 。第 9 章 音 频增 加 AI、AO 的 重 采 样 功 能 的 详 细 说 明 , 增 加 接 口HI_MPI_AO_ClearChnBuf、HI_MPI_ADEC_ClearChnBuf。第 10 章 Proc 调 试 信 息H264E、H264D、JPEGE 中 新 增 加 16 象 素 对 齐 的 宽 高 信 息 及 说明 。2009-12-23 01 正 式 发 布 。2009-09-30 00B02 优 化 部 分 描 述 , 修 改 部 分 错 误 码 。2009-08-31 00B01 第 1 次 发 布 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录1 概 述 ...............................................................................................................................................1-11.1 API 函 数 参 考 域 ............................................................................................................................................1-11.2 数 据 类 型 参 考 域 ..........................................................................................................................................1-1文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 1-1 API 函 数 参 考 域 说 明 ..............................................................................................................................1-1表 1-2 数 据 类 型 参 考 域 说 明 .............................................................................................................................1-1文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司iii


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考1 概 述1 概 述1.1 API 函 数 参 考 域本 文 档 对 API 参 考 信 息 使 用 以 下 域 来 描 述 , 具 体 信 息 如 表 1-1 所 示 。表 1-1 API 函 数 参 考 域 说 明参 考 域作 用描 述 描 述 API 的 功 能 。语 法 显 示 API 的 语 法 样 式 。参 数 列 出 API 的 参 数 、 参 数 说 明 及 其 属 性 。返 回 值 列 出 API 的 返 回 值 及 其 返 回 值 说 明 。错 误 码 列 出 API 的 错 误 码 及 其 错 误 码 说 明 。需 求 列 出 本 API 要 包 含 的 头 文 件 和 API 编 译 时 要 链 接 的 库 文 件 。注 意 使 用 API 时 应 注 意 的 事 项 。举 例 使 用 API 的 实 例 。相 关 主 题 同 本 API 的 其 他 相 关 信 息 。1.2 数 据 类 型 参 考 域本 参 考 对 数 据 类 型 使 用 以 下 域 来 描 述 , 具 体 信 息 如 表 1-2 所 示 。表 1-2 数 据 类 型 参 考 域 说 明参 考 域作 用说 明 简 单 描 述 结 构 体 所 实 现 的 功 能 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司1-1


1 概 述Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 考 域作 用定 义 列 出 结 构 体 的 定 义 。成 员 列 出 数 据 结 构 的 成 员 及 含 义 。注 意 事 项 列 出 使 用 数 据 类 型 时 应 注 意 的 事 项 。相 关 数 据 类 型 和 接 口 列 出 与 本 数 据 类 型 相 关 联 的 其 他 数 据 类 型 和 接 口 。1-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录2 系 统 控 制 .......................................................................................................................................2-12.1 概 述 ..............................................................................................................................................................2-12.2 重 要 概 念 ......................................................................................................................................................2-12.3 API 参 考 .......................................................................................................................................................2-12.4 数 据 类 型 ....................................................................................................................................................2-232.4.1 基 本 数 据 类 型 ...................................................................................................................................2-232.4.2 系 统 控 制 数 据 类 型 ...........................................................................................................................2-312.4.3 视 频 公 共 类 型 ...................................................................................................................................2-332.5 错 误 码 ........................................................................................................................................................2-392.5.1 系 统 控 制 错 误 码 ...............................................................................................................................2-392.5.2 视 频 缓 存 池 错 误 码 ...........................................................................................................................2-39文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 2-1 系 统 控 制 API 错 误 码 ..........................................................................................................................2-39表 2-2 视 频 缓 存 池 API 错 误 码 ......................................................................................................................2-39文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司iii


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制2 系 统 控 制2.1 概 述单 板 上 电 后 , 启 动 进 入 内 核 , 加 载 MPP 系 统 中 的 各 个 ko 以 及 外 围 芯 片 驱 动 , 应 用 程序 启 动 MPP 业 务 前 , 必 须 完 成 MPP 系 统 初 始 化 工 作 。 同 理 , 应 用 程 序 退 出 MPP 业 务后 , 也 要 完 成 MPP 系 统 去 初 始 化 工 作 , 释 放 资 源 。MPP 系 统 初 始 化 , 主 要 针 对 视 频 缓 存 池 、 系 统 控 制 两 大 部 分 进 行 初 始 化 。 同 时 提 供 当前 MPP 系 统 的 版 本 信 息 , 便 于 产 品 的 维 护 、 更 新 。2.2 重 要 概 念系 统 控 制视 频 缓 存 池系 统 控 制 的 功 能 : 主 要 根 据 Hi3520/Hi3515 芯 片 特 性 , 完 成 硬 件 各 个 部 件 的 复 位 、 基 本初 始 化 工 作 , 同 时 负 责 完 成 MPP 系 统 各 个 业 务 模 块 的 初 始 化 、 去 初 始 化 以 及 管 理 MPP系 统 各 个 业 务 模 块 的 工 作 状 态 。视 频 缓 存 池 的 功 能 : 主 要 向 媒 体 业 务 提 供 大 块 物 理 内 存 , 负 责 内 存 的 分 配 和 回 收 , 充分 发 挥 内 存 缓 存 池 的 作 用 , 让 物 理 内 存 资 源 在 各 个 媒 体 处 理 模 块 中 合 理 使 用 。 一 组 大小 相 同 、 物 理 地 址 连 续 的 缓 存 块 组 成 一 个 缓 存 池 。 在 创 建 编 码 通 道 或 者 解 码 通 道 时 ,MPP 系 统 会 为 该 通 道 创 建 一 个 独 享 缓 存 池 。 在 销 毁 通 道 时 , 同 时 也 会 销 毁 相 应 的 缓 存池 。 而 对 于 视 频 输 入 通 道 , 则 需 要 使 用 公 共 缓 存 池 。 所 有 的 视 频 输 入 通 道 都 可 以 从 公共 缓 存 池 中 获 取 缓 存 块 。 由 于 视 频 输 入 通 道 不 存 在 创 建 和 销 毁 , 因 此 , 在 系 统 初 始 化之 前 , 必 须 为 视 频 输 入 通 道 配 置 公 共 缓 存 池 。 根 据 业 务 的 不 同 , 公 共 缓 存 池 的 数 量 、缓 存 块 的 大 小 和 数 量 会 有 所 不 同 。2.3 API 参 考系 统 控 制 实 现 MPP(Media Process Platform) 系 统 初 始 化 、 获 取 MPP 版 本 号 、 视 频 缓存 池 初 始 化 、 创 建 视 频 缓 存 池 等 功 能 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-1


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_SYS_SetConf该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_SYS_SetConf: 配 置 系 统 控 制 参 数 。• HI_MPI_SYS_GetConf: 获 取 系 统 控 制 参 数 。• HI_MPI_SYS_Init: 初 始 化 MPP 系 统 。• HI_MPI_SYS_Exit: 去 初 始 化 MPP 系 统 。• HI_MPI_SYS_GetVersion: 获 取 MPP 的 版 本 号 。• HI_MPI_SYS_GetCurPts: 获 取 当 前 时 间 戳 。• HI_MPI_SYS_InitPtsBase: 初 始 化 MPP 时 间 戳 。• HI_MPI_SYS_SyncPts: 同 步 MPP 时 间 戳 。• HI_MPI_VB_SetConf: 设 置 MPP 视 频 缓 存 池 属 性 。• HI_MPI_VB_GetConf: 获 取 MPP 视 频 缓 存 池 属 性 。• HI_MPI_VB_Init: 初 始 化 MPP 视 频 缓 存 池 。• HI_MPI_VB_Exit: 去 初 始 化 MPP 视 频 缓 存 池 。• HI_MPI_VB_CreatePool: 创 建 一 个 视 频 缓 存 池 。• HI_MPI_VB_DestroyPool: 销 毁 一 个 视 频 缓 存 池 。• HI_MPI_VB_GetBlock: 获 取 一 个 缓 存 块 。• HI_MPI_VB_ReleaseBlock: 释 放 一 个 已 经 获 取 的 缓 存 块 。• HI_MPI_VB_Handle2PhysAddr: 获 取 一 个 缓 存 块 的 物 理 地 址 。• HI_MPI_VB_Handle2PoolId: 获 取 一 个 帧 缓 存 块 所 在 缓 存 池 的 ID。【 描 述 】配 置 系 统 控 制 参 数 。【 语 法 】HI_S32 HI_MPI_SYS_SetConf(const MPP_SYS_CONF_S *pstSysConf);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstSysConf 系 统 控 制 参 数 指 针 。静 态 属 性 ( 指 只 能 在 系 统 未 初 始 化 、 未 启 用 设 备 或 通 道时 , 才 能 设 置 的 属 性 )。输 入【 返 回 值 】返 回 值描 述0 成 功 。2-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_SYS_NULL_PTR 空 指 针 错 误 。HI_ERR_SYS_NOT_PERMHI_ERR_SYS_ILLEGAL_PARAM操 作 不 允 许 。 此 错 误 通 常 是 在 系 统 已 经初 始 化 后 , 调 用 此 接 口 导 致 。输 入 参 数 非 法 。 此 错 误 通 常 是 系 统 控 制参 数 中 有 非 法 参 数 导 致 。【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】只 有 在 MPP 整 个 系 统 处 于 未 初 始 化 状 态 , 才 可 调 用 此 函 数 配 置 MPP 系 统 , 否 则 会 配置 失 败 。video buf 根 据 不 同 的 应 用 场 景 需 要 不 同 的 配 置 。【 举 例 】HI_S32 s32ret;MPP_SYS_CONF_S struSysConf;struSysConf.u32AlignWidth = 16;/* set config of mpp system*/s32ret = HI_MPI_SYS_SetConf(&struSysConf);if (HI_SUCCESS != s32ret){printf("Set mpp sys config failed!\n");return s32ret;}/* init system*/s32ret = HI_MPI_SYS_Init();if (HI_SUCCESS != s32ret){文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-3


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}printf("Mpi init failed!\n");return s32ret;/* ...... */HI_MPI_SYS_GetConf/* exit system*/s32ret = HI_MPI_SYS_Exit();if (HI_SUCCESS != s32ret){printf("Mpi exit failed!\n");return s32ret;}【 相 关 主 题 】HI_MPI_VB_GetConf【 描 述 】获 取 系 统 控 制 参 数 。【 语 法 】HI_S32 HI_MPI_SYS_GetConf(MPP_SYS_CONF_S *pstSysConf);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstSysConf 系 统 控 制 参 数 指 针 。静 态 属 性 。输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。2-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制接 口 返 回 值含 义HI_ERR_SYS_NULL_PTR 空 指 针 错 误 。HI_ERR_SYS_NOT_PERM操 作 不 允 许 。 此 错 误 通 常 是 由 于 未 配 置过 系 统 控 制 参 数 导 致 。HI_MPI_SYS_Init【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】必 须 先 调 用 HI_MPI_SYS_SetConf 成 功 后 才 能 获 取 配 置 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_SYS_SetConf【 描 述 】初 始 化 MPP 系 统 。【 语 法 】HI_S32 HI_MPI_SYS_Init(HI_VOID);【 参 数 】无 。【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_SYS_NOTREADY 系 统 参 数 未 配 置 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-5


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值HI_ERR_SYS_BUSYHI_FAILURE含 义系 统 忙 , 通 常 是 由 于 系 统 正 在 去 初 始 化导 致 。MPP 系 统 中 有 模 块 初 始 化 失 败 , 通 常 是由 于 未 加 载 hidmac.ko 导 致 。【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 先 调 用 HI_MPI_SYS_SetConf 配 置 MPP 系 统 后 才 能 初 始 化 , 否 则 初 始 化 会 失败 。• 由 于 MPP 系 统 的 正 常 运 行 依 赖 于 缓 存 池 , 因 此 必 须 先 调 用 HI_MPI_VB_Init 初 始化 缓 存 池 , 再 初 始 化 MPP 系 统 。• 如 果 多 次 初 始 化 , 仍 会 返 回 成 功 , 但 实 际 上 系 统 不 会 对 MPP 的 运 行 状 态 有 任 何 影响 。• 只 要 有 一 个 进 程 进 行 初 始 化 即 可 , 不 需 要 所 有 的 进 程 都 做 系 统 初 始 化 的 操 作 。【 举 例 】HI_MPI_SYS_Exit请 参 见 HI_MPI_SYS_SetConf 的 举 例 。【 相 关 主 题 】HI_MPI_SYS_Exit【 描 述 】去 初 始 化 MPP 系 统 。 除 了 音 频 的 编 解 码 通 道 外 , 所 有 的 音 频 输 入 输 出 、 视 频 输 入 输出 、 视 频 编 码 、 视 频 解 码 通 道 都 会 被 销 毁 或 者 禁 用 , 整 个 MPP 系 统 恢 复 到 系 统 未 初 始化 的 状 态 。【 语 法 】HI_S32 HI_MPI_SYS_Exit(HI_VOID);【 参 数 】无 。【 返 回 值 】返 回 值描 述0 成 功 。2-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_SYS_BUSY系 统 忙 , 通 常 是 由 于 还 有 用 户 进 程 阻 塞MPI 接 口 导 致 。【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】• 去 初 始 化 时 , 如 果 有 阻 塞 在 MPI 上 的 用 户 进 程 , 则 去 初 始 化 会 失 败 。 如 果 所 有 阻塞 在 MPI 上 的 调 用 都 返 回 , 则 可 以 成 功 去 初 始 化 。• 可 以 反 复 去 初 始 化 , 不 返 回 失 败 。• 由 于 系 统 去 初 始 化 不 会 销 毁 音 频 的 编 解 码 通 道 , 因 此 这 些 通 道 的 销 毁 需 要 用 户 主动 进 行 。 如 果 创 建 这 些 通 道 的 进 程 退 出 , 则 通 道 随 之 被 销 毁 。【 举 例 】请 参 见 HI_MPI_SYS_SetConf 的 举 例 。【 相 关 主 题 】HI_MPI_SYS_InitHI_MPI_SYS_GetVersion【 描 述 】获 取 MPP 的 版 本 号 。【 语 法 】HI_S32 HI_MPI_SYS_GetVersion(MPP_VERSION_S *pstVersion);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstVersion 版 本 号 描 述 指 针 。动 态 属 性 ( 指 在 任 何 时 刻 都 可 以 设 置 的 属 性 )。输 出文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-7


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_SYS_NULL_PTR 空 指 针 错 误 。【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】HI_S32 s32ret;MPP_VERSION_S stVersion;HI_MPI_SYS_GetCurPtss32ret = HI_MPI_SYS_GetVersion(&stVersion);if (HI_SUCCESS != s32ret){return s32ret;}printf("mpi version is %s\n", stVersion.aVersion);【 相 关 主 题 】无 。【 描 述 】获 取 MPP 的 当 前 时 间 戳 。【 语 法 】2-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制HI_S32 HI_MPI_SYS_GetCurPts(HI_U64 *pu64CurPts);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pu64CurPts 当 前 时 间 戳 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 系 统 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。非 0 设 备 打 开 失 败 。HI_MPI_SYS_InitPtsBase【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。【 描 述 】初 始 化 MPP 的 时 间 戳 基 准 。【 语 法 】HI_S32 HI_MPI_SYS_InitPtsBase(HI_U64 u64PtsBase);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-9


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出u64PtsBase 时 间 戳 基 准 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 系 统 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。非 0 设 备 打 开 失 败 。【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】初 始 化 时 间 戳 基 准 会 将 当 前 系 统 的 时 间 戳 强 制 置 成 u64PtsBase, 与 系 统 原 有 时 间 戳 没有 任 何 约 束 。 因 此 , 建 议 在 媒 体 业 务 没 有 启 动 时 ( 例 如 操 作 系 统 刚 启 动 ), 调 用 这 个 接口 。 如 果 媒 体 业 务 已 经 启 动 , 建 议 调 用 HI_MPI_SYS_SyncPts 进 行 时 间 戳 微 调 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_SYS_SyncPts【 描 述 】同 步 MPP 的 时 间 戳 。【 语 法 】HI_S32 HI_MPI_SYS_SyncPts(HI_U64 u64PtsBase);【 参 数 】2-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制参 数 名 称 描 述 输 入 / 输 出u64PtsBase 时 间 戳 基 准 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 系 统 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。非 0 设 备 打 开 失 败 。【 需 求 】• 头 文 件 :hi_comm_sys.h、mpi_sys.h• 库 文 件 :libmpi.a【 注 意 】对 当 前 系 统 时 间 戳 进 行 微 调 , 微 调 后 不 会 出 现 时 间 戳 回 退 现 象 。 在 多 片 之 间 做 同 步时 , 由 于 单 板 的 时 钟 源 误 差 可 能 比 较 大 , 建 议 一 秒 钟 进 行 一 次 时 间 戳 微 调 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VB_SetConf【 描 述 】设 置 MPP 视 频 缓 存 池 属 性 。【 语 法 】HI_S32 HI_MPI_VB_SetConf (const VB_CONF_S *pstVbConf);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-11


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出pstVbConf 视 频 缓 存 池 属 性 指 针 。静 态 属 性 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VB_NULL_PTR 空 指 针 错 误 。HI_ERR_VB_BUSY系 统 忙 , 通 常 是 已 经 调 用HI_MPI_SYS_Init 对 系 统 进 行 了 初 始 化 导致 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】只 能 在 系 统 处 于 未 初 始 化 的 状 态 下 , 才 可 以 设 置 缓 存 池 属 性 , 否 则 会 返 回 失 败 。【 举 例 】HI_S32 s32ret;VB_CONF_S stVbConf;memset(&stVbConf,0,sizeof(VB_CONF_S));stVbConf.u32MaxPoolCnt = 128;stVbConf.astCommPool[0].u32BlkSize = 768*576*2;stVbConf.astCommPool[0].u32BlkCnt = 20;stVbConf.astCommPool[1].u32BlkSize = 384*288*2;stVbConf.astCommPool[1].u32BlkCnt = 40;s32ret = HI_MPI_VB_SetConf(&stVbConf);2-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制if (HI_SUCCESS != s32ret){printf("set vb err:0x%x\n", s32ret);return s32ret;}s32ret = HI_MPI_VB_Init();if (HI_SUCCESS != s32ret){printf("init vb err:0x%x\n", s32ret);return s32ret;}/* ... ... */HI_MPI_VB_GetConf(void)HI_MPI_VB_Exit();【 相 关 主 题 】HI_MPI_VB_GetConf【 描 述 】获 取 MPP 视 频 缓 存 池 属 性 。【 语 法 】HI_S32 HI_MPI_VB_GetConf (VB_CONF_S *pstVbConf);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstVbConf 视 频 缓 存 池 属 性 指 针 。静 态 属 性 。输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-13


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VB_NULL_PTR 空 指 针 错 误 。HI_ERR_VB_NOTREADY 缓 存 池 属 性 未 配 置 。HI_MPI_VB_Init【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】必 须 先 调 用 HI_MPI_VB_SetConf 设 置 MPP 视 频 缓 存 池 属 性 , 再 获 取 属 性 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VB_SetConf【 描 述 】初 始 化 MPP 视 频 缓 存 池 。【 语 法 】HI_S32 HI_MPI_VB_Init (HI_VOID);【 参 数 】无 。【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。2-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制接 口 返 回 值含 义HI_ERR_VB_NOTREADY 缓 存 池 属 性 未 配 置 。HI_ERR_VB_NOMEM 内 存 不 够 。HI_FAILURE 失 败 。HI_MPI_VB_Exit【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 先 调 用 HI_MPI_VB_SetConf 配 置 缓 存 池 属 性 , 再 初 始 化 缓 存 池 , 否 则 会 失败 。• 可 反 复 初 始 化 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VB_SetConf 的 举 例 。【 相 关 主 题 】HI_MPI_VB_Exit【 描 述 】去 初 始 化 MPP 视 频 缓 存 池 。【 语 法 】HI_S32 HI_MPI_VB_Exit (HI_VOID);【 参 数 】无 。【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-15


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VB_BUSY系 统 忙 , 通 常 是 由 于 MPP 系 统 未 去 初 始化 导 致 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 先 调 用 HI_MPI_SYS_Exit 去 初 始 化 MPP 系 统 , 再 去 初 始 化 缓 存 池 , 否 则 返回 失 败 。• 可 以 反 复 去 初 始 化 , 不 返 回 失 败 。• 去 初 始 化 不 会 清 除 先 前 对 缓 存 池 的 配 置 。【 举 例 】请 参 见 HI_MPI_VB_SetConf 的 举 例 。【 相 关 主 题 】HI_MPI_VB_InitHI_MPI_VB_CreatePool【 描 述 】创 建 一 个 视 频 缓 存 池 。【 语 法 】VB_POOL HI_MPI_VB_CreatePool(HI_U32 u32BlkSize,HI_U32 u32BlkCnt);【 参 数 】参 数 名 称 描 述 输 入 / 输 出u32BlkSize 缓 存 池 中 每 个 缓 存 块 的 大 小 。取 值 范 围 :(0, 2 32 ), 以 byte 为 单 位 。u32BlkCnt 缓 存 池 中 缓 存 块 的 个 数 。取 值 范 围 :(0, 2 32 )。输 入输 入【 返 回 值 】2-16海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制返 回 值描 述非 VB_INVALID_POOLID 有 效 的 缓 存 池 ID 号 。VB_INVALID_POOLID创 建 缓 存 池 失 败 , 可 能 是 参 数 非 法 或 者保 留 内 存 不 够 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】该 缓 存 池 是 从 保 留 内 存 中 分 配 的 , 一 个 缓 存 池 包 含 若 干 个 大 小 相 同 的 缓 存 块 。 如 果 该缓 存 池 的 大 小 超 过 了 保 留 内 存 中 的 空 闲 空 间 , 则 创 建 缓 存 池 会 失 败 。【 举 例 】VB_POOL VbPool;VB_BLK VbBlk;HI_U32 u32BlkSize = 768*576*2;HI_U32 u32BlkCnt = 15;HI_U32 u32Addr;/* create a video buffer pool*/VbPool = HI_MPI_VB_CreatePool(u32BlkSize,u32BlkCnt);if ( VB_INVALID_POOLID == VbPool ){printf("create vb err\n");return HI_FAILURE;}/* get a buffer block from pool*/VbBlk = HI_MPI_VB_GetBlock(VbPool, u32BlkSize);if (VB_INVALID_HANDLE == VbBlk ){printf("get vb block err\n");(void)HI_MPI_VB_DestroyPool(VbPool);return HI_FAILURE;}/* get the physical address of buffer block*/u32Addr = HI_MPI_VB_Handle2PhysAddr(VbBlk);文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-17


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考if (HI_NULL_PTR == u32Addr){printf("blk to physaddr err\n");(void)HI_MPI_VB_ReleaseBlock(VbBlk);(void)HI_MPI_VB_DestroyPool(VbPool);return HI_FAILURE;}/* use this address do something ...*//* then release the buffer block*/(void)HI_MPI_VB_ReleaseBlock(VbBlk);HI_MPI_VB_DestroyPool/* destroy video buffer pool */(void)HI_MPI_VB_DestroyPool(VbPool);【 相 关 主 题 】HI_MPI_VB_DestroyPool【 描 述 】销 毁 一 个 视 频 缓 存 池 。【 语 法 】HI_S32 HI_MPI_VB_DestroyPool(VB_POOL Pool);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Pool 缓 存 池 ID 号 。取 值 范 围 :[0, VB_MAX_POOLS)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】2-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VB_NOTREADY 缓 存 池 未 初 始 化 。HI_ERR_VB_ILLEGAL_PARAM 输 入 参 数 无 效 , 缓 存 池 ID 非 法 。HI_ERR_VB_UNEXIST 缓 存 池 不 存 在 。HI_ERR_VB_NOT_PERM操 作 不 允 许 , 试 图 销 毁 一 个 非 用 户 态 创建 的 缓 存 池 。HI_MPI_VB_GetBlock【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】• 销 毁 一 个 不 存 在 的 缓 存 池 , 则 返 回 HI_ERR_VB_UNEXIST。• 在 去 初 始 化 MPP 缓 存 池 时 , 所 有 的 缓 存 池 都 将 被 销 毁 , 包 括 用 户 态 的 缓 存 池 。【 举 例 】请 参 见 HI_MPI_VB_CreatePool 的 举 例 。【 相 关 主 题 】HI_MPI_VB_CreatePool【 描 述 】用 户 态 获 取 一 个 缓 存 块 。【 语 法 】VB_BLK HI_MPI_VB_GetBlock(VB_POOL Pool, HI_U32 u32BlkSize);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Pool 缓 存 池 ID 号 。取 值 范 围 :[0, VB_MAX_POOLS)。u32BlkSize 缓 存 块 大 小 。取 值 范 围 :(0, 2 32 ), 以 byte 为 单 位 。输 入输 入【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-19


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述非 VB_INVALID_HANDLE 有 效 的 缓 存 块 句 柄 。VB_INVALID_HANDLE 获 取 缓 存 块 失 败 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】• 用 户 可 以 在 创 建 一 个 缓 存 池 之 后 , 调 用 本 接 口 从 该 缓 存 池 中 获 取 一 个 缓 存 块 ; 即将 第 1 个 参 数 Pool 设 置 为 创 建 的 缓 存 池 ID( 第 2 个 参 数 u32BlkSize 不 用 设 置 );获 取 的 缓 存 块 的 大 小 即 为 用 户 创 建 缓 存 池 时 指 定 的 缓 存 块 大 小 。• 如 果 用 户 需 要 从 任 意 一 个 公 共 缓 存 池 中 获 取 一 块 指 定 大 小 的 缓 存 块 , 则 可 以 将 第 1个 参 数 Pool 设 置 为 无 效 ID 号 (VB_INVALID_POOLID), 将 第 2 个 参 数u32BlkSize 设 置 为 需 要 的 缓 存 块 大 小 。• 公 共 缓 存 池 主 要 用 来 存 放 VIU 的 捕 获 图 像 , 因 此 , 对 公 共 缓 存 池 的 不 当 操 作 ( 如占 用 过 多 的 缓 存 块 ) 会 影 响 MPP 系 统 的 正 常 运 行 。【 举 例 】请 参 见 HI_MPI_VB_CreatePool 的 举 例 。【 相 关 主 题 】HI_MPI_VB_ReleaseBlockHI_MPI_VB_ReleaseBlock【 描 述 】用 户 态 释 放 一 个 已 经 获 取 的 缓 存 块 。【 语 法 】HI_S32 HI_MPI_VB_ReleaseBlock(VB_BLK Block);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Block 缓 存 块 句 柄 。 输 入【 返 回 值 】2-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VB_ILLEGAL_PARAM 输 入 参 数 无 效 , 无 效 的 缓 存 块 句 柄 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】获 取 的 缓 存 块 使 用 完 后 , 应 该 调 用 此 接 口 释 放 缓 存 块 。【 举 例 】请 参 见 HI_MPI_VB_CreatePool 的 举 例 。【 相 关 主 题 】HI_MPI_VB_GetBlockHI_MPI_VB_Handle2PhysAddr【 描 述 】用 户 态 获 取 一 个 缓 存 块 的 物 理 地 址 。【 语 法 】HI_U32 HI_MPI_VB_Handle2PhysAddr(VB_BLK Block);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Block 缓 存 块 句 柄 。 输 入【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-21


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 无 效 返 回 值 , 缓 存 块 句 柄 非 法 。非 0 有 效 物 理 地 址 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】指 定 的 缓 存 块 应 该 是 从 MPP 视 频 缓 存 池 中 获 取 的 有 效 缓 存 块 。【 举 例 】请 参 见 HI_MPI_VB_CreatePool 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VB_Handle2PoolId【 描 述 】用 户 态 获 取 一 个 帧 缓 存 块 所 在 缓 存 池 的 ID。【 语 法 】VB_POOL HI_MPI_VB_Handle2PoolId (VB_BLK Block);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Block 缓 存 块 句 柄 。 输 入【 返 回 值 】返 回 值描 述非 负 数 有 效 的 缓 存 池 ID 号 。负 数 无 效 的 缓 存 池 ID 号 。2-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_vb.h、mpi_vb.h• 库 文 件 :libmpi.a【 注 意 】指 定 的 缓 存 块 应 该 是 从 MPP 视 频 缓 存 池 中 获 取 的 有 效 缓 存 块 。【 举 例 】VB_POOL VbPool;VB_BLK VbBlk;/* get vb blk id from somewhere*//* get pool id */VbPool = HI_MPI_VB_Handle2PoolId(VbBlk);if ( VB_INVALID_POOLID != VbPool ){printf("pool id is %d\n", VbPool);/* use pool id do something ...*/}【 相 关 主 题 】无 。2.4 数 据 类 型2.4.1 基 本 数 据 类 型基 本 数 据 类 型 定 义 如 下 :typedef unsigned chartypedef unsigned chartypedef unsigned shorttypedef unsigned intHI_U8;HI_UCHAR;HI_U16;HI_U32;typedef chartypedef shorttypedef intHI_S8;HI_S16;HI_S32;#ifndef _M_IX86typedef unsigned long longtypedef long longHI_U64;HI_S64;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-23


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考#elsetypedef __int64typedef __int64#endifHI_U64;HI_S64;typedef chartypedef char*HI_CHAR;HI_PCHAR;typedef floattypedef doubletypedef voidHI_FLOAT;HI_DOUBLE;HI_VOID;typedef unsigned longtypedef unsigned longHI_SIZE_T;HI_LENGTH_T;typedef enum {HI_FALSE = 0,HI_TRUE = 1,} HI_BOOL;#ifndef NULL#define NULL#endif#define HI_NULL#define HI_NULL_PTR0L0L0L#define HI_SUCCESS 0#define HI_FAILURE (-1)typedef HI_S32 AI_CHN;typedef HI_S32 AO_CHN;typedef HI_S32 AENC_CHN;typedef HI_S32 ADEC_CHN;typedef HI_S32 AUDIO_DEV;typedef HI_S32 VI_DEV;typedef HI_S32 VI_CHN;typedef HI_S32 VO_CHN;typedef HI_S32 VENC_CHN;typedef HI_S32 VDEC_CHN;typedef HI_S32 VENC_GRP;/* 无 效 的 通 道 号 、 无 效 的 设 备 号 */#define HI_INVALID_CHN (-1)2-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制#define HI_INVALID_DEV (-1)/* 最 大 的 视 频 缓 存 池 个 数 */#define VB_MAX_POOLS 128/* 所 有 视 频 输 入 设 备 或 通 道 的 最 大 个 数 ( 包 括 VIU 硬 件 通 道 和 虚 拟 VI 通 道 )*/#define VI_MAX_CHN_NUM 32#define VI_MAX_DEV_NUM 8/* 硬 件 视 频 输 入 单 元 设 备 最 大 个 数 */#define VIU_MAX_DEV_NUM 4/* 每 个 硬 件 视 频 输 入 设 备 支 持 的 最 大 通 道 数 目 */#define VIU_MAX_CHN_NUM_PER_DEV 4/* 硬 件 视 频 输 入 通 道 总 的 最 大 个 数 */#ifdef hi3515#define VIU_MAX_CHN_NUM 8#else#define VIU_MAX_CHN_NUM 16#endif/* VO 设 备 的 最 大 个 数 */#define VO_MAX_DEV_NUM 6/* VO 设 备 中 物 理 设 备 的 最 大 个 数 */#define VO_MAX_PHY_DEV 3/* VO 通 道 的 最 大 个 数 */#define VO_MAX_CHN_NUM 32/* VO 最 大 同 步 组 数 */#define VO_SYNC_MAX_GRP 16/* VO 同 步 组 容 纳 的 最 多 通 道 数 */#define VO_SYNC_MAX_CHN 32/* VO 最 小 显 示 buffer 数 */#define VO_MIN_DISP_BUF 5/* VO 最 大 显 示 buffer 数 */#define VO_MAX_DISP_BUF 15文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-25


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考/* VO 最 小 虚 拟 设 备 buffer 数 */#define VO_MIN_VIRT_BUF 3/* VO 最 大 虚 拟 设 备 buffer 数 */#define VO_MAX_VIRT_BUF 15/* 最 大 的 编 码 组 个 数 */#define VENC_MAX_GRP_NUM 64/* 最 大 的 编 码 通 道 个 数 */#define VENC_MAX_CHN_NUM 64/* 最 大 的 解 码 通 道 个 数 */#define VDEC_MAX_CHN_NUM 32/* SIO 的 个 数 , 即 音 频 设 备 的 个 数 */#define SIO_MAX_NUM 3/* 最 大 的 AIO 通 道 数 */#define AIO_MAX_CHN_NUM 16/* 最 大 的 音 频 编 码 通 道 数 */#define AENC_MAX_CHN_NUM 32/* 最 大 的 音 频 解 码 通 道 数 */#define ADEC_MAX_CHN_NUM 32/* 调 用 MPI 的 阻 塞 标 志 */#define HI_IO_BLOCK 0/* 调 用 MPI 的 非 阻 塞 标 志 */#define HI_IO_NOBLOCK 1/* 最 大 音 频 帧 缓 存 数 */#define MAX_AUDIO_FRAME_NUM 50除 了 上 述 基 本 数 据 类 型 外 , 其 他 基 本 数 据 类 型 定 义 如 下 :• POINT_S: 定 义 坐 标 信 息 结 构 体 。• DIMENSION_S: 定 义 尺 寸 信 息 结 构 体 。2-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制• RECT_S: 定 义 矩 形 区 域 信 息 结 构 体 。• PAYLOAD_TYPE_E: 定 义 音 视 频 净 荷 类 型 枚 举 。POINT_S【 说 明 】定 义 坐 标 信 息 结 构 体 。【 定 义 】typedef struct hiPOINT_S{HI_S32 s32X;HI_S32 s32Y;}POINT_S;【 成 员 】成 员 名 称描 述s32X 横 坐 标 。s32Y 纵 坐 标 。DIMENSION_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_CTRL_PARAM_U【 说 明 】定 义 尺 寸 信 息 结 构 体 。【 定 义 】typedef struct hiDIMENSION_S{HI_S32 s32Width;HI_S32 s32Height;}DIMENSION_S;【 成 员 】成 员 名 称描 述s32Width 宽 度 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-27


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制PAYLOAD_TYPE_E• VO_CHN_ATTR_S【 说 明 】定 义 音 视 频 净 荷 类 型 枚 举 。【 定 义 】typedef enum{PT_PCMU = 0,PT_1016 = 1,PT_G721 = 2,PT_GSM = 3,PT_G723 = 4,PT_DVI4_8K = 5,PT_DVI4_16K = 6,PT_LPC = 7,PT_PCMA = 8,PT_G722 = 9,PT_S16BE_STEREO,PT_S16BE_MONO = 11,PT_QCELP = 12,PT_CN = 13,PT_MPEGAUDIO = 14,PT_G728 = 15,PT_DVI4_3 = 16,PT_DVI4_4 = 17,PT_G729 = 18,PT_G711A = 19,PT_G711U = 20,PT_G726 = 21,PT_G729A = 22,PT_LPCM = 23,PT_CelB = 25,PT_JPEG = 26,PT_CUSM = 27,PT_NV = 28,PT_PICW = 29,PT_CPV = 30,PT_H261 = 31,PT_MPEGVIDEO = 32,PT_MPEG2TS = 33,PT_H263 = 34,文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-29


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考PT_SPEG = 35,PT_MPEG2VIDEO = 36,PT_AAC = 37,PT_WMA9STD = 38,PT_HEAAC = 39,PT_PCM_VOICE = 40,PT_PCM_AUDIO = 41,PT_AACLC = 42,PT_MP3 = 43,PT_ADPCMA = 49,PT_AEC = 50,PT_X_LD = 95,PT_H264 = 96,PT_D_GSM_HR = 200,PT_D_GSM_EFR = 201,PT_D_L8 = 202,PT_D_RED = 203,PT_D_VDVI = 204,PT_D_BT656 = 220,PT_D_H263_1998 = 221,PT_D_MP1S = 222,PT_D_MP2P = 223,PT_D_BMPEG = 224,PT_MP4VIDEO = 230,PT_MP4AUDIO = 237,PT_VC1 = 238,PT_JVC_ASF = 255,PT_D_AVI = 256,PT_MAX = 257,PT_AMR = 1001, /* add by mpp */PT_MJPEG = 1002,}PAYLOAD_TYPE_E;【 成 员 】略 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VENC_CHN_ATTR_S• VDEC_CHN_ATTR_S• AENC_CHN_ATTR_S2-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制• ADEC_CHN_ATTR_S2.4.2 系 统 控 制 数 据 类 型MPP_SYS_CONF_S系 统 控 制 相 关 数 据 类 型 定 义 如 下 :• MPP_SYS_CONF_S: 定 义 MPP 系 统 控 制 属 性 结 构 体 。• VB_CONF_S: 定 义 视 频 缓 存 池 属 性 结 构 体 。• MPP_VERSION_S: 定 义 MPP 版 本 描 述 结 构 体 。【 说 明 】定 义 MPP 系 统 控 制 属 性 结 构 体 。【 定 义 】typedef struct hiMPP_SYS_CONF_S{/* stride of picture buffer must be aligned with this value.* you can choose a value from 1 to 1024,* and it except 1 must be multiple of 16.*/HI_U32 u32AlignWidth;HI_U32 u32PinMuxCtrl;}MPP_SYS_CONF_S;【 成 员 】成 员 名 称描 述u32AlignWidth 整 个 系 统 中 使 用 图 像 的 stride 字 节 对 齐 数 。取 值 范 围 :[1, 1024], 直 接 配 置 成 16 或 者 64 即 可 。静 态 属 性 。u32PinMuxCtrl 管 脚 复 用 配 置 , 暂 时 不 需 要 配 置 。静 态 属 性 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_SYS_SetConfVB_CONF_S【 说 明 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-31


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考定 义 视 频 缓 存 池 属 性 结 构 体 。【 定 义 】typedef struct hiVB_CONF_S{HI_U32 u32MaxPoolCnt; /* max count of pools, (0,VB_MAX_POOLS] */Struct hiVB_CPOOL_S{HI_U32 u32BlkSize;HI_U32 u32BlkCnt;}astCommPool[VB_MAX_COMM_POOLS];} VB_CONF_S;【 成 员 】成 员 名 称描 述u32MaxPoolCnt 整 个 系 统 中 可 容 纳 的 缓 存 池 个 数 。取 值 范 围 :(0, VB_MAX_POOLS]。静 态 属 性 。目 前 , 固 定 取 值 VB_MAX_POOLS。astCommPool公 共 缓 存 池 属 性 结 构 体 , 成 员 包 括 公 共 缓 存 池 中 每 个 缓 存 块 的大 小 ( 以 byte 为 单 位 ) 和 缓 存 块 的 个 数 。静 态 属 性 。MPP_VERSION_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_SYS_SetConf【 说 明 】定 义 MPI 版 本 描 述 结 构 体 。【 定 义 】typedef struct hiMPP_VERSION_S{HI_CHAR aVersion[64];}MPP_VERSION_S;【 成 员 】2-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制成 员 名 称描 述aVersion 版 本 描 述 字 符 串 。比 如 “HI_VERSION=Hi35xx_MPP_V1.0.4.0”。2.4.3 视 频 公 共 类 型VIDEO_NORM_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_SYS_GetVersion视 频 公 共 数 据 类 型 定 义 如 下 :• VIDEO_NORM_E: 定 义 视 频 输 入 制 式 类 型 。• PIXEL_FORMAT_E: 定 义 像 素 格 式 类 型 。• VIDEO_FIELD_E: 定 义 视 频 图 像 帧 场 类 型 。• VIDEO_FRAME_S: 定 义 视 频 原 始 图 像 帧 结 构 体 。• VIDEO_FRAME_INFO_S: 定 义 视 频 图 像 帧 信 息 结 构 体 。• BITMAP_S: 定 义 位 图 图 像 信 息 结 构 。• VIDEO_VBI_INFO_S: 定 义 视 频 VBI 信 息 结 构 体 。【 说 明 】定 义 视 频 输 入 制 式 类 型 。【 定 义 】typedef enum hiVIDEO_NORM_E{VIDEO_ENCODING_MODE_PAL=0,VIDEO_ENCODING_MODE_NTSC,VIDEO_ENCODING_MODE_AUTO,VIDEO_ENCODING_MODE_BUTT,} VIDEO_NORM_E;【 成 员 】成 员 名 称描 述VIDEO_ENCODING_MODE_PAL PAL 制 式 。VIDEO_ENCODING_MODE_NTSC NTSC 制 式 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-33


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述VIDEO_ENCODING_MODE_AUTO 自 动 识 别 制 式 。PIXEL_FORMAT_E【 注 意 事 项 】自 动 识 别 制 式 目 前 暂 不 支 持 。【 相 关 数 据 类 型 及 接 口 】VI_PUB_ATTR_S【 说 明 】定 义 像 素 格 式 类 型 。【 定 义 】typedef enum hiPIXEL_FORMAT_E{PIXEL_FORMAT_RGB_1BPP = 0,PIXEL_FORMAT_RGB_2BPP,PIXEL_FORMAT_RGB_4BPP,PIXEL_FORMAT_RGB_8BPP,PIXEL_FORMAT_RGB_444,PIXEL_FORMAT_RGB_4444,PIXEL_FORMAT_RGB_555,PIXEL_FORMAT_RGB_565,PIXEL_FORMAT_RGB_1555,PIXEL_FORMAT_RGB_888,PIXEL_FORMAT_RGB_8888,PIXEL_FORMAT_RGB_PLANAR_888,PIXEL_FORMAT_RGB_BAYER,PIXEL_FORMAT_YUV_A422,PIXEL_FORMAT_YUV_A444,PIXEL_FORMAT_YUV_PLANAR_422,PIXEL_FORMAT_YUV_PLANAR_420,PIXEL_FORMAT_YUV_PLANAR_444,PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_422,PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_420,PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_444,2-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制PIXEL_FORMAT_UYVY_PACKAGE_422,PIXEL_FORMAT_YCbCr_PLANAR,VIDEO_FIELD_EPIXEL_FORMAT_BUTT} PIXEL_FORMAT_E;【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VI_CHN_ATTR_S• OVERLAY_ATTR_S【 说 明 】定 义 视 频 图 像 帧 场 类 型 。【 定 义 】typedef enum hiVIDEO_FIELD_E{VIDEO_FIELD_TOP = 0x01, /* even field */VIDEO_FIELD_BOTTOM = 0x02, /* odd field */VIDEO_FIELD_INTERLACED = 0x03, /* two interlaced fields */VIDEO_FIELD_FRAME = 0x04, /* frame */VIDEO_FIELD_BUTT} VIDEO_FIELD_E;【 成 员 】成 员 名 称描 述VIDEO_FIELD_TOP 顶 场 类 型 。VIDEO_FIELD_BOTTOM 底 场 类 型 。VIDEO_FIELD_INTERLACED 两 场 间 插 类 型 。VIDEO_FIELD_FRAME 帧 类 型 。【 相 关 数 据 类 型 及 接 口 】VIDEO_FRAME_S文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-35


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VIDEO_FRAME_S【 说 明 】定 义 视 频 原 始 图 像 帧 结 构 。【 定 义 】typedef struct hiVIDEO_FRAME_S{PIXEL_FORMAT_E enPixelFormat;HI_U32u32Width;HI_U32u32Height;VIDEO_FIELD_Eu32Field;HI_U32 u32PhyAddr[3];HI_VOID *pVirAddr[3];HI_U32 u32Stride[3];HI_U16 u16OffsetTop; /* top offset of show area */HI_U16 u16OffsetBottom; /* bottom offset of show area */HI_U16 u16OffsetLeft; /* left offset of show area */HI_U16 u16OffsetRight; /* right offset of show area */HI_U64HI_U32u64pts;u32TimeRef;HI_U32 u32PrivateData;}VIDEO_FRAME_S;【 成 员 】成 员 名 称描 述enPixelFormat 视 频 图 像 像 素 格 式 。u32Width 图 像 宽 度 。u32Height 图 像 高 度 。u32Field 帧 场 模 式 。u32PhyAddr 物 理 地 址 。pVirAddr 虚 拟 地 址 。u32Stride 图 像 跨 距 。u16OffsetTop 图 像 顶 部 剪 裁 宽 度 。2-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制成 员 名 称描 述u16OffsetBottom 图 像 底 部 剪 裁 宽 度 。u16OffsetLeft 图 像 左 侧 剪 裁 宽 度 。u16OffsetRight 图 像 右 侧 剪 裁 宽 度 。u64pts 图 像 时 间 戳 。u32TimeRef 图 像 帧 序 列 号 。u32PrivateData 私 有 数 据 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VI_PUB_ATTR_SVIDEO_FRAME_INFO_S【 说 明 】定 义 视 频 图 像 帧 信 息 结 构 体 。【 定 义 】typedef struct hiVIDEO_FRAME_INFO_S{VIDEO_FRAME_S stVFrame;HI_U32u32PoolId;}VIDEO_FRAME_INFO_S;【 成 员 】成 员 名 称描 述stVFrame 视 频 图 像 帧 。u32PoolId视 频 缓 存 池 ID。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VIDEO_FRAME_S文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-37


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考BITMAP_S【 说 明 】定 义 位 图 图 像 信 息 结 构 。【 定 义 】typedef struct hiBITMAP_S{PIXEL_FORMAT_E enPixelFormat;HI_U32u32Width;HI_U32u32Height;HI_VOID*pData;} BITMAP_S;【 成 员 】成 员 名 称描 述enPixelFormat 位 图 像 素 格 式 。u32Width 位 图 宽 度 。u32Height 位 图 高 度 。pData 位 图 数 据 。VIDEO_VBI_INFO_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_CTRL_PARAM_U【 说 明 】定 义 视 频 VBI 信 息 结 构 体 。【 定 义 】typedef struct hiVIDEO_VBI_INFO_S{HI_U32 au32Data[VIU_MAX_VBI_LEN];HI_U32 u32Len;}VIDEO_VBI_INFO_S;【 成 员 】2-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考2 系 统 控 制成 员 名 称描 述au32Data VBI 数 据 。u32Len VBI 数 据 长 度 。【 注 意 事 项 】无 。2.5 错 误 码2.5.1 系 统 控 制 错 误 码系 统 控 制 API 错 误 码 如 表 2-1 所 示 。表 2-1 系 统 控 制 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0028003 HI_ERR_SYS_ILLEGAL_PARAM 参 数 设 置 无 效0xA0028006 HI_ERR_SYS_NULL_PTR 空 指 针 错 误0xA0028009 HI_ERR_SYS_NOT_PERM 操 作 不 允 许0xA0028010 HI_ERR_SYS_NOTREADY 系 统 控 制 属 性 未 配 置0xA0028012 HI_ERR_SYS_BUSY 系 统 忙2.5.2 视 频 缓 存 池 错 误 码视 频 缓 存 池 API 错 误 码 如 表 2-2 所 示 。表 2-2 视 频 缓 存 池 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0018003 HI_ERR_VB_ILLEGAL_PARAM 参 数 设 置 无 效0xA0018005 HI_ERR_VB_UNEXIST 视 频 缓 存 池 不 存 在0xA0018006 HI_ERR_VB_NULL_PTR 参 数 空 指 针 错 误0xA0018009 HI_ERR_VB_NOT_PERM 操 作 不 允 许0xA001800C HI_ERR_VB_NOMEM 分 配 内 存 失 败0xA001800D HI_ERR_VB_NOBUF 分 配 缓 存 失 败文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司2-39


2 系 统 控 制Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考错 误 代 码 宏 定 义 描 述0xA0018010 HI_ERR_VB_NOTREADY 系 统 控 制 属 性 未 配 置0xA0018012 HI_ERR_VB_BUSY 系 统 忙0xA0018040 HI_ERR_VB_2MPOOLS 创 建 缓 存 池 多2-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录3 视 频 输 入 .......................................................................................................................................3-13.1 概 述 ..............................................................................................................................................................3-13.2 重 要 概 念 ......................................................................................................................................................3-13.3 API 参 考 .......................................................................................................................................................3-23.4 数 据 类 型 ....................................................................................................................................................3-483.5 错 误 码 ........................................................................................................................................................3-53文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 3-1 各 种 视 频 输 入 接 口 模 式 下 的 通 道 属 性 ...............................................................................................3-11表 3-2 常 用 分 辨 率 图 像 的 VI 参 考 配 置 ........................................................................................................3-12表 3-3 主 属 性 和 次 属 性 的 配 置 关 系 ...............................................................................................................3-37表 3-4 4D1 模 式 时 AdChnId 的 默 认 配 置 .......................................................................................................3-45表 3-5 2D1 模 式 时 AdChnId 的 默 认 配 置 .......................................................................................................3-45表 3-6 视 频 输 入 API 错 误 码 ..........................................................................................................................3-53文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司iii


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入3 视 频 输 入3.1 概 述Hi3520/Hi3515 芯 片 的 视 频 输 入 (VI) 模 块 实 现 的 功 能 : 将 芯 片 外 的 视 频 数 据 , 通 过ITU-R BT656/601/1120 接 口 或 digital camera 接 口 , 存 入 到 指 定 的 内 存 区 域 。Hi3520 芯片 有 4 个 VI 设 备 端 口 , 最 大 支 持 同 时 16 路 视 频 输 入 ;Hi3515 芯 片 也 有 4 个 VI 设 备端 口 , 但 最 大 支 持 同 时 8 路 视 频 输 入 。3.2 重 要 概 念• 视 频 输 入 设 备Hi3520/Hi3515 芯 片 均 有 4 个 VI 设 备 端 口 ,SDK 将 其 分 别 标 示 为 ViDev0、ViDev1、ViDev2 和 ViDev3。 每 个 设 备 又 可 接 1~4 路 实 际 的 捕 获 通 道 , 具 体 支 持的 通 道 数 与 该 设 备 的 输 入 接 口 模 式 和 外 接 AD 芯 片 相 关 。• 视 频 输 入 接 口 模 式Hi3520/Hi3515 芯 片 支 持 多 种 视 频 接 口 协 议 , 且 提 供 灵 活 多 样 的 配 置 与 各 种 外 围codec 对 接 。 支 持 的 接 口 时 序 包 括 ITU-R BT.656、ITU-R BT.601、ITU-RBT.1120、digital camera 等 , 具 体 的 时 序 支 持 情 况 请 参 见 《Hi3520 H.264 编 解 码 处理 器 用 户 指 南 》 和 《Hi3515 H.264 编 解 码 处 理 器 用 户 指 南 》 中 “ 第 6 章 视 频 接口 ”。4 个 视 频 输 入 设 备 都 能 支 持 ITU-R BT.656 接 口 模 式 , 但 只 有 设 备 0 和 设 备 2 才 支持 其 他 几 种 接 口 模 式 。 支 持 BT.656 接 口 模 式 时 , 又 能 支 持 几 种 不 同 的 多 路 复 用 工作 模 式 , 例 如 54M 2D1、54M 4CIF 以 及 108M 4D1。• 视 频 输 入 通 道视 频 输 入 通 道 与 物 理 上 的 实 际 视 频 采 集 通 道 一 一 对 应 , 视 频 输 入 通 道 归 属 于 视 频输 入 设 备 , 视 频 输 入 设 备 的 接 口 模 式 决 定 了 此 设 备 下 能 支 持 的 通 道 个 数 , 一 个 设备 最 大 支 持 4 个 通 道 , 依 次 用 ViChn0、ViChn1、ViChn2、ViChn3 标 示 ; 除 了 有多 路 复 用 功 能 的 BT.656 接 口 模 式 能 支 持 多 个 通 道 外 , 其 他 接 口 模 式 时 每 个 设 备 下只 能 支 持 1 个 通 道 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-1


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3.3 API 参 考HI_MPI_VI_SetPubAttr视 频 输 入 (VI) 实 现 启 用 视 频 输 入 设 备 、 视 频 输 入 通 道 、 绑 定 视 频 输 入 通 道 到 某 个 视频 输 出 通 道 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_VI_SetPubAttr: 设 置 VI 设 备 属 性 。• HI_MPI_VI_GetPubAttr: 获 取 VI 设 备 属 性 。• HI_MPI_VI_Enable: 启 用 VI 设 备 。• HI_MPI_VI_Disable: 禁 用 VI 设 备 。• HI_MPI_VI_SetChnAttr: 设 置 VI 通 道 属 性 。• HI_MPI_VI_GetChnAttr: 获 取 VI 通 道 属 性 。• HI_MPI_VI_EnableChn: 启 用 VI 通 道 。• HI_MPI_VI_DisableChn: 禁 用 VI 通 道 。• HI_MPI_VI_GetChnLuma: 获 取 VI 通 道 图 像 亮 度 。• HI_MPI_VI_GetFrame: 获 取 VI 原 始 帧 图 像 。• HI_MPI_VI_ReleaseFrame: 释 放 原 始 图 像 数 据 所 占 的 缓 存 。• HI_MPI_VI_BindOutput: 绑 定 VI、VO 通 道 。• HI_MPI_VI_UnBindOutput: 解 绑 定 VI、VO 通 道 。• HI_MPI_VI_SetSrcFrameRate: 设 置 视 频 输 入 通 道 的 原 始 帧 率 。• HI_MPI_VI_GetSrcFrameRate: 获 取 视 频 输 入 通 道 的 原 始 帧 率 。• HI_MPI_VI_SetFrameRate: 设 置 视 频 输 入 通 道 的 目 标 帧 率 。• HI_MPI_VI_GetFrameRate: 获 取 视 频 输 入 通 道 的 目 标 帧 率 。• HI_MPI_VI_SetUserPic: 设 置 用 户 图 片 的 帧 信 息 。• HI_MPI_VI_EnableUserPic: 启 用 插 入 用 户 图 片 。• HI_MPI_VI_DisableUserPic: 禁 用 插 入 用 户 图 片 。• HI_MPI_VI_SetMinorChnAttr: 设 置 VI 通 道 次 属 性 。• HI_MPI_VI_GetMinorChnAttr: 获 取 VI 通 道 次 属 性 。• HI_MPI_VI_ClearChnMinorAttr: 清 除 VI 通 道 次 属 性 。• HI_MPI_VI_EnableCascade: 启 用 VI-VO 级 联 。• HI_MPI_VI_DisableCascade: 禁 用 VI-VO 级 联 。• HI_MPI_VI_SetAdChnId: 设 置 与 VI 通 道 对 应 的 ADC 的 CHID。• HI_MPI_VI_GetAdChnId: 获 取 与 VI 通 道 对 应 的 ADC 的 CHID。• HI_MPI_VI_GetFd: 获 取 VI 通 道 的 设 备 文 件 句 柄 。【 描 述 】设 置 VI 设 备 属 性 。3-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入【 语 法 】HI_S32 HI_MPI_VI_SetPubAttr(VI_DEV ViDevId,const VI_PUB_ATTR_S*pstPubAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。pstPubAttr VI 设 备 属 性 指 针 。静 态 属 性 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_PARA 视 频 输 入 参 数 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_FAILED_NOTDISABLE 视 频 输 入 设 备 未 禁 用 。HI_ERR_VI_NOT_SUPPORT 操 作 不 支 持 , 当 前 版 本 不 支 持 此 配 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 在 调 用 前 要 保 证 VI 设 备 处 于 禁 用 状 态 。 如 果 VI 设 备 已 处 于 使 能 状 态 , 可 以 使 用HI_MPI_VI_Disable 来 禁 用 设 备 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-3


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 参 数 pstPubAttr 主 要 用 来 配 置 指 定 VI 设 备 的 视 频 接 口 模 式 , 用 于 与 外 围 codec 对接 , 支 持 的 接 口 模 式 包 括 BT.656、BT.601、digital camera、BT.1120 逐 行 以 及BT.1120 隔 行 模 式 。• 当 视 频 接 口 模 式 为 BT.656 时 , 需 要 设 置 时 分 复 用 的 工 作 模 式 enWorkMode, 目 前支 持 54M 2D1 模 式 和 108M 4 D1 模 式 ;VI 的 工 作 模 式 必 须 和 ADC 的 工 作 模 式 一致 才 能 正 常 捕 获 视 频 数 据 。− 2D1 工 作 模 式 时 , 每 个 VI 设 备 下 支 持 2 个 VI 通 道 ,Hi3520 有 4 个 VI 设 备 ,因 此 此 模 式 下 共 支 持 8 个 VI 通 道 ;− 4D1 工 作 模 式 时 , 每 个 VI 设 备 下 支 持 4 个 VI 通 道 ,Hi3520 有 4 个 VI 设 备 ,因 此 此 模 式 下 共 支 持 16 个 VI 通 道 。• 当 数 据 接 收 模 式 为 BT.1120 逐 行 或 隔 行 模 式 时 , 只 能 使 用 VI 设 备 0 和 设 备 2, 且每 个 设 备 下 只 支 持 1 个 通 道 。 需 要 配 置 以 下 选 项 :− 色 度 通 道 bIsChromaChn:BT.1120 接 口 模 式 时 需 要 占 用 两 个 VI 通 道 ( 设 备 0和 设 备 1 的 通 道 0, 或 者 设 备 2 和 设 备 3 的 通 道 0), 用 来 传 输 单 独 的 亮 度 和 色度 数 据 , 软 件 只 需 要 配 置 和 启 动 设 备 0 或 设 备 2,bIsChromaChn 即 用 于 配 置 此VI 设 备 是 否 传 输 色 度 数 据 ;−色 度 交 换 bChromaSwap: 用 于 配 置 色 度 的 存 储 顺 序 ,TRUE 表 示Cb1Cr1Cb0Cr0,FALSE 表 示 Cr1Cb1Cr0Cb0。• 当 数 据 接 收 模 式 为 BT.601 时 , 只 需 要 设 置 视 频 制 式 , 公 共 属 性 结 构 体 中 的 其 他 项不 用 设 置 ; 只 能 使 用 VI 设 备 0 和 设 备 2, 且 每 个 设 备 下 只 支 持 1 个 通 道 。• 当 数 据 接 收 模 式 为 Digital <strong>Camera</strong> 时 , 公 共 属 性 结 构 体 中 的 其 他 所 有 项 都 不 用 设置 ; 只 能 使 用 VI 设 备 0 和 设 备 2, 且 每 个 设 备 下 只 支 持 1 个 通 道 。【 举 例 】HI_S32 s32ret;VI_DEV ViDevId = 0;VI_CHN ViChn = 0;VO_DEV VoDevId = 2;VO_CHN VoChn = 0;VI_PUB_ATTR_S stPubAttr;VI_CHN_ATTR_S stChnAttr;stPubAttr.enInputMode = VI_MODE_BT656;stPubAttr.enWorkMode = VI_WORK_MODE_4D1;/* set public attribute of vi */s32ret = HI_MPI_VI_SetPubAttr(ViDevId, &stPubAttr);if (HI_SUCCESS != s32ret){printf("set vi pub attr err:0x%x\n", s32ret);return s32ret;}/* enable vi device*/s32ret = HI_MPI_VI_Enable(ViDevId);3-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入if (HI_SUCCESS != s32ret){printf("enable vi dev err:0x%x\n", s32ret);return s32ret;}stChnAttr.enCapSel = VI_CAPSEL_BOTH;stChnAttr.bDownScale = HI_FALSE;stChnAttr.stCapRect.s32X = 0;stChnAttr.stCapRect.s32Y = 0;stChnAttr.stCapRect.u32Width = 704;stChnAttr.stCapRect.u32Height = 288;stChnAttr.enViPixFormat = PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_420;stChnAttr.bChromaResample = HI_FALSE;stChnAttr.bHighPri = HI_FALSE;/* set channel attribute for vi chn */s32ret = HI_MPI_VI_SetChnAttr(ViDevId, ViChn, &stChnAttr);if (HI_SUCCESS != s32ret){printf("set vi chn attr err:0x%x\n", s32ret);return s32ret;}/* enable vi chn */s32ret = HI_MPI_VI_EnableChn(ViDevId, ViChn);if (HI_SUCCESS != s32ret){printf("enable vi chn err:0x%x\n", s32ret);return s32ret;}/* bind vi to vo */s32ret = HI_MPI_VI_BindOutput(ViDevId, ViChn, VoDevId ,VoChn);if (HI_SUCCESS != s32ret){printf("bind vi to vo err:0x%x\n", s32ret);return s32ret;}/* ... ... ... *//* unbind vi to vo */s32ret = HI_MPI_VI_UnBindOutput(ViDevId, ViChn, VoDevId ,VoChn);if (HI_SUCCESS != s32ret)文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-5


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考{}printf("unbind vi to vo err:0x%x\n", s32ret);return s32ret;HI_MPI_VI_GetPubAttr/* disable vi chn */s32ret = HI_MPI_VI_DisableChn(ViDevId, ViChn);if (HI_SUCCESS != s32ret){printf("disale vi chn err:0x%x\n", s32ret);return s32ret;}/* disable vi device*/s32ret = HI_MPI_VI_Disable(ViDevId);if (HI_SUCCESS != s32ret){printf("disale vi dev err:0x%x\n", s32ret);return s32ret;}【 相 关 主 题 】HI_MPI_VI_GetPubAttr【 描 述 】获 取 VI 设 备 属 性 。【 语 法 】HI_S32 HI_MPI_VI_GetPubAttr(VI_DEV ViDevId, VI_PUB_ATTR_S *pstPubAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。输 入pstPubAttr VI 设 备 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。3-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 设 备 属 性 未 设 置 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】如 果 未 设 置 VI 设 备 属 性 , 该 接 口 将 返 回 失 败 。【 举 例 】HI_S32 s32ret;VI_DEV ViDevId = 0;VI_PUB_ATTR_S stPubAttr;/* first set public attribute of vi and enable it*/HI_MPI_VI_Enables32ret = HI_MPI_VI_GetPubAttr(ViDevId, &stPubAttr);if (HI_SUCCESS != s32ret){printf("set vi pub attr err:0x%x\n", s32ret);return s32ret;}【 相 关 主 题 】HI_MPI_VI_SetPubAttr【 描 述 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-7


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考启 用 VI 设 备 。【 语 法 】HI_S32 HI_MPI_VI_Enable(VI_DEV ViDevId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 设 备 属 性 未 设 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 启 用 前 必 须 已 经 设 置 设 备 属 性 , 否 则 返 回 失 败 。• 可 重 复 启 用 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_Disable3-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入HI_MPI_VI_Disable【 描 述 】禁 用 VI 设 备 。【 语 法 】HI_S32 HI_MPI_VI_Disable(VI_DEV ViDevId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_FAILED_CHNOTDISABLE 视 频 输 入 通 道 未 禁 用 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 先 禁 用 所 有 VI 通 道 后 , 再 禁 用 VI 设 备 。• 可 重 复 禁 用 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-9


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】HI_MPI_VI_EnableHI_MPI_VI_SetChnAttr【 描 述 】设 置 VI 通 道 属 性 。【 语 法 】HI_S32 HI_MPI_VI_SetChnAttr(VI_DEV ViDevId,VI_CHN ViChn,constVI_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。pstAttr VI 通 道 属 性 指 针 。动 态 属 性 。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_PARA 视 频 输 入 参 数 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 设 备 或 通 道 的 属 性 未 配 置 。3-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入接 口 返 回 值含 义HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 先 设 置 VI 设 备 属 性 , 再 设 置 通 道 属 性 。• VI 通 道 属 性 可 以 动 态 设 置 , 即 在 VI 通 道 工 作 过 程 中 ( 启 动 VI 通 道 ) 也 可 以 调 用此 接 口 设 置 VI 通 道 的 各 项 属 性 。• 各 种 视 频 输 入 接 口 模 式 下 的 通 道 属 性 说 明 如 表 3-1 所 示 。表 3-1 各 种 视 频 输 入 接 口 模 式 下 的 通 道 属 性属 性 BT656 BT1120P BT1120I DC BT601采 集 区 域CapRect支 持 支 持 支 持 支 持 支 持帧 场 选 择CapSel支 持 配 置 为BOTH 和BOTTOM只 支 持 配置 为BOTH支 持 配 置 为BOTH 和BOTTOM只 支 持 配 置为 BOTH支 持 配 置 为BOTH 和BOTTOM水 平 缩 放DownScale支 持 不 支 持 不 支 持 支 持 支 持像 素 格 式PixFormat支 持 SP420和 SP422支 持 SP420和 SP422支 持 SP420和 SP422支 持 SP420和 SP422支 持 SP420 和SP422优 先 级HighPri a色 度 重 采 样ChromaResb支 持 支 持 支 持 支 持 支 持支 持 支 持 支 持 支 持 支 持a: 优 先 级 HighPri 用 于 配 置 当 前 通 道 的 内 部 处 理 优 先 级 别 , 一 般 配 置 为 False 既 可 。b: 色 度 重 采 样 ChromaRes 用 于 配 置 当 前 通 道 图 像 的 色 度 是 否 由 co-sited 到 interspersed 转 换 , 详 细说 明 请 参 见 《Hi3520 H.264 编 解 码 处 理 器 用 户 指 南 》, 没 有 特 殊 要 求 则 配 置 为 False。其 中 采 集 区 域 CapRect 的 配 置 说 明 :− 采 集 区 域 用 于 配 置 需 要 采 集 的 矩 形 图 像 范 围 及 相 对 与 原 始 图 像 起 始 点 的 位 置 。起 始 点 位 置 的 横 坐 标 以 像 素 为 单 位 , 纵 坐 标 以 行 为 单 位 。− 如 果 接 口 模 式 为 隔 行 采 集 模 式 ( 如 BT.656、BT.601、BT.1120I 模 式 ), 高 度u32Height 需 要 配 置 为 一 场 的 高 度 , 例 如 BT.656 的 D1 采 集 , 需 要 配 置 为 288文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-11


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 3-2 常 用 分 辨 率 图 像 的 VI 参 考 配 置−或 240; 如 果 接 口 模 式 为 逐 行 采 集 模 式 ( 如 BT.1120P、DC 模 式 ), 高 度u32Height 则 配 置 为 整 帧 图 像 的 实 际 高 度 。采 集 区 域 的 宽 度 需 要 配 置 为 水 平 1/2 缩 放 之 前 的 图 像 宽 度 , 例 如 CIF 图 像 的 采集 则 将 宽 度 配 置 为 704, 再 选 择 DownScale 为 TRUE。− 配 置 的 区 域 大 小 不 应 该 超 出 外 围 ADC 输 出 图 像 的 大 小 范 围 。− CapRect 中 所 有 项 的 取 值 都 必 须 是 偶 数 , 其 中 宽 度 值 还 要 求 必 须 是 4 的 整 数倍 。常 用 分 辨 率 图 像 的 VI 参 考 配 置 如 表 3-2 所 示 。属 性 D1 Half-D1 2CIF CIF VGA QVGA 720P 1080I采 集 区 域 横 坐 标CapRect.s32X采 集 区 域 纵 坐 标CapRect.s32Y采 集 区 域 宽 度CapRect.u32Width采 集 区 域 高 度CapRect.u32Height帧 场 选 择CapSel水 平 缩 放DownScale8 8 8 8 0 0 0 00 0 0 0 0 0 0 0704 704 704 704 640 320 1280 1920288/240 288/240 288/240 288/240 480 240 720 540BOTH BOTTOM BOTH BOTTOM BOTH BOTH BOTH BOTHFALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSEHI_MPI_VI_GetChnAttr【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_GetChnAttr【 描 述 】获 取 VI 通 道 属 性 。【 语 法 】3-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入HI_S32 HI_MPI_VI_GetChnAttr(VI_DEV ViDevId,VI_CHN ViChn,VI_CHN_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。pstAttr VI 通 道 属 性 指 针 。动 态 属 性 。输 入输 入输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 设 备 属 性 未 配 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】必 须 先 设 置 通 道 属 性 再 获 取 属 性 , 否 则 将 返 回 HI_ERR_VI_FAILED_NOTCONFIG。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-13


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 举 例 】HI_S32 s32ret;VI_DEV ViDevId = 0;VI_CHN ViChn = 0;VI_CHN_ATTR_S stChnAttr;/* first enable vi device and vi chn */HI_MPI_VI_EnableChn/* get channel attribute for vi chn */s32ret = HI_MPI_VI_GetChnAttr(ViDevId, ViChn, &stChnAttr);if (HI_SUCCESS != s32ret){printf("get vi chn attr err:0x%x\n", s32ret);return s32ret;}【 相 关 主 题 】HI_MPI_VI_SetChnAttr【 描 述 】启 用 VI 通 道 。【 语 法 】HI_S32 HI_MPI_VI_EnableChn(VI_DEV ViDevId,VI_CHN ViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM))。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。3-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_FAILED_NOTENABLE 视 频 输 入 设 备 或 通 道 未 启 用 。HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 通 道 属 性 未 设 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 先 启 用 VI 设 备 , 再 启 用 其 下 的 VI 通 道 。• VI 通 道 启 用 后 , 该 VI 通 道 即 可 开 始 正 常 工 作 并 采 集 视 频 数 据 , 此 后 即 可 通 过 调用 HI_MPI_VI_GetFrame 获 取 视 频 数 据 , 需 要 将 VI 数 据 发 送 到 VO 和 VENC, 则需 要 再 调 用 相 应 的 绑 定 接 口 。• 启 用 VI 通 道 前 , 必 须 已 经 设 置 通 道 属 性 , 否 则 返 回 失 败 。• 可 重 复 启 用 VI 通 道 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_DisableHI_MPI_VI_DisableChn【 描 述 】禁 用 VI 通 道 。【 语 法 】HI_S32 HI_MPI_VI_DisableChn(VI_DEV ViDevId,VI_CHN ViChn);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-15


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 禁 用 VI 通 道 后 , 此 VI 通 道 即 停 止 采 集 视 频 输 入 数 据 , 如 果 已 经 绑 定 VO 或VENC, 则 VO 或 VENC 将 不 会 再 接 收 到 视 频 图 像 。• 可 重 复 禁 用 VI 通 道 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_EnableChn3-16海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入HI_MPI_VI_GetChnLuma【 描 述 】获 取 VI 通 道 图 像 的 亮 度 接 口 。【 语 法 】HI_S32 HI_MPI_VI_GetChnLuma(VI_DEV ViDevId,VI_CHN ViChn,VI_CH_LUM_S*pstLuma);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pstLuma VI 通 道 亮 度 信 息 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_FAILED_NOTENABLE 视 频 输 入 设 备 或 通 道 未 启 用 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-17


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 库 文 件 :libmpi.a【 注 意 】此 接 口 获 取 的 亮 度 值 是 VI 原 始 捕 获 图 像 ( 即 水 平 缩 放 和 丢 场 之 前 的 图 像 ) 的 所 有 像 素亮 度 累 加 值 。【 举 例 】HI_S32 s32ret;VI_DEV ViDevId = 0;VI_CHN ViChn = 0;VI_CH_LUM_S stLuma;s32ret = HI_MPI_VI_GetChnLuma(ViDevId, ViChn, &stLuma);if (HI_SUCCESS != s32ret){printf("get vi luma err:0x%x\n", s32ret);return s32ret;}【 相 关 主 题 】无 。HI_MPI_VI_GetFrame【 描 述 】获 取 原 始 图 像 数 据 。【 语 法 】HI_S32 HI_MPI_VI_GetFrame(VI_DEV ViDevId,VI_CHN ViChn,VIDEO_FRAME_INFO_S*pstFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pstFrame 视 频 图 像 帧 信 息 结 构 指 针 。 输 出【 返 回 值 】3-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_FAILED_NOTENABLE 视 频 输 入 设 备 或 通 道 未 启 用 。HI_ERR_VI_BUF_EMPTY 视 频 输 入 缓 存 为 空 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 此 接 口 可 以 获 取 指 定 VI 通 道 当 前 采 集 的 视 频 图 像 信 息 , 图 像 信 息 主 要 包 括 图 像 的宽 度 、 高 度 、 像 素 格 式 、 时 间 戳 以 及 YUV 各 分 量 的 物 理 地 址 。• 此 接 口 需 在 通 道 已 启 用 后 才 有 效 。• 获 取 的 物 理 地 址 信 息 来 自 MPP 内 部 使 用 的 VideoBuffer, 因 此 使 用 完 之 后 , 必 须 要调 用 HI_MPI_VI_ReleaseFrame 接 口 释 放 其 内 存 。• pstFrame->stVFrame->u32PhyAddr[0] 和 pstFrame->stVFrame->u32PhyAddr[1] 分 别 指向 图 像 的 亮 度 分 量 和 色 度 分 量 的 物 理 地 址 。• pstFrame 结 构 中 图 像 虚 拟 地 址 无 效 。【 举 例 】HI_S32 s32ret;VI_DEV ViDevId = 0;VI_CHN ViChn = 0;VIDEO_FRAME_INFO_S stFrame;/* get video frame from vi chn */s32ret = HI_MPI_VI_GetFrame(ViDevId, ViChn, &stFrame)文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-19


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考if (HI_SUCCESS != s32ret){printf("get vi frame err:0x%x\n", s32ret);return s32ret;}/* deal with video frame ... */HI_MPI_VI_ReleaseFrame/* release video frame */(void)HI_MPI_VI_ReleaseFrame(ViDevId, ViChn, &stFrame);【 相 关 主 题 】HI_MPI_VI_ReleaseFrame【 描 述 】释 放 原 始 图 像 数 据 所 占 的 缓 存 。【 语 法 】HI_S32 HI_MPI_VI_ReleaseFrame(VI_DEV ViDevId,VI_CHN ViChn,constVIDEO_FRAME_INFO_S *pstRawFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pstFrame 视 频 图 像 帧 数 据 存 储 结 构 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】3-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_INVALID_PARA 输 入 参 数 无 效 。HI_ERR_VI_FAILED_NOTENABLE 视 频 输 入 设 备 或 通 道 未 启 用 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 该 接 口 需 在 通 道 已 启 用 后 才 有 效 。• 要 求 用 户 每 次 使 用 完 获 取 原 始 图 像 接 口 后 , 调 用 本 接 口 释 放 原 始 图 像 数 据 ( 即 必须 与 HI_MPI_VI_GetFrame 配 对 使 用 )。【 举 例 】请 参 见 HI_MPI_VI_GetFrame 的 举 例 。【 相 关 主 题 】HI_MPI_VI_GetFrameHI_MPI_VI_BindOutput【 描 述 】视 频 输 入 通 道 绑 定 到 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VI_BindOutput(VI_DEV ViDevId,VI_CHN ViChn, VO_DEV VoDev,VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-21


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。VoDevId VO 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn VO 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 或 输 出 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 绑 定 后 将 在 VO 直 接 显 示 VI 通 道 捕 获 的 图 像 , 不 需 作 用 户 态 获 取 和 释 放 的 操 作 即可 实 现 预 览 的 功 能 。• 支 持 一 个 VI 通 道 绑 定 到 多 个 VO 通 道 , 但 一 个 VO 通 道 同 时 只 能 被 一 个 VI 通 道绑 定 。• 可 以 不 解 绑 定 , 而 直 接 绑 定 到 另 外 一 个 VO 通 道 。• 可 以 重 复 绑 定 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。3-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入【 相 关 主 题 】HI_MPI_VI_UnBindOutputHI_MPI_VI_UnBindOutput【 描 述 】视 频 输 入 通 道 与 视 频 输 出 通 道 解 绑 定 。【 语 法 】HI_S32 HI_MPI_VI_UnBindOutput(VI_DEV ViDevId,VI_CHN ViChn, VO_DEVVoDevId,VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。VoDevId VO 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn VO 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 或 输 出 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-23


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_BindOutputHI_MPI_VI_SetSrcFrameRate【 描 述 】设 置 视 频 输 入 通 道 的 原 始 帧 率 。【 语 法 】HI_S32 HI_MPI_VI_SetSrcFrameRate(VI_DEV ViDevId,VI_CHN ViChn,HI_U32u32ViFramerate);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。u32ViFramerate 原 始 帧 率 。取 值 范 围 : 大 于 0。输 入输 入输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】3-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_PARA 输 入 参 数 无 效 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 这 里 设 置 的 原 始 帧 率 即 外 围 codec 输 出 给 Hi3520 VI 的 每 秒 帧 数 , 例 如 PAL 制 为25fps,NTSC 制 为 30fps,720P 为 60fps。• 与 原 始 帧 率 配 合 使 用 的 是 目 标 帧 率 ,VI 软 件 内 部 根 据 用 户 设 置 的 原 始 帧 率 和 目 标帧 率 , 进 行 视 频 图 像 帧 捕 获 的 帧 率 控 制 。【 举 例 】HI_S32 s32ret;HI_U32 u32SrcFrmRate = 25;HI_U32 u32FrmRate = 5;/* set public attribute of VI device*//* enable VI device*//* set attribute of VI channel*//* ... ... *//* set SRC framerate of VI channel*/s32ret = HI_MPI_VI_SetSrcFrameRate(0, 0, u32SrcFrmRate);if (s32ret){return -1;}/* set target framerate of VI channel*/s32ret = HI_MPI_VI_SetFrameRate(0, 0, u32FrmRate);if (s32ret){return -1;}/* enable VI channel*/文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-25


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考/* ... ... *//* also, you can set target framerate afer enable vi channel */【 相 关 主 题 】无 。HI_MPI_VI_GetSrcFrameRate【 描 述 】获 取 视 频 输 入 通 道 的 目 标 帧 率 。【 语 法 】HI_S32 HI_MPI_VI_GetSrcFrameRate(VI_DEV ViDevId,VI_CHN ViChn,HI_U32*pu32ViFramerate);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pu32ViFramerate 目 标 帧 率 指 针 。 输 出【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_FAILED_NOTCONFIG 原 始 帧 率 未 配 置 。3-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入HI_MPI_VI_SetFrameRate【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】如 果 未 设 置 原 始 帧 率 , 则 返 回 原 始 帧 率 未 配 置 的 错 误 码 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VI_SetFrameRate【 描 述 】设 置 视 频 输 入 通 道 的 目 标 帧 率 。【 语 法 】HI_S32 HI_MPI_VI_SetFrameRate(VI_DEV ViDevId,VI_CHN ViChn,HI_U32u32ViFramerate);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。u32ViFramerate 目 标 帧 率 。取 值 范 围 :[0, 30]输 入输 入输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-27


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_NOT_SUPPORT 操 作 不 支 持 。HI_ERR_VI_INVALID_PARA 输 入 参 数 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 支 持 视 频 输 入 通 道 设 置 指 定 范 围 内 的 任 意 目 标 帧 率 , 以 实 现 低 帧 率 采 集 视 频 帧 ,降 低 系 统 性 能 消 耗 。• 必 须 先 设 置 VI 通 道 的 原 始 输 入 帧 率 , 才 能 调 用 此 接 口 设 置 目 标 帧 率 , 且 目 标 帧 率不 能 大 于 原 始 帧 率 。• 支 持 VI 通 道 启 用 后 再 动 态 设 置 目 标 帧 率 。• 如 果 用 户 未 调 用 此 接 口 设 置 VI 目 标 帧 率 ,VI 软 件 内 部 不 做 任 何 帧 率 控 制 。【 举 例 】请 参 见 HI_MPI_VI_SetPubAttr 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VI_GetFrameRate【 描 述 】获 取 视 频 输 入 通 道 的 目 标 帧 率 。【 语 法 】HI_S32 HI_MPI_VI_GetFrameRate(VI_DEV ViDevId,VI_CHN ViChn,HI_U32*pu32ViFramerate);【 参 数 】3-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pu32ViFramerate 目 标 帧 率 指 针 。 输 出【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_FAILED_NOTCONFIG 目 标 帧 率 未 设 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】如 果 未 设 置 目 标 帧 率 , 则 返 回 目 标 帧 率 未 配 置 的 错 误 码 。【 举 例 】无 。【 相 关 主 题 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-29


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VI_SetUserPic【 描 述 】设 置 用 户 图 片 的 帧 信 息 。【 语 法 】HI_S32 HI_MPI_VI_SetUserPic(VI_DEV ViDevId,VI_CHN ViChn,VIDEO_FRAME_INFO_S *pstVFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pstVFrame 用 户 图 片 的 帧 信 息 结 构 指 针 。 输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_NOT_PERM 操 作 不 允 许 。HI_ERR_VI_INVALID_PARA 参 数 设 置 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h3-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入• 库 文 件 :libmpi.a【 注 意 】• 设 置 VI 用 户 图 片 用 于 将 VI 通 道 输 出 的 视 频 帧 图 像 修 改 为 用 户 配 置 的 指 定 YUV图 像 数 据 , 而 不 是 codec 的 视 频 数 据 ; 此 接 口 需 要 与 HI_MPI_VI_EnableUserPic、HI_MPI_VI_DisableUserPic 配 合 使 用 。• 目 前 此 接 口 中 的 参 数 VI 设 备 和 通 道 号 未 被 使 用 , 即 设 置 用 户 图 像 针 对 的 是 所 有VI 通 道 , 而 不 是 具 体 某 个 VI 通 道 。• 设 置 完 用 户 图 片 后 , 即 可 调 用 HI_MPI_VI_EnableUserPic 接 口 对 指 定 VI 通 道 启 用插 入 用 户 图 片 , 此 时 VI 通 道 输 出 的 数 据 即 为 所 配 置 的 图 片 YUV 数 据 ; 一 般 用 于视 频 信 号 丢 失 时 ,VI 通 道 输 出 NoVideo 图 片 。• 配 置 的 用 户 图 片 大 小 应 该 与 VI 通 道 大 小 相 一 致 ; 如 果 不 一 致 ,VI 内 部 会 自 动 将其 缩 放 为 VI 通 道 大 小 。• 用 户 图 片 的 视 频 帧 信 息 结 构 中 , 需 要 设 置 图 片 的 宽 度 、 高 度 、 行 间 隔 、YUV 格 式以 及 Y 分 量 和 C 分 量 数 据 的 物 理 地 址 ; 可 以 从 MPP 公 共 缓 冲 池 中 获 取 一 块 相 应大 小 的 视 频 缓 存 块 , 从 缓 存 块 信 息 中 得 到 存 放 YUV 数 据 的 物 理 地 址 , 然 后 将 物 理地 址 映 射 到 用 户 空 间 , 即 可 对 这 块 内 存 进 行 YUV 数 据 的 填 充 操 作 ; 注 意 只 支 持semi-planar YUV420、semi-planarYUV422 的 格 式 , 因 此 填 充 数 据 时 需 要 遵 循 先 存Y 分 量 数 据 , 再 存 UV 分 量 间 插 数 据 的 存 储 顺 序 ( 小 端 字 节 序 先 V 后 U)。• VIU 模 块 在 启 用 插 入 用 户 图 片 时 , 会 直 接 使 用 设 置 的 用 户 图 片 帧 信 息 中 的 物 理 地址 , 因 此 设 置 完 用 户 图 片 后 , 不 应 该 释 放 或 销 毁 其 视 频 缓 存 块 , 除 非 确 认 不 再 使用 。 可 以 通 过 再 次 调 用 此 接 口 设 置 另 外 一 块 VideoBuffer 以 修 改 图 片 信 息 。• 启 用 VI 通 道 或 启 用 插 入 用 户 图 片 时 , 此 接 口 都 可 以 动 态 调 用 。【 举 例 】HI_S32HI_U32HI_U32HI_U32HI_U32HI_U32HI_U32HI_U32VB_BLKHI_U32HI_U8s32ret;u32Width;u32Height;u32LStride;u32CStride;u32LumaSize;u32ChrmSize;u32Size;VbBlk;u32PhyAddr;*pVirAddr;/* you need get width and height of pictrue */u32LumaSize = (u32LStride * u32Height);u32ChrmSize = (u32CStride * u32Height) >> 2;/* 420*/u32Size = u32LumaSize + (u32ChrmSize


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考{return -1;}/* get physical address*/u32PhyAddr = HI_MPI_VB_Handle2PhysAddr(VbBlk);if (0 == u32PhyAddr){return -1;}/* mmap physical address to virtual address*//* ... ... *//* get pool id */pstVFrameInfo->u32PoolId = HI_MPI_VB_Handle2PoolId(VbBlk);if (VB_INVALID_POOLID == pstVFrameInfo->u32PoolId){return -1;}pstVFrameInfo->stVFrame.u32PhyAddr[0] = u32PhyAddr;pstVFrameInfo->stVFrame.u32PhyAddr[1] = pstVFrameInfo->stVFrame.u32PhyAddr[0] + u32LumaSize;pstVFrameInfo->stVFrame.u32PhyAddr[2] = pstVFrameInfo->stVFrame.u32PhyAddr[1] + u32ChrmSize;pstVFrameInfo->stVFrame.pVirAddr[0] = pVirAddr;pstVFrameInfo->stVFrame.pVirAddr[1] = pstVFrameInfo->stVFrame.pVirAddr[0] + u32LumaSize;pstVFrameInfo->stVFrame.pVirAddr[2] = pstVFrameInfo->stVFrame.pVirAddr[1] + u32ChrmSize;pstVFrameInfo->stVFrame.u32Width = u32Width;pstVFrameInfo->stVFrame.u32Height = u32Height;pstVFrameInfo->stVFrame.u32Stride[0] = u32LStride;pstVFrameInfo->stVFrame.u32Stride[1] = u32CStride;pstVFrameInfo->stVFrame.u32Stride[2] = u32CStride;pstVFrameInfo->stVFrame.enPixelFormat =PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_420;/* now you need get YUV Semi Palnar Data ,fill them to the virtualaddress *//* ... ... *//* ... ... */3-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入/* enabel VI channel ... ... *//* first set user pic info*/s32ret = HI_MPI_VI_SetUserPic(0, 0, pstVFrameInfo);if (s32ret){return -1;}/* ... ... *//* enable insert user pic if you need */s32ret = HI_MPI_VI_EnableUserPic(0, 0);if (s32ret){return -1;}/* ... ... *//* disable insert user pic if you don't need */s32ret = HI_MPI_VI_DisableUserPic(0, 0);if (s32ret){return -1;}【 相 关 主 题 】无 。HI_MPI_VI_EnableUserPic【 描 述 】启 用 插 入 用 户 图 片 。【 语 法 】HI_S32 HI_MPI_VI_EnableUserPic(VI_DEV ViDevId,VI_CHN ViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-33


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_NOT_PERM 操 作 不 允 许 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 启 用 插 入 用 户 图 片 之 前 , 需 要 先 设 置 用 户 图 片 帧 信 息 。• 启 用 插 入 用 户 图 片 之 后 , 当 前 VI 通 道 即 输 出 配 置 的 用 户 图 片 帧 数 据 。• 此 接 口 可 以 重 复 调 用 。【 举 例 】请 参 见 HI_MPI_VI_SetUserPic 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VI_DisableUserPic【 描 述 】3-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入禁 用 插 入 用 户 图 片 。【 语 法 】HI_S32 HI_MPI_VI_DisableUserPic(VI_DEV ViDevId,VI_CHN ViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_NOT_PERM 操 作 不 允 许 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• VI 通 道 不 再 需 要 输 出 用 户 图 片 时 , 应 该 调 用 此 接 口 以 恢 复 输 出 AD 的 原 始 视 频 数据 。• 此 接 口 可 以 重 复 调 用 。【 举 例 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-35


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考请 参 见 HI_MPI_VI_SetUserPic 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VI_SetMinorChnAttr【 描 述 】设 置 VI 通 道 次 属 性 。【 语 法 】HI_S32 HI_MPI_VI_SetMinorChnAttr(VI_DEV ViDevId,VI_CHN ViChn,constVI_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。pstAttr VI 通 道 次 属 性 指 针 。动 态 属 性 。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_PARA 输 入 参 数 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。3-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入接 口 返 回 值含 义HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 设 备 或 通 道 的 属 性 未 配 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 默 认 情 况 下 ,VI 通 道 将 按 HI_MPI_VI_SetChnAttr 接 口 中 设 置 的 分 辨 率 来 采 集 连 续的 视 频 帧 图 像 ; 使 用 HI_MPI_VI_SetMinorChnAttr 接 口 的 目 的 是 设 置 另 外 一 个 分辨 率 ,VI 通 道 将 会 按 照 配 置 的 帧 率 来 轮 流 采 集 两 种 不 同 分 辨 率 的 视 频 图 像 。• 所 谓 “ 通 道 次 ( 要 ) 属 性 ” 是 相 对 主 ( 要 ) 属 性 而 言 的 , 主 属 性 在 函 数HI_MPI_VI_SetChnAttr 中 配 置 ; 主 、 次 属 性 的 概 念 只 有 在 对 VI 做 了 帧 率 控 制 时 才有 效 ,VI 采 集 图 像 时 , 按 配 置 的 目 标 帧 率 采 集 主 属 性 大 小 的 图 像 , 其 他 帧 则 按 次属 性 大 小 采 集 。例 如 : 设 置 原 始 帧 率 为 25, 目 标 帧 率 为 5, 主 属 性 大 小 为 D1, 次 属 性 大 小 为CIF, 则 实 际 视 频 捕 获 则 为 5 帧 输 出 D1 大 小 图 像 , 剩 余 20 帧 输 出 CIF 大 小 图像 。 主 属 性 和 次 属 性 的 配 置 关 系 如 表 3-3 所 示 。表 3-3 主 属 性 和 次 属 性 的 配 置 关 系属 性 AD 主 属 性 次 属 性分 辨 率 等 - SetChnAttr SetChnMinorAttr帧 率 SetSrcFrameRate FrameRate SrcFrameRate - FrameRate• 如 果 已 配 置 VI 帧 率 , 但 未 配 置 通 道 次 属 性 , 则 按 照 目 标 帧 率 只 输 出 主 属 性 大 小 的视 频 图 像 。• 如 果 已 经 配 置 了 通 道 次 属 性 , 而 中 途 需 要 关 闭 次 属 性 图 像 采 集 , 则 可 以 调 用HI_MPI_VI_ClearChnMinorAttr 接 口 将 此 属 性 清 除 。• FrameRate 配 置 为 0, 表 示 不 输 出 主 属 性 图 像 , 全 部 输 出 次 属 性 图 像 。• FrameRate 配 置 为 与 SrcFrameRate 相 等 , 则 表 示 不 输 出 次 属 性 图 像 , 全 部 输 出 主属 性 图 像 。• 可 以 在 VI 通 道 启 用 后 动 态 更 改 通 道 次 属 性 。• 使 用 此 方 式 输 出 图 像 大 小 持 续 变 化 的 VI 视 频 图 像 给 VENC 和 VO 模 块 时 , 需 要 对VENC 和 VO 的 图 像 显 示 做 特 殊 配 置 :−调 用 HI_MPI_VPP_SetConf 设 置 编 码 通 道 组 缩 放 模 式 为VPP_SCALE_MODE_USEBOTTOM2。− 调 用 HI_MPI_VO_SetChnField 设 置 VO 显 示 底 场 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-37


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 举 例 】HI_S32 s32ret;HI_U32 u32SrcFrmRate = 25;HI_U32 u32FrmRate = 5;VI_CHN_ATTR_S stAttr;/* set public attribute of VI device*//* ... ... *//* enable VI device*//* ... ... *//* set main attribute of VI channel, size is D1 *//* ... ... */HI_MPI_VI_GetChnAttr(ViDevId,ViChn,&stAttr);stAttr.enCapSel = VI_CAPSEL_BOTTOM;stAttr.bDownScale = HI_TRUE;/* set minor attribute of VI channel, size is CIF */if (HI_MPI_VI_SetChnMinorAttr(ViDevId,ViChn,&stAttr)){BBIT_ERR("set chn attr ex fail\n");return -1;}/* set SRC framerate of VI channel*/s32ret = HI_MPI_VI_SetSrcFrameRate(0, 0, u32SrcFrmRate);if (s32ret){return -1;}/* set target framerate of VI channel*/s32ret = HI_MPI_VI_SetFrameRate(0, 0, u32FrmRate);if (s32ret){return -1;}/* enable VI channel*//* ... ... *//* enable VO dev and VO chn */3-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入/* ... ... *//* set vo field bottom */HI_MPI_VO_SetChnField(i, VO_FIELD_BOTTOM);/* create group/venc *//* ... ... *//* set group scale mode VPP_SCALE_MODE_USEBOTTOM2 */VIDEO_PREPROC_CONF_S stConf;HI_MPI_VPP_GetConf(s32Grp, &stConf);stConf.enScaleMode = VPP_SCALE_MODE_USEBOTTOM2;HI_MPI_VPP_SetConf(s32Grp, &stConf);/* ... ... *//* if you not need minor attr capture */if (HI_MPI_VI_ClearChnMinorAttr(ViDevId,ViChn)){BBIT_ERR("clear chn minor attr fail\n");return -1;}【 相 关 主 题 】HI_MPI_VI_GetMinorChnAttrHI_MPI_VI_GetMinorChnAttr【 描 述 】获 取 VI 通 道 次 属 性 。【 语 法 】HI_S32 HI_MPI_VI_GetMinorChnAttr(VI_DEV ViDevId,VI_CHN ViChn,VIDEO_FRAME_INFO_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。pstAttr VI 通 道 属 性 指 针 。动 态 属 性 。输 入输 入输 出文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-39


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_INVALID_NULL_PTR 空 指 针 错 误 。HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 属 性 未 配 置 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】必 须 先 设 置 通 道 属 性 再 获 取 属 性 , 否 则 将 返 回 HI_ERR_VI_FAILED_NOTCONFIG。【 举 例 】请 参 见 HI_MPI_VI_SetMinorChnAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_SetChnAttrHI_MPI_VI_ClearChnMinorAttr【 描 述 】清 除 VI 通 道 次 属 性 。【 语 法 】HI_S32 HI_MPI_VI_ClearChnMinorAttr(VI_DEV ViDevId,VI_CHN ViChn);【 参 数 】3-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 已 经 配 置 通 道 次 属 性 , 可 以 调 用 此 接 口 再 将 其 取 消 。• 本 接 口 可 以 在 通 道 启 用 状 态 下 调 用 。【 举 例 】请 参 见 HI_MPI_VI_SetMinorChnAttr 的 举 例 。【 相 关 主 题 】HI_MPI_VI_SetChnAttrHI_MPI_VI_EnableCascade【 描 述 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-41


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VI 启 用 VI-VO 级 联 功 能 。【 语 法 】HI_S32 HI_MPI_VI_EnableCascade(VI_DEV ViDevId, VI_CHN ViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_NOT_SUPPORT 操 作 不 支 持 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• VIVO 多 片 级 联 环 境 中 , 主 片 应 该 调 用 此 接 口 启 用 VI 的 级 联 功 能 。• 启 用 级 联 功 能 的 VI 通 道 必 须 配 置 为 BT.1120 逐 行 模 式 。• Hi3515 不 支 持 视 频 级 联 功 能 。3-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入【 举 例 】无 。【 相 关 主 题 】• HI_MPI_VI_DisableCascade• HI_MPI_VI_SetChnAttrHI_MPI_VI_DisableCascade【 描 述 】VI 禁 用 VIVO 级 联 功 能 。【 语 法 】HI_S32 HI_MPI_VI_DisableCascade(VI_DEV ViDevId, VI_CHN ViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-43


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VI_SetAdChnId• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VI_EnableCascade【 描 述 】设 置 与 VI 通 道 对 应 的 ADC 的 CHID。【 语 法 】HI_S32 HI_MPI_VI_SetAdChnId(VI_DEV ViDevId, VI_CHN ViChn, HI_U32u32AdChnId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入u32AdChnId ADC 的 CHID 序 号 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。3-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入接 口 返 回 值含 义HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】• 接 口 时 序 为 BT.656 格 式 时 , 支 持 108M 4D1 和 54M 2D1 时 分 复 用 工 作 模 式 , 与有 此 类 功 能 的 codec 对 接 时 ,Hi3520 VI 内 部 需 要 通 过 codec 提 供 的 CHID 标 识 来识 别 不 同 的 通 道 。• Hi3520/Hi3515 通 过 SAV/EAV 中 纠 错 位 的 低 2bit 来 读 取 通 道 号 标 识 。• 4D1 模 式 时 默 认 的 AdChnId 配 置 如 表 3-4 所 示 。表 3-4 4D1 模 式 时 AdChnId 的 默 认 配 置类 别编 号ViDev 0 1 2 3ViChn 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3AdChn 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3• 2D1 模 式 时 默 认 的 AdChnId 配 置 如 表 3-5 所 示 。表 3-5 2D1 模 式 时 AdChnId 的 默 认 配 置类 别编 号ViDev 0 1 2 3ViChn 0 1 0 1 0 1 0 1AdChn 0 1 2 3 0 1 2 3• 如 果 默 认 AdChn 配 置 不 能 满 足 要 求 , 需 要 调 用 本 接 口 进 行 修 改 。 由 于 SDK 内 部是 在 调 用 HI_MPI_VI_SetPubAttr 接 口 中 载 入 默 认 配 置 , 因 此 请 在 调 用HI_MPI_VI_SetPubAttr 接 口 后 再 调 用 本 接 口 修 改 AdChnId 配 置 。【 举 例 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-45


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】HI_MPI_VI_GetAdChnIdHI_MPI_VI_GetAdChnId【 描 述 】获 取 与 VI 通 道 对 应 的 ADC 的 CHID。【 语 法 】HI_S32 HI_MPI_VI_GetAdChnId(VI_DEV ViDevId, VI_CHN ViChn, HI_U32*pu32AdChnId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入pu32AdChnId ADC 的 CHID 序 号 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效 。HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效 。HI_ERR_VI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h3-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入HI_MPI_VI_GetFd• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VI_SetAdChnId【 描 述 】获 取 VI 通 道 对 应 的 设 备 文 件 句 柄 。【 语 法 】HI_S32 HI_MPI_VI_GetFd(VI_DEV ViDevId,VI_CHN ViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_vi.h、mpi_vi.h• 库 文 件 :libmpi.a【 注 意 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-47


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考用 户 可 以 获 取 文 件 句 柄 实 现 多 通 道 select 获 取 视 频 帧 数 据 。【 举 例 】VI_DEV ViDevId = 0;VI_CHN ViChn = 0;VIDEO_NORM_E stNorm;HI_S32 s32ViFd = 0;/* enable vi dev and vi chn *//* get video frame from vi chn */s32ViFd = HI_MPI_VI_GetFd(ViDevId, ViChn);if (s32ViFd


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入} VI_CAPSEL_E;【 成 员 】成 员 名 称描 述VI_CAPSEL_TOP 选 择 顶 场 。VI_CAPSEL_BOTTOM 选 择 底 场 ( 推 荐 )。VI_CAPSEL_BOTH 选 择 顶 底 两 场 。VI_INPUT_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VI_CHN_ATTR_S【 说 明 】定 义 视 频 输 入 接 口 模 式 。【 定 义 】typedef enum hiVI_INPUT_MODE_E{VI_MODE_BT656=0,VI_MODE_BT601,VI_MODE_DIGITAL_CAMERA,VI_MODE_BT1120_PROGRESSIVE,VI_MODE_BT1120_INTERLACED,VI_MODE_BT601_SEP,VI_MODE_DIGITAL_CAMERA_SEP,VI_MODE_BUTT} VI_INPUT_MODE_E;【 成 员 】成 员 名 称描 述VI_MODE_BT656 ITUR BT.656 模 式 。VI_MODE_BT601 ITUR BT.601 模 式 。VI_MODE_BT1120_PROGRESSIVE ITUR BT.1120 逐 行 模 式 。VI_MODE_BT1120_INTERLACED ITUR BT.1120 隔 行 模 式 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-49


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述VI_MODE_DIGITAL_CAMERA 数 字 摄 像 头 模 式 。VI_MODE_BT601_SEP ITUR BT.601 亮 色 度 分 离 模 式 。VI_MODE_DIGITAL_CAMERA_SEP 数 字 摄 像 头 亮 色 度 分 离 模 式 。VI_WORK_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VI_PUB_ATTR_S【 说 明 】定 义 视 频 输 入 工 作 模 式 。【 定 义 】typedef enum hiVI_WORK_MODE_E{VI_WORK_MODE_1D1=0,VI_WORK_MODE_2D1,VI_WORK_MODE_4HALFD1,VI_WORK_MODE_4D1,VI_WORK_MODE_BUTT} VI_WORK_MODE_E;【 成 员 】成 员 名 称描 述VI_WORK_MODE_1D1 1D1 工 作 模 式 。VI_WORK_MODE_2D1 2D1 工 作 模 式 。VI_WORK_MODE_4HALFD1 4Half D1 工 作 模 式 。VI_WORK_MODE_4D1 4D1 工 作 模 式 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VI_PUB_ATTR_S3-50海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入VI_CHN_ATTR_S【 说 明 】定 义 视 频 输 入 通 道 属 性 结 构 体 。【 定 义 】typedef struct hiVI_CHN_ATTR_S{RECT_SstCapRect;VI_CAPSEL_E enCapSel;HI_BOOLbDownScale;HI_BOOLbChromaResample;HI_BOOLbHighPri;PIXEL_FORMAT_E enViPixFormat;}VI_CHN_ATTR_S;【 成 员 】成 员 名 称描 述stCapRect 通 道 捕 获 区 域 属 性 。动 态 属 性 。enCapSel 帧 场 选 择 。动 态 属 性 。bDownScale 1/2 水 平 压 缩 选 择 。动 态 属 性 。bChromaResample 色 度 重 采 样 选 择 。动 态 属 性 。bHighPri 高 优 先 级 选 择 。动 态 属 性 。enViPixFormat 像 素 格 式 。动 态 属 性 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• RECT_S• VI_CAPSEL_E• HI_MPI_VI_SetChnAttr文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-51


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VI_PUB_ATTR_S【 说 明 】定 义 视 频 输 入 设 备 的 公 共 属 性 结 构 体 。【 定 义 】typedef struct hiVI_PUB_ATTR_S{VI_INPUT_MODE_E enInputMode;VI_WORK_MODE_E enWorkMode;VIDEO_NORM_E enViNorm;HI_BOOL bIsChromaChn;HI_BOOL bChromaSwap;}VI_PUB_ATTR_S;【 成 员 】成 员 名 称描 述enInputMode 视 频 输 入 接 口 模 式 。静 态 属 性 。enWorkMode 视 频 输 入 工 作 模 式 。静 态 属 性 。enViNorm 接 口 制 式 。静 态 属 性 。bIsChromaChn 是 否 色 度 通 道 。bChromaSwap 是 否 色 度 数 据 交 换 。VI_CH_LUM_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VI_INPUT_MODE_E• VI_WORK_MODE_E• HI_MPI_VI_SetPubAttr【 说 明 】定 义 视 频 输 入 通 道 的 图 像 亮 度 信 息 结 构 体 。【 定 义 】3-52海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考3 视 频 输 入typedef struct hiVI_CH_LUM_S{HI_U32 u32FramId;HI_U32 u32Lum;}VI_CH_LUM_S;【 成 员 】成 员 名 称描 述u32FramId 原 始 图 像 帧 序 号 。u32Lum 亮 度 值 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VI_GetChnLuma3.5 错 误 码视 频 输 入 API 错 误 码 如 表 3-6 所 示 。表 3-6 视 频 输 入 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0108001 HI_ERR_VI_INVALID_DEVID 视 频 输 入 设 备 号 无 效0xA0108002 HI_ERR_VI_INVALID_CHNID 视 频 输 入 通 道 号 无 效0xA0108003 HI_ERR_VI_INVALID_PARA 视 频 输 入 参 数 设 置 无 效0xA0108006 HI_ERR_VI_INVALID_NULL_PTR 输 入 参 数 空 指 针 错 误0xA0108007 HI_ERR_VI_FAILED_NOTCONFIG 视 频 输 入 通 道 属 性 未 配 置0xA0108008 HI_ERR_VI_NOT_SUPPORT 操 作 不 支 持0xA0108009 HI_ERR_VI_NOT_PERM 操 作 不 允 许0xA010800C HI_ERR_VI_NOMEM 分 配 内 存 失 败0xA010800E HI_ERR_VI_BUF_EMPTY 视 频 输 入 缓 存 为 空0xA010800F HI_ERR_VI_BUF_FULL 视 频 输 入 缓 存 为 满0xA0108010 HI_ERR_VI_SYS_NOTREADY 视 频 输 入 系 统 未 初 始 化文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司3-53


3 视 频 输 入Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考错 误 代 码 宏 定 义 描 述0xA0108012 HI_ERR_VI_BUSY 视 频 输 入 系 统 忙0xA0108040 HI_ERR_VI_FAILED_NOTENABLE 视 频 输 入 设 备 或 通 道 未 启用0xA0108041 HI_ERR_VI_FAILED_NOTDISABLE 视 频 输 入 设 备 未 禁 用0xA0108042HI_ERR_VI_FAILED_CHNOTDISABLE视 频 输 入 通 道 未 禁 用3-54海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录4 视 频 输 出 .......................................................................................................................................4-14.1 概 述 ..............................................................................................................................................................4-14.2 重 要 概 念 ......................................................................................................................................................4-14.3 API 参 考 .......................................................................................................................................................4-24.4 数 据 类 型 ..................................................................................................................................................4-1094.5 错 误 码 ......................................................................................................................................................4-129文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考插 图 目 录插 图 目 录图 4-1 视 频 层 属 性 的 相 关 概 念 示 意 ( 基 本 处 理 模 式 ).............................................................................4-114图 4-2 视 频 层 属 性 的 相 关 概 念 示 意 ( 设 置 有 效 区 处 理 模 式 ).................................................................4-115图 4-3 局 部 放 大 原 理 示 意 .............................................................................................................................4-124文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司iii


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 4-1 视 频 输 出 API 错 误 码 ........................................................................................................................4-129文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司v


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出4 视 频 输 出4.1 概 述VOU(Video Output Unit) 模 块 主 动 从 内 存 相 应 位 置 读 取 视 频 和 图 形 数 据 , 并 通 过 相 应的 显 示 设 备 输 出 。Hi3520 支 持 HD( 高 清 )、AD( 辅 助 ) 和 SD( 标 清 ) 三 个 显 示 设备 , 同 时 支 持 5 个 图 形 层 。Hi3515 支 持 HD、SD 两 个 显 示 设 备 , 同 时 支 持 4 个 图 形层 。VOU 的 每 个 设 备 最 多 支 持 32 路 通 道 视 频 图 像 显 示 , 通 道 之 间 支 持 按 优 先 级 叠加 。4.2 重 要 概 念• 视 频 级 联从 片 预 览 图 像 的 输 出 以 BT.1120 数 据 格 式 连 接 到 下 级 芯 片 的 视 频 输 入 端 , 通 过 这样 的 方 式 连 接 多 个 芯 片 , 将 芯 片 上 的 图 像 传 输 到 主 片 同 时 输 出 显 示 。Hi3520 的HD 设 备 支 持 视 频 级 联 。 视 频 级 联 的 详 细 信 息 请 参 见 《Hi3520 视 频 级 联 应 用 指南 》。由 于 Hi3515 不 支 持 视 频 级 联 , 文 档 中 涉 及 视 频 级 联 的 API、 数 据 类 型 及 相 关 描 述 仅 针 对Hi3520。• 同 步 回 放将 多 个 视 频 输 出 通 道 的 解 码 图 像 按 照 其 时 间 戳 进 行 统 一 输 出 。 为 了 达 到 多 个 画 面的 回 放 步 调 一 致 , 先 将 多 个 通 道 注 册 到 一 个 同 步 组 中 , 然 后 同 步 组 按 照 播 放 帧 率将 该 时 刻 的 图 像 输 出 进 行 同 步 。• 通 道 优 先 级当 同 一 输 出 设 备 上 有 多 个 通 道 同 时 输 出 显 示 时 , 按 照 优 先 级 顺 序 对 输 出 图 像 进 行叠 加 。 当 各 个 通 道 的 画 面 有 重 叠 区 域 时 , 优 先 级 高 的 图 像 显 示 在 上 层 。 如 果 各 个通 道 优 先 级 一 致 , 则 通 道 号 越 大 的 默 认 优 先 级 越 高 。• 分 辨 率分 辨 率 主 要 有 以 下 3 种 概 念 :− 设 备 分 辨 率 指 该 设 备 的 输 出 有 效 像 素 点 数 , 由 设 备 时 序 决 定 。− 显 示 分 辨 率 指 画 面 在 显 示 设 备 上 的 有 效 显 示 区 域 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-1


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考− 图 像 分 辨 率 指 图 像 本 身 的 有 效 像 素 点 数 。• 局 部 放 大将 显 示 画 面 上 的 一 部 分 图 像 进 行 放 大 显 示 , 放 大 显 示 的 源 区 域 从 源 图 像 上 截 取 ,放 大 显 示 的 目 标 区 域 是 该 显 示 通 道 的 通 道 大 小 。• 图 形 层 绑 定Hi3520/Hi3515 有 多 个 视 频 层 和 图 形 层 。 其 中 有 两 个 图 形 层 G1 和 HC( 硬 件 鼠 标层 ) 可 以 动 态 绑 定 到 高 清 设 备 或 者 标 清 设 备 ( 这 里 的 标 清 设 备 指 Hi3520 上 的 AD或 者 Hi3515 上 的 SD) 上 , 即 这 两 个 图 形 层 上 显 示 的 画 面 可 以 在 高 清 设 备 和 标 清设 备 上 移 动 。4.3 API 参 考视 频 输 出 (VO) 实 现 启 用 视 频 输 出 设 备 或 通 道 、 发 送 视 频 数 据 到 输 出 通 道 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:设 备 操 作 :• HI_MPI_VO_Enable: 启 用 视 频 输 出 设 备 。• HI_MPI_VO_Disable: 禁 用 视 频 输 出 设 备 。• HI_MPI_VO_SetPubAttr: 设 置 视 频 输 出 设 备 的 公 共 属 性 。• HI_MPI_VO_GetPubAttr: 获 取 视 频 输 出 设 备 的 公 共 属 性 。• HI_MPI_VO_CloseFd: 关 闭 所 有 视 频 输 出 设 备 的 Fd。视 频 层 操 作 :• HI_MPI_VO_EnableVideoLayer: 使 能 视 频 层 。• HI_MPI_VO_DisableVideoLayer: 禁 止 视 频 层 。• HI_MPI_VO_SetVideoLayerAttr: 设 置 视 频 层 属 性 。• HI_MPI_VO_GetVideoLayerAttr: 获 取 视 频 层 属 性 。• HI_MPI_VO_SetDisplayRect: 设 置 视 频 输 出 的 显 示 区 域 。• HI_MPI_VO_GetDisplayRect: 获 取 视 频 输 出 的 显 示 区 域 。• HI_MPI_VO_SetValidImgRect: 设 置 图 像 输 出 有 效 区 域 。• HI_MPI_VO_GetValidImgRect: 获 取 图 像 输 出 有 效 区 域 。通 道 操 作 :• HI_MPI_VO_EnableChn: 启 用 指 定 的 视 频 输 出 通 道 。• HI_MPI_VO_DisableChn: 禁 用 指 定 的 视 频 输 出 通 道 。• HI_MPI_VO_SetChnAttr: 设 置 指 定 视 频 输 出 通 道 的 属 性 。• HI_MPI_VO_GetChnAttr: 获 取 指 定 视 频 输 出 通 道 的 属 性 。• HI_MPI_VO_SendFrame: 将 视 频 图 像 送 入 指 定 视 频 输 出 通 道 显 示 。• HI_MPI_VO_SetChnField: 设 置 指 定 视 频 输 出 通 道 的 帧 场 显 示 策 略 。• HI_MPI_VO_GetChnField: 获 取 指 定 视 频 输 出 通 道 的 帧 场 显 示 策 略 。4-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出• HI_MPI_VO_ChnPause: 暂 停 指 定 的 视 频 输 出 通 道 。• HI_MPI_VO_ChnResume: 恢 复 指 定 的 视 频 输 出 通 道 。• HI_MPI_VO_ChnStep: 单 帧 播 放 指 定 的 视 频 输 出 通 道 。• HI_MPI_VO_SetChnFilter: 设 置 指 定 视 频 输 出 通 道 的 缩 放 系 数 。• HI_MPI_VO_GetChnFilter: 获 取 指 定 视 频 输 出 通 道 的 缩 放 系 数 。• HI_MPI_VO_SetZoomInWindow: 设 置 视 频 输 出 局 部 放 大 窗 口 。• HI_MPI_VO_GetZoomInWindow: 获 取 视 频 输 出 局 部 放 大 窗 口 参 数 。• HI_MPI_VO_SetZoomInRatio: 按 比 例 设 置 视 频 输 出 窗 口 的 局 部 放 大 。• HI_MPI_VO_GetZoomInRatio: 获 取 视 频 输 出 局 部 放 大 比 例 。• HI_MPI_VO_GetChnPts: 获 取 视 频 输 出 通 道 当 前 播 放 图 像 的 时 间 戳 。• HI_MPI_VO_ChnShow: 设 置 显 示 通 道 。• HI_MPI_VO_ChnHide: 设 置 隐 藏 通 道 。• HI_MPI_VO_QueryChnStat: 查 询 视 频 输 出 通 道 状 态 。• HI_MPI_VO_SetChnSrcAttr: 设 置 通 道 数 据 源 类 型 。• HI_MPI_VO_GetChnFrame: 获 取 输 出 通 道 图 像 数 据 。• HI_MPI_VO_ReleaseChnFrame: 释 放 输 出 通 道 图 像 数 据 。• HI_MPI_VO_ClearChnBuffer: 清 除 视 频 输 出 通 道 缓 冲 。• HI_MPI_VO_SetAttrBegin: 设 置 属 性 开 始 。• HI_MPI_VO_SetAttrEnd: 设 置 属 性 结 束 。VBI 操 作 :• HI_MPI_VO_SetVbiInfo: 设 置 图 像 附 加 数 据 信 息 。• HI_MPI_VO_ClrVbiInfo: 清 除 图 像 附 加 数 据 信 息 。• HI_MPI_VO_GetVbiInfo: 获 取 图 像 附 加 数 据 信 息 。显 示 操 作 :• HI_MPI_VO_GetScreenFrame: 获 取 输 出 屏 幕 图 像 数 据 。• HI_MPI_VO_ReleaseScreenFrame: 释 放 输 出 屏 幕 图 像 数 据 。• HI_MPI_VO_SetDevCSC: 设 置 设 备 输 出 图 像 效 果 。• HI_MPI_VO_GetDevCSC: 获 取 设 备 输 出 图 像 效 果 。• HI_MPI_VO_SetScreenFilter: 设 置 指 定 视 频 层 的 滤 波 系 数 。• HI_MPI_VO_GetScreenFilter: 获 取 指 定 视 频 层 的 滤 波 系 数 。• HI_MPI_VO_SetDispBufLen: 设 置 显 示 缓 冲 的 长 度 。• HI_MPI_VO_GetDispBufLen: 获 取 显 示 缓 冲 的 长 度 。• HI_MPI_VO_SetSolidDraw: 设 置 屏 幕 绘 制 属 性 。• HI_MPI_VO_GetSolidDraw: 获 取 屏 幕 绘 制 属 性 。级 联 操 作 :• HI_MPI_VO_EnableCascade: 使 能 视 频 级 联 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-3


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VO_Enable• HI_MPI_VO_DisableCascade: 禁 止 视 频 级 联 。• HI_MPI_VO_SetCascadeMode: 设 置 视 频 级 联 模 式 。• HI_MPI_VO_GetCascadeMode: 获 取 视 频 级 联 模 式 。• HI_MPI_VO_SetCascadePattern: 设 置 视 频 级 联 画 面 样 式 。• HI_MPI_VO_GetCascadePattern: 获 取 视 频 级 联 画 面 样 式 。• HI_MPI_VO_CascadePosBindChn: 绑 定 级 联 区 域 与 视 频 输 出 通 道 。• HI_MPI_VO_CascadePosUnBindChn: 解 绑 定 级 联 区 域 与 视 频 输 出 通 道 。同 步 组 操 作 :• HI_MPI_VO_CreateSyncGroup: 创 建 视 频 输 出 同 步 组 。• HI_MPI_VO_DestroySyncGroup: 销 毁 视 频 输 出 同 步 组 。• HI_MPI_VO_RegisterSyncGroup: 注 册 视 频 输 出 通 道 到 视 频 输 出 同 步 组 。• HI_MPI_VO_UnRegisterSyncGroup: 注 销 视 频 输 出 通 道 到 视 频 输 出 同 步 组 。• HI_MPI_VO_SyncGroupStart: 启 动 视 频 输 出 同 步 组 。• HI_MPI_VO_SyncGroupStop: 停 止 视 频 输 出 同 步 组 。• HI_MPI_VO_SetSyncGroupFrameRate: 设 置 视 频 输 出 同 步 组 帧 率 。• HI_MPI_VO_GetSyncGroupFrameRate: 获 取 视 频 同 步 组 帧 率 。• HI_MPI_VO_PauseSyncGroup: 暂 停 视 频 输 出 同 步 组 。• HI_MPI_VO_ResumeSyncGroup: 恢 复 视 频 输 出 同 步 组 。• HI_MPI_VO_StepSyncGroup: 单 帧 播 放 视 频 输 出 同 步 组 。• HI_MPI_VO_SetSyncGroupBase: 设 置 多 通 道 同 步 组 的 基 准 时 间 戳 。• HI_MPI_VO_GetSyncGroupBase: 获 取 多 通 道 同 步 组 的 基 准 时 间 戳 。【 描 述 】启 用 视 频 输 出 设 备 。【 语 法 】HI_S32 HI_MPI_VO_Enable (VO_DEV VoDev);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】4-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_DEV_NOT_CONFIG 视 频 输 出 设 备 没 有 配 置 。HI_ERR_VO_DEV_HAS_ENABLED 视 频 输 出 设 备 已 经 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 由 于 系 统 没 有 初 始 化 设 备 为 使 能 状 态 , 所 以 在 使 用 视 频 输 出 功 能 前 必 须 先 进 行 设备 使 能 操 作 。• 在 调 用 设 备 使 能 前 , 必 须 对 设 备 公 共 属 性 进 行 配 置 , 否 则 返 回 设 备 未 配 置 错 误 。• 为 适 应 开 机 画 面 与 正 常 操 作 界 面 间 顺 畅 切 换 , 此 处 需 要 检 查 VO 硬 件 是 否 已 经 使能 , 如 果 已 使 能 则 返 回 HI_ERR_VO_DEV_HAS_ENABLED, 且 沿 用 已 有 时 序 配置 。 如 果 希 望 更 改 VO 的 时 序 配 置 , 则 需 要 先 调 用 HI_MPI_VO_Disable 接 口 , 强制 关 闭 VO 硬 件 后 再 使 能 。【 举 例 】HI_S32 s32Ret;VO_DEV VoDev = 0;VO_PUB_ATTR_S stPubAttr;s32Ret = HI_MPI_VO_GetPubAttr(VoDev, &stPubAttr);if (s32Ret != HI_SUCCESS){printf("Get device attributes failed with error code %#x!\n", s32Ret);return HI_FAILURE;}文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-5


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考stPubAttr.u32BgColor = 0xff;stPubAttr.enIntfType = VO_INTF_VGA;stPubAttr.enIntfSync = VO_OUTPUT_1280x1024_60;s32Ret = HI_MPI_VO_SetPubAttr(VoDev, &stPubAttr);if (s32Ret != HI_SUCCESS){printf("Set device attributes failed with errno %#x!\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VO_Enable(VoDev);if (s32Ret != HI_SUCCESS){printf("Enable vo dev %d failed with errno %#x!\n", VoDev, s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VO_Disable(VoDev);if (s32Ret != HI_SUCCESS){printf("Enable vo dev %d failed with errno %#x!\n", VoDev, s32Ret);return HI_FAILURE;}HI_MPI_VO_Disables32Ret = HI_MPI_VO_CloseFd();if (s32Ret != HI_SUCCESS){printf("Some device is not disable with errno %#x!\n", VoDev, s32Ret);return HI_FAILURE;}【 相 关 主 题 】HI_MPI_VO_Disable【 描 述 】禁 用 视 频 输 出 设 备 。【 语 法 】HI_S32 HI_MPI_VO_Disable(VO_DEV VoDev);【 参 数 】4-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_VIDEO_NOT_DISABLE 视 频 层 未 禁 止 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 设 备 禁 止 前 必 须 先 禁 止 该 设 备 上 的 视 频 层 。• 调 用 设 备 使 能 接 口 后 , 如 果 未 调 用 该 接 口 进 行 禁 止 , 则 VO 设 备 将 一 直 保 持 使 能状 态 , 并 且 下 次 设 置 设 备 属 性 时 不 会 生 效 。【 举 例 】请 参 见 HI_MPI_VO_Enable 的 举 例 。【 相 关 主 题 】HI_MPI_VO_EnableHI_MPI_VO_SetPubAttr【 描 述 】配 置 视 频 输 出 设 备 的 公 共 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-7


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 语 法 】HI_S32 HI_MPI_VO_SetPubAttr(VO_DEV VoDev, const VO_PUB_ATTR_S*pstPubAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。pstPubAttr 视 频 输 出 设 备 公 共 属 性 结 构 体 指 针 。静 态 属 性 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_ILLEGAL_PARAM 参 数 无 效 。HI_ERR_VO_NOT_SUPPORT 系 统 不 支 持 的 视 频 输 出 属 性 。HI_ERR_VO_DEV_NOT_DISABLE 设 备 未 禁 止 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 视 频 输 出 设 备 属 性 为 静 态 属 性 , 必 须 在 执 行 HI_MPI_VO_Enable 前 配 置 。4-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_MPI_VO_GetPubAttr• 虚 拟 设 备 不 受 公 共 属 性 限 制 , 因 此 设 置 虚 拟 设 备 属 性 时 该 接 口 返 回 成 功 。【 举 例 】请 参 见 HI_MPI_VO_Enable 的 举 例 。【 相 关 主 题 】HI_MPI_VO_GetPubAttr【 描 述 】获 取 视 频 输 出 设 备 的 公 共 属 性 。【 语 法 】HI_S32 HI_MPI_VO_GetPubAttr(VO_DEV VoDev, VO_PUB_ATTR_S *pstPubAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstPubAttr 视 频 输 出 设 备 公 共 属 性 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-9


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VO_CloseFd【 注 意 】建 议 在 设 置 设 备 公 共 属 性 前 先 获 取 属 性 , 这 样 就 可 以 只 设 置 需 要 改 变 的 配 置 项 。【 举 例 】请 参 见 HI_MPI_VO_Enable 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetPubAttr【 描 述 】关 闭 所 有 视 频 输 出 设 备 的 Fd。【 语 法 】HI_S32 HI_MPI_VO_CloseFd(HI_VOID);【 参 数 】无 。【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_BUSY 设 备 忙 , 即 有 设 备 还 未 禁 止 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】该 接 口 必 须 在 所 有 设 备 都 禁 止 的 情 况 下 使 用 。【 举 例 】请 参 见 HI_MPI_VO_Enable 的 举 例 。4-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 相 关 主 题 】HI_MPI_VO_EnableHI_MPI_VO_EnableVideoLayer【 描 述 】使 能 视 频 层 。【 语 法 】HI_S32 HI_MPI_VO_EnableVideoLayer (VO_DEV VoDev);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_DEV_NOT_ENABLE 视 频 输 出 设 备 未 使 能 。HI_ERR_VO_DEV_NOT_CONFIG 设 备 未 配 置 。HI_ERR_VO_NO_MEM 没 有 可 用 的 内 存 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-11


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 】• 视 频 层 使 能 前 必 须 保 证 该 视 频 层 所 在 的 设 备 处 于 使 能 状 态 。• 视 频 层 使 能 前 必 须 保 证 该 视 频 层 已 经 配 置 。【 举 例 】HI_S32 s32Ret;VO_DEV VoDev = 0;RECT_S stRect;VO_VIDEO_LAYER_ATTR_S stLayerAttr;s32Ret = HI_MPI_VO_GetVideoLayerAttr(VoDev, &stLayerAttr);if (s32Ret != HI_SUCCESS){printf("Get video layer attributes failed with errno %#x!\n", s32Ret);return HI_FAILURE;}stLayerAttr.stDispRect.s32X = 0;stLayerAttr.stDispRect.s32Y = 0;stLayerAttr.stDispRect.u32Width = 720;stLayerAttr.stDispRect.u32Height = 576;stLayerAttr.stImageSize.u32Width = 720;stLayerAttr.stImageSize.u32Height = 576;stLayerAttr.s32PiPChn = VO_DEFAULT_CHN;s32Ret = HI_MPI_VO_SetVideoLayerAttr(VoDev, &stLayerAttr);if (s32Ret != HI_SUCCESS){printf("Set video layer attributes failed with errno %#x!\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VO_EnableVideoLayer(VoDev);if (s32Ret != HI_SUCCESS){printf("Enable video layer failed with errno %#x!\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VO_GetDisplayRect(VoDev, &stRect);if (s32Ret != HI_SUCCESS)4-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出{}printf("Get disp rect failed with errno %#x!\n", s32Ret);return HI_FAILURE;stRect.s32X = 128;stRect.s32Y = 128;s32Ret = HI_MPI_VO_SetDisplayRect(VoDev, &stRect);if (s32Ret != HI_SUCCESS){printf("Set disp rect failed with errno %#x!\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VO_DisableVideoLayer(VoDev);if (s32Ret != HI_SUCCESS){printf("Disable video layer failed with errno %#x!\n", s32Ret);return HI_FAILURE;}【 相 关 主 题 】HI_MPI_VO_DisableVideoLayerHI_MPI_VO_DisableVideoLayer【 描 述 】禁 止 视 频 层 。【 语 法 】HI_S32 HI_MPI_VO_DisableVideoLayer(VO_DEV VoDev);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-13


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_CHN_NOT_DISABLE 该 视 频 层 上 还 有 未 禁 止 的 通 道 。HI_ERR_VO_GRP_NOT_DESTROY 该 视 频 层 上 还 有 同 步 组 未 销 毁 。HI_ERR_VB_BUSY VB 资 源 没 有 释 放 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 视 频 层 禁 止 前 必 须 保 证 其 上 的 通 道 全 部 禁 止 。• 视 频 层 禁 止 前 必 须 保 证 其 上 的 同 步 组 全 部 销 毁 。• 在 禁 止 视 频 层 时 , 如 果 用 户 没 有 释 放 从 VO 获 取 的 图 像 buffer 资 源 , 该 接 口 会 返回 HI_ERR_VB_BUSY 的 错 误 码 , 表 示 VO 创 建 的 VB 资 源 没 有 释 放 。 多 见 于 用户 调 用 获 取 屏 幕 图 像 未 释 放 的 情 况 下 。【 举 例 】请 参 见 HI_MPI_VO_EnableVideoLayer 的 举 例 。【 相 关 主 题 】HI_MPI_VO_EnableVideoLayerHI_MPI_VO_SetVideoLayerAttr【 描 述 】设 置 视 频 层 属 性 。【 语 法 】HI_S32 HI_MPI_VO_SetVideoLayerAttr(VO_DEV VoDev, constVO_VIDEO_LAYER_ATTR_S *pstLayerAttr);4-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 该 接 口 设 置 的 显 示 区 域 和 视 频 层 属 性 中 的 显 示 区 域 是 同 一 概 念 。• 调 用 此 接 口 前 必 须 保 证 视 频 层 已 经 配 置 。• 此 接 口 为 动 态 属 性 , 在 视 频 层 属 性 配 置 时 会 设 置 显 示 区 域 的 初 始 值 。 如 果 需 要 动态 改 变 显 示 区 域 , 应 该 使 用 这 个 接 口 。• 显 示 区 域 如 果 超 出 设 备 分 辨 率 就 进 行 剪 裁 。【 举 例 】请 参 见 HI_MPI_VO_EnableVideoLayer 的 举 例 。【 相 关 主 题 】HI_MPI_VO_GetDisplayRectHI_MPI_VO_GetDisplayRect【 描 述 】获 取 视 频 输 出 的 显 示 区 域 。【 语 法 】HI_S32 HI_MPI_VO_GetDisplayRect(VO_DEV VoDev, RECT_S *pstRect);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstRect 视 频 层 属 性 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】4-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出• 库 文 件 :libmpi.a【 注 意 】• 只 有 HD 和 AD 支 持 VO 缩 放 功 能 , 如 果 在 SD 上 调 用 该 接 口 , 会 返 回 参 数 错 的 错误 码 。• 一 般 用 户 不 需 要 设 置 该 接 口 ,SDK 自 动 选 择 默 认 滤 波 系 数 。• 所 提 供 的 滤 波 系 数 中 , 值 越 高 图 像 越 清 晰 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_GetScreenFilterHI_MPI_VO_GetScreenFilter【 描 述 】获 取 指 定 视 频 层 的 滤 波 系 数 。【 语 法 】HI_S32 HI_MPI_VO_GetScreenFilter(VO_DEV VoDev, VO_SCREEN_FILTER_S*pstFilter);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstFilter 视 频 通 道 滤 波 系 数 属 性 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-23


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VO_INVALID_DEVID 设 备 号 超 出 正 常 范 围 。HI_ERR_VO_ILLEGAL_PARAM 参 数 错 误 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】只 有 HD 和 AD 支 持 VO 缩 放 功 能 , 如 果 在 SD 上 调 用 该 接 口 , 会 返 回 参 数 错 的 错 误码 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_EnableChnHI_MPI_VO_SetScreenFilter【 描 述 】启 用 指 定 的 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_EnableChn(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】4-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 视 频 输 出 通 道 号 无 效 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_VIDEO_NOT_ENABLE 视 频 层 未 使 能 。HI_ERR_VO_CHN_NOT_ALLOC 通 道 资 源 未 分 配 。HI_ERR_VO_CHN_NOT_CONFIG 通 道 未 配 置 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 否 则 将 返 回 失 败 。• 调 用 前 必 须 使 能 相 应 设 备 上 的 视 频 层 。• 通 道 使 能 前 必 须 进 行 通 道 配 置 , 否 则 返 回 通 道 未 配 置 的 错 误 。• 允 许 重 复 使 能 同 一 视 频 输 出 通 道 , 不 返 回 失 败 。【 举 例 】VO_DEV VoDev = 0;VO_CHN VoChn = 0;VO_CHN_ATTR_S stChnAttr;s32Ret = HI_MPI_VO_GetChnAttr(VoDev, VoChn, &stChnAttr);if (s32Ret != HI_SUCCESS){printf("Get channel attr failed with errno %#x!\n", s32Ret);return HI_FAILURE;}stChnAttr.u32Priority = 0;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-25


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考stChnAttr.stRect.s32X = 0;stChnAttr.stRect.s32Y = 0;stChnAttr.stRect.u32Width = 720;stChnAttr.stRect.u32Height = 576;stChnAttr.bZoomEnable = HI_FALSE;stChnAttr.bDeflicker = HI_FALSE;s32Ret = HI_MPI_VO_SetChnAttr(VoDev, VoChn, &stChnAttr);if (s32Ret != HI_SUCCESS){printf("Set channel attr failed with errno %#x!\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VO_EnableChn(VoDev, VoChn);if (s32Ret != HI_SUCCESS){printf("Enable channel failed with errno %#x!\n", s32Ret);return HI_FAILURE;}HI_MPI_VO_DisableChns32Ret = HI_MPI_VO_DisableChn(VoDev, VoChn);if (s32Ret != HI_SUCCESS){printf("Disable channel failed with errno %#x!\n", s32Ret);return HI_FAILURE;}【 相 关 主 题 】HI_MPI_VO_DisableChn【 描 述 】禁 用 指 定 的 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_DisableChn(VO_DEV VoDev ,VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入4-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_VIDEO_NOT_ENABLE 视 频 层 未 使 能 。HI_ERR_VO_CHN_NOT_ALLOC 通 道 资 源 未 配 置 。HI_ERR_VO_GRP_CHN_NOT_UNREG同 步 组 通 道 未 注 销HI_MPI_VO_SetChnAttr【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】允 许 重 复 禁 用 同 一 视 频 输 出 通 道 , 不 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VO_EnableChn 的 举 例 。【 相 关 主 题 】HI_MPI_VO_EnableChn【 描 述 】配 置 指 定 视 频 输 出 通 道 的 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-27


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 语 法 】HI_S32 HI_MPI_VO_SetChnAttr(VO_DEV VoDev,VO_CHN VoChn, VO_CHN_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstAttr 视 频 通 道 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_ILLEGAL_PARAM 参 数 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 属 性 中 的 优 先 级 , 数 值 越 大 优 先 级 越 高 , 最 大 值 为 31, 最 小 值 为 0。− 当 多 个 通 道 有 重 叠 的 显 示 区 域 时 , 优 先 级 高 的 通 道 图 像 将 覆 盖 优 先 级 低 的 通道 。4-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出−优 先 级 相 同 的 各 通 道 有 重 叠 时 , 默 认 通 道 号 大 的 图 像 将 覆 盖 通 道 号 小 的 通 道 图像 。• 通 道 显 示 区 域 不 能 超 过 视 频 层 属 性 中 设 定 的 显 示 分 辨 率 范 围 (stImageSize 大 小 )。• 如 果 缩 放 标 识 为 TRUE, 则 通 道 的 输 入 图 像 将 被 缩 放 到 通 道 大 小 ; 否 则 对 输 入 图像 进 行 剪 裁 以 适 合 通 道 大 小 。• 该 接 口 为 动 态 设 置 接 口 , 可 在 VO 设 备 使 能 的 情 况 下 调 用 。• 通 道 的 起 始 位 置 和 宽 高 必 须 能 被 2 整 除 。• 选 项 bDeflicker 表 示 该 通 道 是 否 进 行 抗 闪 烁 。 一 般 情 况 下 , 逐 行 设 备 上 不 需 要 进行 抗 闪 烁 ; 在 隔 行 设 备 上 , 如 果 该 通 道 通 过 单 场 图 像 缩 小 得 到 , 则 需 要 进 行 抗 闪烁 处 理 。 需 要 注 意 的 是 , 抗 闪 烁 可 能 带 来 图 像 清 晰 度 的 下 降 。【 举 例 】请 参 见 HI_MPI_VO_EnableChn 的 举 例 。【 相 关 主 题 】HI_MPI_VO_GetChnAttrHI_MPI_VO_GetChnAttr【 描 述 】获 取 指 定 视 频 输 出 通 道 的 属 性 。【 语 法 】HI_S32 HI_MPI_VO_GetChnAttr(VO_DEV VoDev,VO_CHN VoChn,VO_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstAttr 视 频 通 道 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-29


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_MPI_VO_SendFrame【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】请 参 见 HI_MPI_VO_EnableChn 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetChnAttr【 描 述 】将 视 频 图 像 送 入 指 定 输 出 通 道 显 示 。【 语 法 】HI_S32 HI_MPI_VO_SendFrame(VO_DEV VoDev,VO_CHN VoChn,VIDEO_FRAME_INFO_S *pstVFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstVFrame 视 频 数 据 信 息 指 针 。 输 入4-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_ERR_VO_ILLEGAL_PARAM 传 入 的 参 数 非 法 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 或 输 出 buffer 已 满 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】调 用 该 接 口 前 必 须 保 证 通 道 已 经 使 能 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VO_SetChnField【 描 述 】设 置 指 定 视 频 输 出 通 道 的 帧 场 显 示 策 略 。主 要 的 应 用 场 合 有 两 个 : 一 是 在 预 览 CIF 图 像 时 , 将 视 频 输 入 设 置 为 两 场 CIF, 对 应VO 通 道 设 置 成 显 示 两 场 , 这 样 比 只 显 示 一 场 的 流 畅 性 要 好 ; 二 是 在 低 帧 率 2 场 图 像 预览 的 情 况 下 , 如 在 低 帧 率 的 D1 预 览 时 , 应 该 将 对 应 VO 通 道 设 置 成 只 显 示 一 场 , 否 则会 出 现 画 面 上 下 抖 动 的 现 象 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-31


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 语 法 】HI_S32 HI_MPI_VO_SetChnField(VO_DEV VoDev,VO_CHN VoChn,constVO_DISPLAY_FIELD_E enField)【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入enField 视 频 通 道 显 示 帧 场 策 略 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_ILLEGAL_PARAM 参 数 非 法 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 不 显 式 调 用 此 接 口 ,VO 默 认 为 两 场 显 示 ( 即 VO_FIELD_BOTH)。• 如 果 送 VO 显 示 的 图 像 为 帧 图 像 ( 例 如 单 场 CIF 图 像 ), 则 调 用 此 接 口 对 图 像 显 示无 影 响 。4-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_MPI_VO_GetChnField【 举 例 】/* 这 是 一 个 预 览 低 帧 率 的 例 子 , 先 将 视 频 输 入 设 置 成 8 帧 每 秒 , 然 后 对 应 VO 通 道 用 底 场 显 示 */VO_DISPLAY_FIELD_E enField;if (HI_SUCCESS!=HI_MPI_VI_SetFrameRate(0,0,8)){printf("HI_MPI_VI_SetFrameRate failed !\n");return HI_FAILURE;}if (HI_SUCCESS!=HI_MPI_VO_SetChnField(0,VO_FIELD_BOTTOM)){printf("HI_MPI_VO_SetChnField failed !\n");return HI_FAILURE;}if (HI_SUCCESS!=HI_MPI_VO_GetChnField(0, &enField)){printf("HI_MPI_VO_GetChnField failed !\n");return HI_FAILURE;}【 相 关 主 题 】无 。【 描 述 】获 取 指 定 视 频 输 出 通 道 的 帧 场 显 示 策 略 。【 语 法 】HI_S32 HI_MPI_VO_GetChnField(VO_DEV VoDev,VO_CHN VoChn,constVO_DISPLAY_FIELD_E *penField)【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入penField 视 频 通 道 显 示 帧 场 策 略 。 输 出【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-33


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】如 未 配 置 则 返 回 系 统 默 认 策 略 VO_FIELD_BOTH。【 举 例 】请 参 见 HI_MPI_VO_SetChnField 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VO_SetChnFrameRate【 描 述 】设 置 指 定 视 频 输 出 通 道 的 显 示 帧 率 。【 语 法 】HI_S32 HI_MPI_VO_SetChnFrameRate (VO_DEV VoDev,VO_CHN VoChn, HI_S32s32VoFramerate);【 参 数 】4-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入s32VoFramerate 视 频 通 道 显 示 帧 率 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_ILLEGAL_PARAM 参 数 非 法 。HI_ERR_VO_CHN_NOT_CONFIG 通 道 未 配 置 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 需 先 设 置 VO 的 公 共 属 性 , 才 能 调 用 此 接 口 , 否 则 返 回 失 败 。• 帧 率 可 设 置 为 Nx( 其 中 N 为 [-64,+64] 的 任 意 整 数 ,x 为 P 制 或 N 制 下 的 帧率 )。 负 数 的 倍 数 用 于 倒 放 操 作 , 此 时 需 要 用 户 来 倒 序 送 图 像 到 VO, 即 送 时 间 戳递 减 的 图 像 。【 举 例 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-35


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】无 。HI_MPI_VO_GetChnFrameRate【 描 述 】获 取 指 定 视 频 输 出 通 道 的 显 示 帧 率 。【 语 法 】HI_S32 HI_MPI_VO_GetChnFrameRate(VO_DEV VoDev, VO_CHN VoChn, HI_S32*ps32VoFramerate);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入ps32VoFramerate 视 频 通 道 显 示 帧 率 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】4-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_MPI_VO_ChnPause• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】获 取 的 为 用 户 配 置 的 帧 率 , 如 未 设 置 则 返 回 满 帧 率 。。【 举 例 】无 。【 相 关 主 题 】无 。【 描 述 】暂 停 指 定 的 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_ChnPause(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 视 频 输 出 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-37


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 否 则 将 返 回 失 败 。• 调 用 前 必 须 使 能 视 频 输 出 通 道 , 否 则 将 返 回 通 道 未 使 能 错 误 码HI_ERR_VO_CHN_NOT_ENABLE。• VI-VO 预 览 时 不 推 荐 使 用 此 接 口 。• 允 许 重 复 暂 停 同 一 通 道 , 不 返 回 失 败 。• 如 果 该 通 道 在 同 步 组 中 注 册 , 则 调 用 该 接 口 无 效 。【 举 例 】HI_S32 s32ret;VO_DEV VoDev = 0;VO_CHN VoChn = 0;.../* enable vo chn */s32ret = HI_MPI_VO_EnableChn(VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("enable vo chn failed! \n");return s32ret;}/* pause current vo channel */s32ret = HI_MPI_VO_ChnPause(VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("pause vo chn failed! \n");return s32ret;}/* resume current vo channel */s32ret = HI_MPI_VO_ChnResume(VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("resume vo chn failed! \n");return s32ret;}4-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出while (getchar() != ‘q’){/* step forward current vo channel */s32ret = HI_MPI_VO_ChnStep(VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("step play vo chn failed! \n");return s32ret;}}/* resume current vo channel */s32ret = HI_MPI_VO_ChnResume(VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("resume vo chn failed! \n");return s32ret;}HI_MPI_VO_ChnResume(void)HI_MPI_VO_DisableChn(VoDev, VoChn);【 相 关 主 题 】HI_MPI_VO_ChnResume【 描 述 】恢 复 指 定 的 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_ChnResume(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-39


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 视 频 输 出 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_MPI_VO_ChnStep【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 否 则 将 返 回 失 败 。• 如 果 未 启 用 通 道 将 无 法 正 常 工 作 , 所 以 通 道 使 用 前 必 须 启 用 成 功 。• 允 许 重 复 恢 复 同 一 通 道 , 不 返 回 失 败 。• 如 果 该 通 道 在 同 步 组 中 注 册 , 则 调 用 该 接 口 无 效 。【 举 例 】请 参 见 HI_MPI_VO_ChnPause 的 举 例 。【 相 关 主 题 】HI_MPI_VO_ChnResume【 描 述 】单 帧 播 放 指 定 的 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_ChnStep(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】4-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 视 频 输 出 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 否 则 将 返 回 失 败 。• 如 果 未 启 用 通 道 将 无 法 正 常 工 作 , 所 以 通 道 使 用 前 必 须 启 用 成 功 。• 恢 复 正 常 播 放 使 用 HI_MPI_VO_ChnResume 接 口 。• VI-VO 预 览 时 不 推 荐 使 用 此 接 口 。• 如 果 该 通 道 在 同 步 组 中 注 册 , 则 调 用 该 接 口 无 效 。【 举 例 】请 参 见 HI_MPI_VO_ChnPause 的 举 例 。【 相 关 主 题 】HI_MPI_VO_ChnResume文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-41


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VO_SetChnFilter【 描 述 】设 置 指 定 视 频 输 出 通 道 的 缩 放 系 数 。当 VO 视 频 层 属 性 s32PiPChn 设 置 为 VO_DEFAULT_CHN, 且 通 道 输 入 图 像 大 小 和 其显 示 大 小 不 一 致 时 , 利 用 DSU 缩 放 单 元 对 图 像 进 行 缩 放 。 系 统 内 部 提 供 多 套 滤 波 参数 , 每 套 滤 波 参 数 又 包 括 水 平 和 垂 直 的 多 组 滤 波 系 数 。 系 统 内 部 默 认 选 择 通 用 类 型(FILTER_PARAM_TYPE_NORM) 滤 波 参 数 , 并 根 据 算 法 自 动 选 定 其 下 的 一 组 最 优 的滤 波 系 数 进 行 缩 放 滤 波 。 若 用 户 希 望 对 缩 放 质 量 进 行 微 调 或 有 其 它 特 殊 需 求 可 通 过 此接 口 设 置 相 应 的 缩 放 类 型 和 系 数 以 便 调 节 图 像 质 量 。【 语 法 】HI_S32 HI_MPI_VO_SetChnFilter(VO_DEV VoDev, VO_CHN VoChn, constVO_CHN_FILTER_S *pstFilter);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstFilter 视 频 通 道 滤 波 系 数 属 性 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 空 指 针 。HI_ERR_VO_ILLEGAL_PARAM 参 数 非 法 。HI_ERR_VO_CHN_NOT_CONFIG 通 道 未 配 置 。4-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出接 口 返 回 值HI_ERR_VO_BUSY含 义系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 一 般 用 户 不 需 要 设 置 此 接 口 , 系 统 会 自 动 选 择 通 用 的 最 优 滤 波 系 数 。• 当 滤 波 系 数 结 构 pstFilter 中 的 相 应 滤 波 系 数 配 置 为DSU_XSCALE_FILTER_DEFAULT 时 , 即 为 系 统 自 动 选 择 滤 波 系 数 。• 滤 波 系 数 的 值 越 大 , 图 像 越 清 晰 但 闪 烁 感 越 明 显 ; 值 越 低 , 图 像 越 模 糊 。• 该 接 口 中 enFilterType 仅 支 持 设 置 为 FILTER_PARAM_TYPE_NORM、FILTER_PARAM_TYPE_USER1 或 FILTER_PARAM_TYPE_USER2, 否 则 返 回 参数 错 误 。当 设 置 enFilterType 为 FILTER_PARAM_TYPE_NORM 时 , 可 通 过 调 节 enHFilter/enVFilterL/ enVFilterC 选 择 不 同 截 止 频 率 的 滤 波 参 数 达 到 不 同 的 滤 波 效 果 。• 当 用 户 对 缩 放 效 果 有 特 定 需 求 时 , 需 先 通 过 接 口 HI_MPI_VPP_ SetDsuFiltParam 设置 用 户 自 定 义 的 滤 波 参 数 , 然 后 在 此 指 定 enFilterType 为 相 应 的FILTER_PARAM_TYPE_USERX, 即 可 在 DSU 缩 放 时 启 动 用 户 自 定 义 滤 波 参 数了 。 设 置 用 户 自 定 义 滤 波 参 数 请 参 见 接 口 HI_MPI_VPP_SetDsuFiltParam 说 明 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VO_GetChnFilter【 描 述 】获 取 指 定 视 频 输 出 通 道 的 缩 放 系 数 。【 语 法 】HI_S32 HI_MPI_VO_GetChnFilter(VO_DEV VoDev, VO_CHN VoChn, VO_CHN_FILTER_S*pstFilter);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-43


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstFilter 视 频 通 道 滤 波 系 数 属 性 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_BUSY系 统 忙 , 一 般 表 明 此 前 未 调 用 系 统 初 始化 函 数 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。4-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_MPI_VO_CreateSyncGroup【 描 述 】创 建 视 频 输 出 同 步 组 。【 语 法 】HI_S32 HI_MPI_VO_CreateSyncGroup(VO_GRP VoGroup, VO_DEV VoDev);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 通 道 组 组 号 无 效 。HI_ERR_VO_INVALID_DEVID 输 出 设 备 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VO_GRP_HAS_CREATED 指 定 的 同 步 组 已 经 创 建 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 对 视 频 输 出 进 行 属 性 配 置 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-45


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 指 定 的 同 步 组 必 须 保 证 未 被 创 建 , 否 则 返 回 已 经 创 建 错 误 码 。• 创 建 同 步 组 时 通 过 指 定 输 出 设 备 号 , 表 明 同 步 组 内 的 通 道 在 该 设 备 上 显 示 。 但 同步 组 内 的 通 道 可 以 是 来 自 不 同 设 备 的 通 道 。• 最 大 同 时 支 持 16 个 通 道 组 , 每 组 内 最 多 支 持 注 册 32 路 通 道 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_DestroySyncGroupHI_MPI_VO_DestroySyncGroup【 描 述 】销 毁 视 频 输 出 同 步 组 。【 语 法 】HI_S32 HI_MPI_VO_DestroySyncGroup(VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_CHN_NOT_EMPTY 同 步 组 通 道 组 不 为 空 。HI_ERR_VO_GRP_NOT_STOP 同 步 组 未 停 止 。4-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 保 证 同 步 通 道 已 经 创 建 。• 调 用 前 必 须 保 证 同 步 组 已 停 止 。• 如 果 同 步 组 中 的 视 频 输 出 通 道 没 有 全 部 注 销 , 调 用 会 返 回 同 步 组 非 空 的 错 误 码 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_CreateSyncGroupHI_MPI_VO_RegisterSyncGroup【 描 述 】注 册 视 频 输 出 通 道 到 视 频 输 出 同 步 组 。【 语 法 】HI_S32 HI_MPI_VO_RegisterSyncGroup(VO_DEV VoDev, VO_CHN VoChn,VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-47


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_FAILED_NOTENABLE 没 有 使 能 视 频 输 出 设 备 。HI_ERR_VO_INVALID_CHNID 视 频 输 出 通 道 号 无 效 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_CHN_FULL 同 步 组 注 册 数 已 满 。HI_ERR_VO_GRP_CHN_HAS_REG 通 道 已 经 注 册 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。• 调 用 前 必 须 保 证 同 步 组 已 经 创 建 , 并 且 非 满 。• 调 用 前 必 须 保 证 通 道 未 在 其 它 同 步 组 中 注 册 。• 重 复 注 册 同 一 通 道 到 一 个 同 步 组 中 , 返 回 成 功 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_UnRegisterSyncGroupHI_MPI_VO_UnRegisterSyncGroup【 描 述 】注 销 视 频 输 出 通 道 从 视 频 输 出 同 步 组 。【 语 法 】HI_S32 HI_MPI_VO_UnRegisterSyncGroup(VO_DEV VoDev, VO_CHN VoChn,VO_GRP VoGroup);【 参 数 】4-48海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0,VO_MAX_DEV_NUM)VoChn 视 频 输 出 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 视 频 输 出 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ENABLE 视 频 输 出 通 道 未 使 能 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_CHN_EMPTY 同 步 通 道 组 中 没 有 视 频 输 出 通 道 。HI_ERR_VO_GRP_CHN_NOT_REG 通 道 没 有 注 册 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 不 能 从 同 步 组 里 注 销 一 个 不 在 同 步 组 内 的 通 道 。【 举 例 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-49


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_RegisterSyncGroupHI_MPI_VO_SyncGroupStart【 描 述 】启 动 视 频 输 出 同 步 组 。【 语 法 】HI_S32 HI_MPI_VO_SyncGroupStart(VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_INVALID_BASE_PTS 同 步 通 道 组 基 准 PTS 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a4-50海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 , 并 且 有 视 频 输 出 通 道 注 册 。• 重 复 启 动 返 回 成 功 。【 举 例 】HI_S32 s32ret;HI_U32 u32FrameRate = 12;VO_DEV VoDev = 0;VO_CHN VoChn = 0;VO_GRP VoGroup = 0;HI_U64 u64BasePts = 0;/* create synchronous group */u64BasePts = 64094025454LLU;s32ret = HI_MPI_VO_CreateSyncGroup(VoGroup, VoDev);if (HI_SUCCESS != s32ret){printf("vo create synchronous group failed! \n");return s32ret;}/* register a vo channel to synchronous group */s32ret = HI_MPI_VO_RegisterSyncGroup(VoDev, VoChn, VoGroup);if (HI_SUCCESS != s32ret){printf("vo channel register synchronous group failed! \n");return s32ret;}/* start synchronous group */s32ret = HI_MPI_VO_SyncGroupStart(VoGroup);if (HI_SUCCESS != s32ret){printf("start synchronous group failed! \n");return s32ret;}s32ret = HI_MPI_VO_SetSyncGroupBase (VoGroup,&stSyncBase);if (HI_SUCCESS != s32ret){printf("set synchronous group base pts failed! \n");文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-51


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}return s32ret;s32ret = HI_MPI_VO_GetSyncGroupBase (VoGroup,&stSyncBase);if (HI_SUCCESS != s32ret){printf("get synchronous group base pts failed! \n");return s32ret;}else{printf(“current base pts = %llu\n”, stSyncBase. u64BasePts);}/* set frame rate of synchronous group */s32ret = HI_MPI_VO_SetSyncGroupFrameRate(VoGroup, u32FrameRate);if (HI_SUCCESS != s32ret){printf("set synchronous group frame rate failed! \n");return s32ret;}/* pause group */s32ret = HI_MPI_VO_PauseSyncGroup(VoGroup);if (HI_SUCCESS != s32ret){printf("pause synchronous group failed! \n");return s32ret;}/* step group */s32ret = HI_MPI_VO_StepSyncGroup(VoGroup);if (HI_SUCCESS != s32ret){printf("step synchronous group failed! \n");return s32ret;}/* resume group */s32ret = HI_MPI_VO_ResumeSyncGroup(VoGroup);if (HI_SUCCESS != s32ret){printf("resume synchronous group failed! \n");return s32ret;}4-52海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出/* stop synchronous group */s32ret = HI_MPI_VO_SyncGroupStop(VoGroup);if (HI_SUCCESS != s32ret){printf("stop synchronous group failed! \n");return s32ret;}/* un-register vo channel from group */s32ret = HI_MPI_VO_UnRegisterSyncGroup(VoDev, VoChn, VoGroup);if (HI_SUCCESS != s32ret){printf("un-register vo from synchronous group failed! \n");return s32ret;}/* destroy synchronous group */s32ret = HI_MPI_VO_DestroySyncGroup(VoGroup);if (HI_SUCCESS != s32ret){printf("destroy synchronous group failed! \n");return s32ret;}【 相 关 主 题 】HI_MPI_VO_SyncGroupStopHI_MPI_VO_SyncGroupStop【 描 述 】停 止 视 频 输 出 通 道 组 。【 语 法 】HI_S32 HI_MPI_VO_SyncGroupStop(VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-53


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_NOT_START 同 步 通 道 组 没 有 启 动 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 , 并 且 启 动 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SyncGroupStartHI_MPI_VO_SetSyncGroupFrameRate【 描 述 】设 置 视 频 输 出 同 步 通 道 组 帧 率 。【 语 法 】HI_S32 HI_MPI_VO_SetSyncGroupFrameRate(VO_GRP VoGroup, HI_U32u32VoGrpFramerate);【 参 数 】4-54海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入u32VoGrpFramerate 同 步 输 出 组 预 设 帧 率 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_ILLEGAL_PARAM 参 数 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 。• 目 前 同 步 组 帧 率 上 限 为 满 帧 率 的 64 倍 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_GetSyncGroupFrameRateHI_MPI_VO_GetSyncGroupFrameRate【 描 述 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-55


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考获 取 视 频 输 出 通 道 组 帧 率 。【 语 法 】HI_S32 HI_MPI_VO_GetSyncGroupFrameRate(VO_GRP VoGroup, HI_U32*pu32VoGrpFramerate);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入pu32VoGrpFramerate 同 步 输 出 组 帧 率 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_NULL_PTR 空 指 针 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。4-56海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 相 关 主 题 】HI_MPI_VO_SetSyncGroupFrameRateHI_MPI_VO_PauseSyncGroup【 描 述 】暂 停 同 步 输 出 通 道 组 。【 语 法 】HI_S32 HI_MPI_VO_PauseSyncGroup(VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_NOT_START 同 步 通 道 组 没 有 启 动 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-57


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 并 启 动 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_ResumeSyncGroupHI_MPI_VO_ResumeSyncGroup【 描 述 】恢 复 同 步 输 出 通 道 组 。【 语 法 】HI_S32 HI_MPI_VO_ResumeSyncGroup(VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_NOT_START 同 步 通 道 组 没 有 启 动 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a4-58海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 并 启 动 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_PauseSyncGroupHI_MPI_VO_StepSyncGroup【 描 述 】单 帧 播 放 同 步 输 出 通 道 组 。【 语 法 】HI_S32 HI_MPI_VO_StepSyncGroup(VO_GRP VoGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_GRP_NOT_CREATE 同 步 通 道 组 没 有 创 建 。HI_ERR_VO_GRP_NOT_START 同 步 通 道 组 没 有 启 动 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-59


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。• 调 用 前 必 须 保 证 同 步 通 道 组 已 经 创 建 并 启 动 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_PauseSyncGroupHI_MPI_VO_SetSyncGroupBase【 描 述 】设 置 多 通 道 同 步 组 的 基 准 时 间 戳 。【 语 法 】HI_S32 HI_MPI_VO_SetSyncGroupBase(VO_GRP VoGroup, HI_U64 u64BasePts);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入u64BasePts 同 步 基 准 PTS。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。4-60海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出接 口 返 回 值含 义HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效 。HI_ERR_VO_INVALID_CHNID 无 效 的 VO 通 道 号 。HI_ERR_VO_GRP_NOT_CREATE 同 步 组 未 创 建 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 否 则 将 返 回 失 败 。• 调 用 前 必 须 使 能 视 频 输 出 通 道 , 否 则 返 回 失 败 。• 调 用 前 必 须 创 建 同 步 组 , 否 则 返 回 失 败 。• 启 动 同 步 组 前 或 后 均 可 设 置 时 间 基 准 。• 可 以 多 次 设 置 基 准 时 间 戳 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_GetSyncGroupBaseHI_MPI_VO_GetSyncGroupBase【 描 述 】获 取 多 通 道 同 步 组 的 基 准 时 间 戳 。【 语 法 】HI_S32 HI_MPI_VO_GetSyncGroupBase(VO_GRP VoGroup, HI_U64 *pu64BasePts);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoGroup 同 步 输 出 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)。输 入pu64BasePts 同 步 基 准 PTS。 输 出【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-61


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_GRP_INVALID_ID 同 步 通 道 组 组 号 无 效 。HI_ERR_VO_INVALID_CHNID 无 效 的 VO 通 道 号 。HI_ERR_VO_GRP_NOT_CREATE 同 步 组 未 创 建 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 否 则 将 返 回 失 败 。• 调 用 前 必 须 使 能 视 频 输 出 通 道 , 否 则 返 回 失 败 。• 调 用 前 必 须 创 建 同 步 组 , 否 则 返 回 失 败 。• 启 动 同 步 组 前 或 后 均 可 获 取 时 间 基 准 。• 可 以 多 次 获 取 基 准 时 间 戳 。【 举 例 】请 参 见 HI_MPI_VO_SyncGroupStart 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetSyncGroupBaseHI_MPI_VO_SetZoomInWindow【 描 述 】设 置 视 频 输 出 局 部 放 大 窗 口 。【 语 法 】HI_S32 HI_MPI_VO_SetZoomInWindow(VO_DEV VoDev, VO_CHN VoChn,const VO_ZOOM_ATTR_S *pstZoomAttr);【 参 数 】4-62海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstZoomAttr 局 部 放 大 属 性 结 构 体 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_INVALID_RECT_PARA 矩 形 结 构 体 参 数 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。• 局 部 放 大 窗 口 参 数 为 非 负 数 , 并 且 2 象 素 对 齐 ; 如 果 视 频 层 属 性 s32PiPChn 模 式不 是 默 认 模 式 , 则 起 始 点 横 坐 标 需 要 16 像 素 对 齐 。• 局 部 放 大 窗 口 的 起 始 点 和 宽 高 都 是 相 对 于 输 入 图 像 数 据 而 言 , 而 不 是 屏 幕 坐 标 ,可 根 据 需 要 将 屏 幕 坐 标 转 换 到 输 入 图 像 坐 标 。• 取 消 局 部 放 大 时 , 只 要 将 局 部 放 大 属 性 的 窗 口 矩 形 设 置 为 (0, 0, 0, 0)。• 在 视 频 级 联 的 主 片 上 , 利 用 局 部 放 大 功 能 在 级 联 的 图 像 上 选 取 不 同 区 域 进 行 多 画面 拼 接 。【 举 例 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-63


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考/* define input parameter */HI_S32 s32Ret;VO_DEV VoDev = 0;VO_CHN VoChn = 0;VO_ZOOM_ATTR_S stZoomWindow, stZoomWindowGet;/** we should enable VO and VO channel first!* TODO: enable operation.*/stZoomWindow.enField = VIDEO_FIELD_FRAME;stZoomWindow.stZoomRect.s32X = 128;stZoomWindow.stZoomRect.s32Y = 128;stZoomWindow.stZoomRect.u32Width = 200;stZoomWindow.stZoomRect.u32Height = 200;/* set zoom window */s32Ret = HI_MPI_VO_SetZoomInWindow(VoDev, VoChn, &stZoomWindow);if (s32Ret != HI_SUCCESS){printf("Set zoom attribute failed, ret = %#x.\n", s32Ret);return HI_FAILURE;}/* get current zoom window parameter */s32Ret = HI_MPI_VO_GetZoomInWindow(VoDev, VoChn, &stZoomWindowGet);if (s32Ret != HI_SUCCESS){printf("Get zoom attribute failed, ret = %#x.\n", s32Ret);return HI_FAILURE;}else{printf("Current zoom window is (%d,%d,%d,%d)!\n",stZoomWindowGet.stZoomRect.s32X,stZoomWindowGet.stZoomRect.s32Y,stZoomWindowGet.stZoomRect.u32Width,stZoomWindowGet.stZoomRect.u32Height);}/** TODO: something else ...*/4-64海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出stZoomWindow.stZoomRect.s32X = 0;stZoomWindow.stZoomRect.s32Y = 0;stZoomWindow.stZoomRect.u32Width = 0;stZoomWindow.stZoomRect.u32Height = 0;/* cancel zoom window, we use (0,0,0,0) to recover */s32Ret = HI_MPI_VO_SetZoomInWindow(VoDev, VoChn, &stZoomWindow);if (s32Ret != HI_SUCCESS){printf("Recover zoom attribute failed, ret = %#x.\n", s32Ret);return HI_FAILURE;}【 相 关 主 题 】HI_MPI_VO_GetZoomInWindowHI_MPI_VO_GetZoomInWindow【 描 述 】获 取 视 频 输 出 局 部 放 大 窗 口 。【 语 法 】HI_S32 HI_MPI_VO_GetZoomInWindow(VO_DEV VoDev, VO_CHN VoChn,VO_ZOOM_ATTR_S *pstZoomAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstZoomAttr 局 部 放 大 属 性 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-65


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 输 出 通 道 配 置 并 使 能 。• 如 果 没 有 设 置 局 部 放 大 窗 口 , 那 么 默 认 获 取 到 (0, 0, 0, 0)。【 举 例 】请 参 见 HI_MPI_VO_SetZoomInWindow 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetZoomInWindowHI_MPI_VO_SetZoomInRatio【 描 述 】按 比 例 设 置 视 频 输 出 窗 口 的 局 部 放 大 。【 语 法 】HI_S32 HI_MPI_VO_SetZoomInRatio(VO_DEV VoDev, VO_CHN VoChn, constVO_ZOOM_RATIO_S *pstZoomRatio);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstZoomRatio 局 部 放 大 比 例 结 构 体 。 输 入4-66海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 设 备 号 无 效 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VO_NULL_PTR 空 指 针 。HI_ERR_VO_VIDEO_NOT_CONFIG 未 设 置 视 频 层 属 性 。HI_ERR_VO_CHN_NOT_ALLOC 未 设 置 通 道 属 性 。HI_ERR_VO_INVALID_RECT_PARA 矩 形 结 构 体 参 数 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 层 已 配 置 。• 局 部 放 大 比 例 指 显 示 坐 标 上 需 缩 放 区 域 与 该 通 道 显 示 区 域 之 间 的 比 例 。• 取 消 局 部 放 大 时 , 只 需 将 局 部 放 大 比 例 结 构 体 中 的 宽 比 例 或 高 比 例 设 置 为 0。• 局 部 放 大 比 例 结 构 体 中 的 设 置 值 均 表 示 千 分 之 多 少 。例 如 , 设 置 值 为 425, 表 示 42.5‰。• 局 部 放 大 比 例 结 构 体 中 的 设 置 值 取 值 范 围 为 [0, 1000]。• 根 据 比 例 在 通 道 源 图 象 中 截 取 的 缩 放 区 域 宽 、 高 、 起 始 坐 标 均 会 自 动 以 2 对 齐( 向 靠 近 0 的 方 向 )。 当 混 合 输 入 的 时 候 , 起 始 坐 标 的 横 坐 标 、 宽 度 在 大 图 像 上 会自 从 以 4 对 齐 ( 向 靠 近 0 的 方 向 )。• 根 据 放 大 比 例 结 构 体 中 比 例 在 通 道 源 图 象 中 截 取 的 需 缩 放 区 域 宽 、 高 均 需 大 于16, 否 则 不 缩 放 。【 相 关 主 题 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-67


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VO_GetZoomInRatioHI_MPI_VO_GetZoomInRatio【 描 述 】获 取 视 频 输 出 局 部 放 大 比 例 。【 语 法 】HI_S32 HI_MPI_VO_GetZoomInWindow(VO_DEV VoDev, VO_CHN VoChn,VO_ZOOM_ATTR_S *pstZoomAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstZoomRatio 局 部 放 大 比 例 结 构 体 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 设 备 号 无 效 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VO_NULL_PTR 空 指 针 。HI_ERR_VO_VIDEO_NOT_CONFIG 未 设 置 视 频 层 属 性 。HI_ERR_VO_CHN_NOT_ALLOC 未 设 置 通 道 属 性 。4-68海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_MPI_VO_GetChnPts【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 必 须 先 启 用 视 频 输 出 设 备 , 并 且 配 置 视 频 输 出 公 共 属 性 。• 调 用 前 必 须 保 证 视 频 层 已 配 置 。• 默 认 局 部 放 大 的 比 例 全 为 0。【 相 关 主 题 】HI_MPI_VO_SetZoomInRatio【 描 述 】获 取 指 定 视 频 输 出 通 道 当 前 显 示 图 像 的 时 间 戳 。【 语 法 】HI_S32 HI_MPI_VO_GetChnPts(VO_DEV VoDev, VO_CHN VoChn,HI_U64 *pu64VoChnPts);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pu64VoChnPts 通 道 时 间 戳 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-69


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】调 用 前 需 保 证 视 频 设 备 使 能 , 视 频 通 道 使 能 。【 举 例 】VO_DEV VoDev = 0;VO_CHN VoChn = 0;HI_U64 u64ChnPts;s32Ret = HI_MPI_VO_GetChnPts(VoDev, VoChn, &u64ChnPts);if (s32Ret != HI_SUCCESS){printf("Get channel %d pts failed with errno %#x!\n", VoChn, s32Ret);return HI_FAILURE;}HI_MPI_VO_SetAttrBeginprintf("Channel %d pts is %llu.\n", VoChn, u64ChnPts);【 相 关 主 题 】无 。【 描 述 】设 置 属 性 开 始 。【 语 法 】HI_S32 HI_MPI_VO_SetAttrBegin(VO_DEV VoDev);【 参 数 】4-70海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_ERR_VO_SETBEGIN_ALREADY 视 频 输 出 设 置 属 性 已 经 开 始 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。• BEGIN 和 END 接 口 要 配 对 使 用 , 否 则 BEGIN 后 设 置 的 通 道 属 性 不 会 生 效 。【 举 例 】HI_S32 s32ret;HI_U32 i;VO_DEV VoDev = 0;VO_PUB_ATTR_S VoAttr;VO_CHN_ATTR_S VoChnAttr[4];memset(&VoAttr, 0, sizeof(VO_PUB_ATTR_S));VoAttr.enIntfType = VO_INTF_CVBS; /*CVBS */VoAttr.enIntfSync = VO_OUTPUT_PAL ; /*PAL Mode*/VoAttr.u32BgColor = 0x0;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-71


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考/* set public attribute of vo device */s32ret = HI_MPI_VO_SetPubAttr(VoDev, &VoAttr);if (HI_SUCCESS != s32ret){printf("vo set pub attr failed! \n");return s32ret;}/* enable vo device */s32ret = HI_MPI_VO_Enable(VoDev);if (HI_SUCCESS != s32ret){printf("enable vo device failed! \n");return s32ret;}/* configure and enable vo channel */for (i = 0; i < 4; i++){VoChnAttr[i].bZoomEnable = HI_TRUE;VoChnAttr[i].u32Priority = 1;VoChnAttr[i].stRect.s32X = 360*(i%2);VoChnAttr[i].stRect.s32Y = 288*(i/2);VoChnAttr[i].stRect.u32Width = 360;VoChnAttr[i].stRect.u32Height = 288;/* set attribute of vo chn*/s32ret = HI_MPI_VO_SetChnAttr(VoDev, i, &VoChnAttr[i]);if (HI_SUCCESS != s32ret){printf("vo set dev %d chn %d attr failed! \n", VoDev , i);return s32ret;}}/* enable vo chn */s32ret = HI_MPI_VO_EnableChn(VoDev, i);if (HI_SUCCESS != s32ret){printf("enable vo dev %d chn %d failed! \n", VoDev,i);return s32ret;}4-72海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出/* do somethng else */sleep(20);/* set channel attributes begin */s32ret = HI_MPI_VO_SetAttrBegin(VoDev);if (HI_SUCCESS != s32ret){printf("set attributes begin failed!\n");return s32ret;}/* reset channel attributes* we just show channel 0 and 1 on screen, and scale them as vertical* half D1*/for (i = 0; i < 2; i++){VoChnAttr[i].bZoomEnable = HI_TRUE;VoChnAttr[i].u32Priority = 1;VoChnAttr[i].stRect.s32X = 352*(i%2);VoChnAttr[i].stRect.s32Y = 288*(i/2);VoChnAttr[i].stRect.u32Width = 360;VoChnAttr[i].stRect.u32Height = 576;}/* set attribute of vo chn*/s32ret = HI_MPI_VO_SetChnAttr(VoDev, i, &VoChnAttr[i]);if (HI_SUCCESS != s32ret){printf("vo set chn %d attr failed! \n", i);return s32ret;}/* hide channel 2 and 3* we do this just for saving bandwidth*/for (i = 2; i < 4; i++){s32ret = HI_MPI_VO_ChnHide(VoDev,i);if (s32ret != HI_SUCCESS){printf("vo hide channel %d failed!\n", i);return HI_FAILURE;}文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-73


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}/* set channel attributes end */s32ret = HI_MPI_VO_SetAttrEnd(VoDev);if (HI_SUCCESS != s32ret){printf("set attributes end failed!\n");return s32ret;}/* do somethng else */sleep(20);/* set channel attributes begin */s32ret = HI_MPI_VO_SetAttrBegin(VoDev);if (HI_SUCCESS != s32ret){printf("set attributes begin failed!\n");return s32ret;}/* reset channel attributes* now we set them back as 4 cif on screen*/for (i = 0; i < 4; i++){VoChnAttr[i].bZoomEnable = HI_TRUE;VoChnAttr[i].u32Priority = 1;VoChnAttr[i].stRect.s32X = 360*(i%2);VoChnAttr[i].stRect.s32Y = 288*(i/2);VoChnAttr[i].stRect.u32Width = 360;VoChnAttr[i].stRect.u32Height = 288;}/* set attribute of vo chn*/s32ret = HI_MPI_VO_SetChnAttr(VoDev,i, &VoChnAttr[i]);if (HI_SUCCESS != s32ret){printf("vo set chn %d attr failed! \n", i);return s32ret;}/* show channel 2 and 3 */for (i = 2; i < 4; i++)4-74海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出{}s32ret = HI_MPI_VO_ChnShow(VoDev,i);if (s32ret != HI_SUCCESS){printf("vo show channel %d failed!\n", i);return HI_FAILURE;}/* set channel attributes end */s32ret = HI_MPI_VO_SetAttrEnd(VoDev);if (HI_SUCCESS != s32ret){printf("set attributes end failed!\n");return s32ret;}/* do somethng else */sleep(20);/* disable all channels */for (i = 0; i < 4; i++){s32ret = HI_MPI_VO_DisableChn(VoDev , i);if (HI_SUCCESS != s32ret){printf("vo disable chn %d failed!\n", i);return s32ret;}}HI_MPI_VO_SetAttrEnd/* disable vou */(void)HI_MPI_VO_Disable(VoDev);【 相 关 主 题 】HI_MPI_VO_SetAttrEnd【 描 述 】设 置 属 性 结 束 。【 语 法 】HI_S32 HI_MPI_VO_SetAttrEnd(VO_DEV VoDev);文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-75


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SETBEGIN_NOTYET 视 频 输 出 设 置 属 性 没 有 开 始 。HI_ERR_VO_SETEND_ALREADY 视 频 输 出 设 置 属 性 未 完 成 。HI_MPI_VO_ChnShow【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。• BEGIN 和 END 接 口 要 配 对 使 用 , 否 则 BEGIN 后 设 置 的 通 道 属 性 不 会 生 效 。【 举 例 】请 参 见 HI_MPI_VO_SetAttrBegin 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetAttrBegin【 描 述 】显 示 指 定 通 道 。4-76海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 语 法 】HI_S32 HI_MPI_VO_ChnShow(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 视 频 输 出 设 备 未 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。• 默 认 情 况 下 通 道 处 于 显 示 状 态 。【 举 例 】请 参 见 HI_MPI_VO_SetAttrBegin 的 举 例 。【 相 关 主 题 】HI_MPI_VO_ChnHide文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-77


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VO_ChnHide【 描 述 】隐 藏 指 定 通 道 。【 语 法 】HI_S32 HI_MPI_VO_ChnHide(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 视 频 输 出 设 备 未 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。【 举 例 】4-78海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出请 参 见 HI_MPI_VO_SetAttrBegin 的 举 例 。【 相 关 主 题 】HI_MPI_VO_ChnShowHI_MPI_VO_QueryChnStat【 描 述 】查 询 视 频 输 出 通 道 状 态 。【 语 法 】HI_S32 HI_MPI_VO_QueryChnStat (VO_DEV VoDev, VO_CHN VoChn,VO_QUERY_STATUS_S *pstStatus);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstStatus 通 道 状 态 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 视 频 输 出 通 道 未 使 能 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_CHN_NOT_ALLOC 通 道 资 源 未 配 置 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-79


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。• 可 以 多 次 调 用 获 取 通 道 状 态 接 口 。【 举 例 】HI_S32 s32Ret;VO_DEV VoDev = 0;VO_CHN VoChn = 0;VO_QUERY_STATUS_S stVoQueryStatus;/* enable vo device and vo channel */…s32Ret = HI_MPI_VO_QueryChnStat(VoDev, VoChn, &stVoQueryStatus);if (HI_SUCCESS != s32Ret){printf(“Query channel status failed with errorcode %#x!\n”, s32Ret);return HI_FAILURE;}printf(“Current vo dev %d channel %d has %d VB occupied!\n”,VoDev, VoChn, stVoQueryStatus .u32ChnBufUsed );【 相 关 主 题 】无 。HI_MPI_VO_SetChnSrcAttr【 描 述 】设 置 通 道 数 据 源 类 型 。【 语 法 】HI_S32 HI_MPI_VO_SetChnSrcAttr(VO_DEV VoDev, VO_CHN VoChn, VO_SRC_ATTR_S*pstSrcAttr);【 参 数 】4-80海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstSrcAttr 源 属 性 结 构 体 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_INVALID_DEVID 视 频 输 出 设 备 号 无 效 。HI_ERR_VO_CHN_NOT_ALLOC 通 道 资 源 未 配 置 。HI_ERR_VO_CHN_NOT_CONFIG 通 道 属 性 未 配 置 。HI_ERR_VO_NULL_PTR 空 指 针 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 该 接 口 用 于 如 下 特 殊 场 景 : 当 输 入 图 像 源 是 假 帧 ( 即 实 际 是 隔 行 数 据 ), 需 要 进 行DIE 或 其 它 处 理 后 才 能 在 逐 行 设 备 上 输 出 , 需 要 调 用 此 接 口 将 该 通 道 设 置 为 隔 行源 。• 调 用 前 需 要 保 证 该 通 道 属 性 已 经 配 置 。• 当 需 要 撤 销 对 源 的 设 置 时 , 将 结 构 体 成 员 bInterlaced 置 为 HI_FALSE。【 举 例 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-81


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考无 。【 相 关 主 题 】无 。HI_MPI_VO_GetChnFrame【 描 述 】获 取 输 出 通 道 图 像 数 据 。【 语 法 】HI_S32 HI_MPI_VO_GetChnFrame(VO_DEV VoDev, VO_CHN VoChn,VIDEO_FRAME_INFO_S *pstFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstFrame 获 取 的 输 出 通 道 图 像 数 据 信 息 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_ERR_VO_ILLEGAL_PARAM 视 频 输 出 参 数 无 效 。HI_ERR_VO_WAIT_TIMEOUT 获 取 图 像 数 据 超 时 。4-82海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 视 频 层 使 能 。• 获 取 后 应 保 证 及 时 的 释 放 。【 举 例 】...VIDEO_FRAME_INFO_S *pstFrame =(VIDEO_FRAME_INFO_S*)malloc(sizeof(VIDEO_FRAME_INFO_S));if (HI_SUCCESS != HI_MPI_VO_GetScreenFrame(VoDev, pstFrame)){printf("Get screen frame failed!\n");return HI_FAILURE;}/* do some process, i.e. store file or do JPEG encodeing ... */if (HI_SUCCESS != HI_MPI_VO_ReleaseScreenFrame(VoDev, pstFrame)){printf("Release screen frame failed!\n");return HI_FAILURE;}/* enable vo chn */s32ret = HI_MPI_VO_EnableChn(VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("enable vo chn failed! \n");return s32ret;}if (HI_SUCCESS != HI_MPI_VO_GetChnFrame(VoDev, VoChn, pstFrame)){printf("Get channel frame failed!\n");return HI_FAILURE;}/* do some process, i.e. store file or do JPEG encodeing ... */文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-83


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考if (HI_SUCCESS != HI_MPI_VO_ReleaseChnFrame(VoDev, VoChn, pstFrame)){printf("Release screen frame failed!\n");return HI_FAILURE;}(void)HI_MPI_VO_DisableChn(VoDev,VoChn);【 相 关 主 题 】HI_MPI_VO_ReleaseChnFrameHI_MPI_VO_ReleaseChnFrame【 描 述 】释 放 输 出 通 道 图 像 数 据 。【 语 法 】HI_S32 HI_MPI_VO_ReleaseChnFrame(VO_DEV VoDev, VO_CHNVoChn, VIDEO_FRAME_INFO_S *pstFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入pstFrame 释 放 的 输 出 通 道 图 像 数 据 信 息 结 构 体 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。4-84海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出接 口 返 回 值含 义HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_ERR_VO_ILLEGAL_PARAM 视 频 输 出 参 数 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 获 取 操 作 应 保 证 与 释 放 操 作 配 对 。【 举 例 】请 参 见 HI_MPI_VO_GetChnFrame 的 举 例 。【 相 关 主 题 】HI_MPI_VO_GetChnFrameHI_MPI_VO_GetScreenFrame【 描 述 】获 取 输 出 屏 幕 图 像 数 据 。【 语 法 】HI_S32 HI_MPI_VO_GetScreenFrame(VO_DEV VoDev,VIDEO_FRAME_INFO_S *pstFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstFrame 获 取 的 输 出 屏 幕 图 像 数 据 信 息 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-85


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。HI_ERR_VO_ILLEGAL_PARAM 视 频 输 出 参 数 无 效 。HI_ERR_VO_WAIT_TIMEOUT 获 取 图 像 数 据 超 时 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。• 可 以 多 次 调 用 , 获 取 后 应 保 证 及 时 的 释 放 。• 如 果 需 要 获 取 更 多 连 续 的 输 出 图 像 , 用 户 需 要 适 当 地 加 显 示 buffer 长 度 。• 该 接 口 属 于 阻 塞 接 口 , 超 时 时 间 为 1s, 所 以 在 显 示 帧 率 较 低 时 , 由 于 系 统 的 波 动可 能 导 致 接 口 返 回 超 时 , 此 时 属 于 正 常 情 况 。• 如 果 用 户 获 取 了 屏 幕 图 像 没 有 进 行 释 放 , 则 在 禁 止 视 频 层 的 时 候 会 返 回 busy 的 错误 , 这 时 用 户 应 该 释 放 获 取 的 buffer, 再 次 调 用 禁 止 视 频 层 操 作 , 这 样 才 能 保 证 禁止 成 功 。• 该 接 口 获 取 的 图 像 含 有 时 间 戳 , 该 时 间 戳 表 示 图 像 拼 接 时 的 时 间 信 息 , 如 果 用 户不 希 望 采 用 该 时 间 戳 进 行 编 码 , 可 以 自 行 修 改 时 间 戳 信 息 。【 举 例 】请 参 见 HI_MPI_VO_GetChnFrame 的 举 例 。【 相 关 主 题 】• HI_MPI_VO_ReleaseScreenFrame• HI_MPI_VO_SetDispBufLenHI_MPI_VO_ReleaseScreenFrame【 描 述 】4-86海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出释 放 输 出 屏 幕 图 像 数 据 。【 语 法 】HI_S32 HI_MPI_VO_ReleaseScreenFrame(VO_DEV VoDev,VIDEO_FRAME_INFO_S *pstFrame);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstFrame 释 放 的 输 出 屏 幕 图 像 数 据 信 息 结 构 体 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VO_CHN_NOT_ENABLE 视 频 输 出 通 道 未 使 能 。HI_ERR_VO_ILLEGAL_PARAM 视 频 输 出 参 数 无 效 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 需 保 证 视 频 设 备 使 能 。• 调 用 前 需 要 保 证 所 要 设 置 的 通 道 已 经 使 能 。• 可 以 多 次 调 用 , 获 取 操 作 应 保 证 与 释 放 操 作 配 对 。【 举 例 】请 参 见 HI_MPI_VO_GetChnFrame 的 举 例 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-87


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VO_SetVbiInfo【 相 关 主 题 】HI_MPI_VO_GetScreenFrame【 描 述 】设 置 图 像 附 加 数 据 信 息 。【 语 法 】HI_S32 HI_MPI_VO_SetVbiInfo(VO_DEV VoDev, VO_VBI_INFO_S *pstVbiInfo);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstVbiInfo 图 像 附 加 信 息 结 构 体 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_ILLEGAL_PARAM 无 效 参 数 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。HI_ERR_VO_NO_MEM 系 统 没 有 为 附 加 信 息 准 备 好 内 存 空 间 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】4-88海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出• Hi3520 芯 片 的 附 加 信 息 长 度 不 能 大 于 768%5 bytes。• 设 置 信 息 成 功 后 如 果 不 清 除 , 附 加 信 息 将 始 终 位 于 图 像 上 。• Hi3520 的 VBI 信 息 会 影 响 图 像 显 示 。Hi3515 芯 片 增 加 了 真 实 的 VBI 功 能 , 信 息在 消 隐 区 , 不 会 影 响 图 像 显 示 。【 举 例 】HI_U32 u32Ret;HI_CHAR vbi[100] = "good morning sir!";HI_CHAR gvbi[100];VIDEO_VBI_INFO_S stVbiInfo,stVbiInfoGet;stVbiInfo.u32X = 0;stVbiInfo.u32Y = 0;stVbiInfo.u32InfoLen = 100;stVbiInfo.pu8VbiInfo = (HI_U32 *)vbi;stVbiInfoGet.pu8VbiInfo = (HI_U32 *)gvbi;/* e.g. Enable Vi to Vo preview */...u32Ret = HI_MPI_VO_SetVbiInfo(VoDev, &stVbiInfo);if (HI_SUCCESS != u32Ret){printf("set vbi error with return value %#x\n", u32Ret);return HI_FAILURE;}u32Ret = HI_MPI_VO_GetVbiInfo(VoDev, &stVbiInfoGet);if (HI_SUCCESS != u32Ret){printf("get vbi error with return value %#x\n", u32Ret);return HI_FAILURE;}printf("[%d,%d,%d,%s]\n", stVbiInfoGet.u32X,stVbiInfoGet.u32Y,stVbiInfoGet.u32InfoLen,stVbiInfoGet.pu8VbiInfo);sleep(5);u32Ret = HI_MPI_VO_ClrVbiInfo(VoDev);if (HI_SUCCESS != u32Ret){文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-89


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}printf("Clear Vbi info with return value %#x\n", u32Ret);return HI_FAILURE;/* e.g. Disable Vi to Vo preview */...【 相 关 主 题 】HI_MPI_VO_GetVbiInfoHI_MPI_VO_GetVbiInfo【 描 述 】获 取 图 像 附 加 数 据 信 息 。【 语 法 】HI_S32 HI_MPI_VO_GetVbiInfo(VO_DEV VoDev, VIDEO_VBI_INFO_S *pstVbiInfo);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstVbiInfo 图 像 附 加 信 息 结 构 体 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。【 需 求 】4-90海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_MPI_VO_ClrVbiInfo• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】附 加 信 息 若 没 有 设 置 会 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_VO_SetVbiInfo 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetVbiInfo【 描 述 】清 除 图 像 附 加 数 据 信 息 。【 语 法 】HI_S32 HI_MPI_VO_ClrVbiInfo (VO_DEV VoDev);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 无 效 设 备 号 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-91


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 库 文 件 :libmpi.a【 注 意 】• 不 需 要 附 加 信 息 的 时 候 应 及 时 清 除 。• 该 接 口 可 以 重 复 调 用 。【 举 例 】请 参 见 HI_MPI_VO_SetVbiInfo 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetVbiInfoHI_MPI_VO_ClearChnBuffer【 描 述 】清 空 指 定 输 出 通 道 的 缓 存 buff 数 据 。【 语 法 】HI_S32 HI_MPI_VO_ClearChnBuffer(VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 通 道 的 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能 。4-92海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】该 接 口 功 能 在 解 码 HI_MPI_VDEC_ResetChn 中 已 经 涵 盖 。 用 户 也 可 以 单 独 调 用 此 接 口实 现 清 除 VO 通 道 buffer 的 功 能 。【 举 例 】请 参 见 HI_MPI_VO_Enable 的 举 例 。【 相 关 主 题 】HI_MPI_VO_SetVbiInfoHI_MPI_VO_SetDevCSC【 描 述 】设 置 设 备 输 出 图 像 效 果 。【 语 法 】HI_S32 HI_MPI_VO_SetDevCSC(VO_DEV VoDev, const VO_CSC_S *pstPubCSC);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstPubCSC 图 像 输 出 效 果 结 构 体 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-93


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_ILLEGAL_PARAM 无 效 参 数 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。HI_ERR_VO_DEV_NOT_CONFIG 设 备 未 配 置 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 该 接 口 主 要 用 于 调 节 图 像 的 输 出 效 果 , 包 括 亮 度 、 对 比 度 、 色 调 、 饱 和 度 , 其 取值 范 围 在 0 到 100 之 间 。• 调 用 该 接 口 前 确 保 设 备 属 性 已 经 配 置 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_GetDevCSCHI_MPI_VO_GetDevCSC【 描 述 】获 取 设 备 输 出 图 像 效 果 。【 语 法 】HI_S32 HI_MPI_VO_GetDevCSC(VO_DEV VoDev, VO_CSC_S *pstPubCSC);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstPubCSC 图 像 输 出 效 果 结 构 体 指 针 。 输 出【 返 回 值 】4-94海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_ILLEGAL_PARAM 无 效 参 数 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】该 接 口 主 要 用 于 获 取 图 像 的 输 出 效 果 , 包 括 亮 度 、 对 比 度 、 色 调 、 饱 和 度 , 其 取 值 范围 在 0 到 100 之 间 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_SetDevCSCHI_MPI_VO_SetDispBufLen【 描 述 】设 置 显 示 缓 冲 的 长 度 。【 语 法 】HI_S32 HI_MPI_VO_SetDispBufLen(VO_DEV VoDev, HI_U32 u32BufLen);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-95


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出u32BufLen 显 示 缓 冲 的 长 度 。物 理 设 备 取 值 范 围 :[VO_MIN_DISP_BUF,VO_MAX_DISP_BUF];虚 拟 设 备 取 值 范 围 :[VO_MIN_VIRT_BUF,VO_MAX_VIRT_BUF]输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 设 备 号 无 效 。HI_ERR_VO_DEV_NOT_ENABLE 设 备 未 使 能 。HI_ERR_VO_ILLEGAL_PARAM 无 效 参 数 。HI_ERR_VO_NOT_PERMIT 操 作 不 允 许 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 调 用 前 确 保 视 频 层 未 使 能 。• 缓 冲 长 度 具 有 默 认 值 , 物 理 设 备 默 认 值 为 VO_DEF_DISP_BUF_LEN, 虚 拟 设 备 默认 值 为 VO_DEF_VIRT_BUF_LEN。• 该 接 口 主 要 用 于 配 合 屏 幕 图 像 获 取 接 口 使 用 , 如 果 用 户 需 要 获 取 连 续 的 视 频 输 出图 像 数 据 , 需 要 将 显 示 缓 冲 的 长 度 按 照 上 述 要 求 设 置 。 缓 冲 长 度 越 大 , 即 用 户 可以 持 有 的 显 示 图 像 越 多 。• 默 认 情 况 下 , 允 许 用 户 获 取 一 帧 显 示 图 像 。• 在 单 通 道 直 通 的 情 况 下 , 不 允 许 用 户 获 取 输 出 图 像 , 事 实 上 用 户 可 以 获 取 通 道 图像 或 者 源 图 像 代 替 。4-96海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出• 实 际 使 用 上 , 用 户 应 该 尽 量 保 证 获 取 图 像 后 及 时 释 放 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_GetScreenFrameHI_MPI_VO_GetDispBufLen【 描 述 】获 取 显 示 缓 冲 的 长 度 。【 语 法 】HI_S32 HI_MPI_VO_GetDispBufLen(VO_DEV VoDev, HI_U32 *pu32BufLen);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pu32BufLen 显 示 缓 冲 的 长 度 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 设 备 号 无 效 。HI_ERR_VO_DEV_NOT_ENABLE 设 备 未 使 能 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。【 需 求 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-97


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】缓 冲 长 度 默 认 值 为 VO_DEF_DISP_BUF_LEN。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_SetDispBufLenHI_MPI_VO_SetSolidDraw【 描 述 】设 置 屏 幕 绘 制 属 性 。 该 接 口 用 于 在 视 频 层 绘 制 线 条 或 者 矩 形 区 域 。【 语 法 】HI_S32 HI_MPI_VO_SetSolidDraw(VO_DEV VoDev, const VO_DRAW_CFG_S*pstDrawCfg);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstDrawCfg 绘 制 属 性 结 构 体 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 设 备 号 无 效 。HI_ERR_VO_DEV_NOT_ENABLE 设 备 未 使 能 。4-98海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出接 口 返 回 值含 义HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。HI_ERR_VO_VIDEO_NOT_CONFIG 视 频 层 未 配 置 。HI_ERR_VO_ILLEGAL_PARAM 参 数 非 法 。HI_ERR_VO_NO_MEM 内 存 不 足 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 使 用 该 接 口 进 行 线 条 绘 制 或 者 色 块 填 充 会 影 响 系 统 性 能 , 尤 其 在 系 统 负 荷 紧 张 的情 况 下 。 因 为 该 接 口 的 绘 制 图 像 刷 新 率 和 视 频 层 一 致 , 从 而 进 一 步 地 增 加 了 TDE的 负 荷 。• 当 设 置 绘 制 计 数 为 0 时 , 所 有 划 线 取 消 。• 当 将 某 个 绘 制 区 的 宽 或 者 高 设 置 为 0 时 , 取 消 该 绘 制 区 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_GetSolidDrawHI_MPI_VO_GetSolidDraw【 描 述 】获 取 屏 幕 绘 制 属 性 。【 语 法 】HI_S32 HI_MPI_VO_GetSolidDraw(VO_DEV VoDev, VO_DRAW_CFG_S *pstDrawCfg);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。输 入pstDrawCfg 绘 制 属 性 结 构 体 指 针 。 输 出【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-99


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_INVALID_DEVID 设 备 号 无 效 。HI_ERR_VO_DEV_NOT_ENABLE 设 备 未 使 能 。HI_ERR_VO_NULL_PTR 参 数 指 针 为 空 。HI_ERR_VO_NO_MEM 内 存 不 足 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】设 置 绘 制 属 性 前 建 议 先 获 取 绘 制 属 性 , 这 样 就 不 至 于 在 设 置 新 的 绘 制 区 时 影 响 原 来 的绘 制 区 。【 举 例 】无 。【 相 关 主 题 】HI_MPI_VO_SetSolidDrawHI_MPI_VO_EnableCascade【 描 述 】使 能 视 频 级 联 。【 语 法 】HI_S32 HI_MPI_VO_EnableCascade (HI_VOID);【 参 数 】无 。【 返 回 值 】4-100海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_DEV_NOT_ENABLE 设 备 未 使 能 。HI_ERR_VO_VIDEO_NOT_ENABLE 视 频 层 未 使 能 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 级 联 只 能 在 高 清 设 备 上 进 行 。• 级 联 使 能 前 必 须 保 证 高 清 设 备 使 能 和 该 设 备 上 的 视 频 层 使 能 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_DisableCascadeHI_MPI_VO_DisableCascade【 描 述 】禁 止 视 频 级 联 。【 语 法 】HI_S32 HI_MPI_VO_DisableCascade(HI_VOID);【 参 数 】无 。【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-101


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_EnableCascadeHI_MPI_VO_SetCascadeMode【 描 述 】设 置 视 频 级 联 模 式 。【 语 法 】HI_S32 HI_MPI_VO_SetCascadeMode(HI_BOOL bSlave);【 参 数 】参 数 名 称 描 述 输 入 / 输 出bSlave 视 频 输 出 级 联 模 式 。 输 入【 返 回 值 】4-102海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_BUSY 视 频 输 出 设 备 忙 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 设 置 视 频 级 联 模 式 必 须 在 设 备 使 能 之 前 进 行 , 即 必 须 保 证 设 备 已 禁 止 。• 级 联 的 第 一 芯 片 设 置 为 主 模 式 , 其 它 级 联 芯 片 设 置 为 从 模 式 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_GetCascadeModeHI_MPI_VO_GetCascadeMode【 描 述 】获 取 视 频 级 联 模 式 。【 语 法 】HI_S32 HI_MPI_VO_GetCascadeMode(HI_BOOL *pbSlave);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pbSlave 视 频 输 出 级 联 模 式 指 针 。 输 出【 返 回 值 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-103


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_NULL_PTR 参 数 空 指 针 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_SetCascadeModeHI_MPI_VO_SetCascadePattern【 描 述 】设 置 视 频 级 联 画 面 样 式 。【 语 法 】HI_S32 HI_MPI_VO_SetCascadePattern(HI_U32 u32Pattern);【 参 数 】参 数 名 称 描 述 输 入 / 输 出u32Pattern 视 频 级 联 画 面 布 局 样 式 。取 值 范 围 :[0, 127]。输 入【 返 回 值 】4-104海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_INVALID_PATTERN 无 效 的 样 式 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】画 面 布 局 样 式 是 一 个 小 于 128 的 正 整 数 , 它 的 主 要 作 用 是 检 测 各 片 之 间 传 输 图 像 的 一致 性 。 即 如 果 要 保 证 图 像 传 输 的 正 确 性 , 就 必 须 保 证 各 片 的 pattern 一 致 。• 用 pattern 来 标 识 当 前 画 面 布 局 样 式 , 如 4 画 面 、9 画 面 、16 画 面 的 pattern 对 应 设置 为 4、9、16。 设 置 的 patten 值 不 必 和 画 面 布 局 样 式 中 的 画 面 个 数 一 致 , 只 要 保证 各 片 设 置 的 pattern 值 一 致 即 可 , 如 也 可 以 用 1 来 表 示 每 个 片 子 上 都 是 16 分 屏的 画 面 布 局 。• 使 用 pattern 的 另 一 个 作 用 是 确 保 多 画 面 切 换 时 的 同 步 性 。 当 级 联 的 芯 片 正 在 进 行4 画 面 显 示 时 , 其 中 一 片 先 切 换 到 9 画 面 , 而 其 它 片 子 陆 续 切 换 为 9 画 面 , 如 果pattern 始 终 不 变 , 画 面 就 会 在 切 换 过 程 中 出 现 错 误 的 几 帧 。 但 是 如 果 在 4 画 面 时pattern 设 置 为 4, 在 9 画 面 时 pattern 设 置 为 9, 那 么 切 换 过 程 中 出 现 的 错 误 图 像就 会 被 丢 弃 , 保 证 画 面 切 换 的 正 确 性 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_GetCascadePatternHI_MPI_VO_GetCascadePattern【 描 述 】获 取 视 频 级 联 画 面 样 式 。【 语 法 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-105


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_S32 HI_MPI_VO_GetCascadePattern(HI_U32 *pu32Pattern);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pu32Pattern 视 频 级 联 画 面 布 局 样 式 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_SetCascadePatternHI_MPI_VO_CascadePosBindChn【 描 述 】绑 定 级 联 区 域 与 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_CascadePosBindChn (HI_U32 u32Pos, VO_CHN VoChn);4-106海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 参 数 】参 数 名 称 描 述 输 入 / 输 出u32Pos 视 频 级 联 位 置 编 号 。取 值 范 围 :[0, 31]。VoChn 视 频 层 通 道 号 。取 值 范 围 :[0, 31]。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_DEV_NOT_ENABLE 视 频 输 出 设 备 未 使 能 。HI_ERR_VO_INVALID_POSITION 无 效 的 级 联 位 置 编 号 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ALLOC 通 道 资 源 未 分 配 。HI_ERR_VO_CHN_NOT_CONFIG 通 道 未 配 置 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】• 视 频 级 联 位 置 编 号 必 须 在 所 有 的 级 联 芯 片 上 是 唯 一 标 识 的 , 也 就 是 级 联 最 多 可 以输 出 32 个 通 道 。• Pos 的 值 不 能 有 重 复 , 如 果 存 在 两 个 或 者 两 个 以 上 通 道 的 Pos 值 相 同 , 那 么 传 输 图像 就 会 错 误 。Pos 相 当 于 给 Chn 取 了 个 别 名 , 所 有 需 要 级 联 的 通 道 都 必 须 有 一 个名 字 区 别 于 其 它 通 道 , 这 样 才 能 保 证 传 输 图 像 的 正 确 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-107


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_CascadePosUnBindChnHI_MPI_VO_CascadePosUnBindChn【 描 述 】解 绑 定 级 联 区 域 与 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VO_CascadePosUnBindChn(HI_U32 u32Pos, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出u32Pos 视 频 级 联 位 置 编 号 。取 值 范 围 :[0, 31]。VoChn 视 频 层 通 道 号 。取 值 范 围 :[0, 31]。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VO_SYS_NOTREADY 系 统 未 准 备 好 , 这 里 指 设 备 Fd 未 打 开 。HI_ERR_VO_DEV_NOT_ENABLE 视 频 输 出 设 备 未 使 能 。HI_ERR_VO_INVALID_POSITION 无 效 的 级 联 位 置 编 号 。HI_ERR_VO_INVALID_CHNID 通 道 号 无 效 。HI_ERR_VO_CHN_NOT_ALLOC 通 道 资 源 未 分 配 。4-108海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出接 口 返 回 值含 义HI_ERR_VO_CHN_NOT_CONFIG 通 道 未 配 置 。【 需 求 】• 头 文 件 :mpi_vo.h、hi_comm_vo.h• 库 文 件 :libmpi.a【 注 意 】视 频 级 联 位 置 编 号 必 须 在 所 有 的 级 联 芯 片 上 是 唯 一 标 识 的 , 也 就 是 级 联 最 多 可 以 输 出32 个 通 道 。【 举 例 】请 参 见 《Hi3520 视 频 级 联 应 用 指 南 》。【 相 关 主 题 】HI_MPI_VO_CascadePosBindChn4.4 数 据 类 型视 频 输 出 相 关 数 据 类 型 定 义 如 下 :• VO_DEV: 定 义 设 备 号 。• VO_GRP: 定 义 同 步 组 号 。• VO_PUB_ATTR_S: 定 义 视 频 输 出 设 备 属 性 结 构 体 。• VO_VIDEO_LAYER_ATTR_S: 定 义 视 频 层 属 性 结 构 体 。• DSU_HSCALE_FILTER_E: 定 义 水 平 缩 放 系 数 。• DSU_VSCALE_FILTER_E: 定 义 垂 直 缩 放 系 数 。• VO_CHN_FILTER_S: 定 义 VO 通 道 图 像 缩 放 的 滤 波 系 数 属 性 结 构 体 。• VO_SCREEN_HFILTER_E: 定 义 VO 缩 放 水 平 缩 放 系 数 。• VO_SCREEN_VFILTER_E: 定 义 VO 缩 放 垂 直 缩 放 系 数 。• VO_SCREEN_FILTER_S: 定 义 VO 缩 放 滤 波 系 数 属 性 结 构 体 。• VO_CHN_ATTR_S: 定 义 视 频 输 出 通 道 属 性 结 构 体 。• VO_DISPLAY_FIELD_E: 定 义 视 频 输 出 时 的 顶 底 场 模 式 。• VO_QUERY_STATUS_S: 定 义 视 频 输 出 通 道 状 态 结 构 体 。• VO_VBI_INFO_S: 定 义 VBI 信 息 结 构 体 。• VO_ZOOM_ATTR_S: 定 义 局 部 放 大 属 性 结 构 体 。• VO_ZOOM_RATIO_S: 定 义 按 比 例 局 部 放 大 结 构 体 。• VO_CSC_S: 定 义 图 像 输 出 效 果 结 构 体 。• VO_SRC_ATTR_S: 定 义 视 频 源 属 性 结 构 体 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-109


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• VO_DRAW_CFG_S: 定 义 绘 制 区 属 性 。• VO_DRAW_ATTR_S: 定 义 单 个 绘 制 区 属 性 。VO_DEV【 说 明 】定 义 设 备 号 。【 定 义 】typedef HI_S32 VO_DEV;【 成 员 】成 员 名 称描 述VO_DEV 视 频 输 出 模 块 有 三 个 视 频 输 出 设 备 , 分 别 进 行 如 下 定 义 :0:HD 设 备 , 即 高 清 显 示 设 备 。1:AD 设 备 , 即 辅 助 显 示 设 备 。2:SD 设 备 , 即 标 清 轮 询 设 备 。3: 虚 拟 设 备 。4: 虚 拟 设 备 。5: 虚 拟 设 备 。【 注 意 事 项 】• 高 清 设 备 可 以 输 出 VGA/YPBPR/BT.1120 等 高 清 模 拟 、 数 字 信 号 。• 辅 助 设 备 可 以 输 出 VGA 和 CVBS、BT.656 信 号 。• 标 清 轮 询 设 备 只 能 输 出 CVBS 信 号 。• 每 个 设 备 最 多 容 纳 64 个 通 道 。• Hi3515 不 支 持 AD 设 备 , 即 只 有 HD 和 SD 可 用 。• 虚 拟 设 备 不 进 行 实 际 的 显 示 输 出 , 只 是 将 通 道 图 像 进 行 拼 接 处 理 。 因 此 , 所 有 与视 频 输 出 硬 件 相 关 的 操 作 对 于 虚 拟 设 备 来 说 都 是 无 效 的 , 调 用 相 应 的 接 口 会 返 回成 功 。 例 如 色 彩 空 间 转 换 系 数 、 设 备 公 共 属 性 、 级 联 等 。【 相 关 数 据 类 型 及 接 口 】VO_PUB_ATTR_SVO_GRP【 说 明 】定 义 同 步 组 号 。【 定 义 】typedef HI_S32 VO_GRP;4-110海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出【 成 员 】成 员 名 称描 述VO_GRP 视 频 输 出 同 步 组 组 号 。同 步 组 最 大 值 :VO_SYNC_MAX_GRP。最 多 容 纳 通 道 数 VO_SYNC_MAX_CHN。VO_PUB_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】同 步 组 所 有 操 作 。【 说 明 】定 义 视 频 输 出 公 共 属 性 结 构 体 。【 定 义 】typedef struct hiVO_PUB_ATTR_S{/* background color of device [RGB] */HI_U32u32BgColor;/* vo inteface type */VO_INTF_TYPE_E enIntfType;/* vo interface synchronization */VO_INTF_SYNC_E enIntfSync;/* video synchronizing information */VO_SYNC_INFO_S stSyncInfo;} VO_PUB_ATTR_S;【 成 员 】成 员 名 称u32BgColor描 述设 备 背 景 色 , 表 示 方 法 RGB888。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-111


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述enIntfType 接 口 类 型 典 型 配 置 , 原 型 定 义 :typedef enum hiVO_INTF_TYPE_E{VO_INTF_CVBS = 0,VO_INTF_BT656 = 1,VO_INTF_VGA = 2,VO_INTF_YPBPR = 3,VO_INTF_BT1120 = 4,VO_INTF_LCD = 5,VO_INTF_BUTT} VO_INTF_TYPE_E;enIntfSync 接 口 时 序 典 型 配 置 , 原 型 定 义 :typedef enum hiVO_INTF_SYNC_E{VO_OUTPUT_PAL = 0,VO_OUTPUT_NTSC = 1,VO_OUTPUT_720P60 = 2,VO_OUTPUT_1080I50 = 3,VO_OUTPUT_1080I60 = 4,VO_OUTPUT_1080P25 = 5,VO_OUTPUT_1080P30 = 6,VO_OUTPUT_800x600_60 = 7,VO_OUTPUT_1024x768_60 = 8,VO_OUTPUT_1280x1024_60 = 9,VO_OUTPUT_1366x768_60 = 10,VO_OUTPUT_1440x900_60 = 11,VO_OUTPUT_800x600_75 = 12,VO_OUTPUT_1024x768_75 = 13,VO_OUTPUT_USER = 14,VO_OUTPUT_BUTT} VO_INTF_SYNC_E;4-112海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出成 员 名 称描 述stSyncInfo 接 口 时 序 结 构 体 , 原 型 定 义 :typedef struct tagVO_SYNC_INFO_S{HI_BOOL bSynm;HI_BOOL bIop;HI_U8 u8Intfb;HI_U16 u16Vact ;HI_U16 u16Vbb;HI_U16 u16Vfb;HI_U16HI_U16HI_U16u16Hact;u16Hbb;u16Hfb;HI_U16HI_U16HI_U16u16Bvact;u16Bvbb;u16Bvfb;HI_U16HI_U16u16Hpw;u16Vpw;HI_BOOL bIdv;HI_BOOL bIhs;HI_BOOL bIvs;} VO_SYNC_INFO_S;【 注 意 事 项 】• 当 接 口 时 序 配 置 为 VO_OUTPUT_USER 时 ,stSyncInfo 定 义 的 时 序 结 构 才 会 生效 , 表 示 用 户 自 定 义 的 时 序 结 构 。• 接 口 类 型 配 置 为 VO_INTF_CVBS 或 VO_INTF_BT656 时 ,enIntfSync 的 取 值 范 围为 [0, 1]。• 接 口 类 型 为 VO_INTF_VGA 或 者 VO_INTF_LCD 时 ,enIntfSync 的 取 值 范 围 为 [5,9]。• 接 口 类 型 为 VO_INTF_YPBPR 或 VO_INTF_BT1120 时 ,enIntfSync 的 取 值 范 围 为[2, 4]。• 配 置 设 备 属 性 在 设 备 下 一 次 打 开 时 生 效 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-113


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• Hi3515 的 HD 只 支 持 VO_INTF_VGA 接 口 , 同 时 其 时 序 只 支 持VO_OUTPUT_800x600_60 到 VO_OUTPUT_1440x900_60 的 VGA 显 示 时 序 , 当然 , 用 户 也 可 以 自 定 义 时 序 , 但 必 须 属 于 VGA 接 口 系 列 。• Hi3515 的 SD 支 持 VO_INTF_CVBS 和 VO_INTF_BT656 两 种 接 口 , 时 序 支 持 典 型时 序 VO_OUTPUT_PAL 和 VO_OUTPUT_NTSC。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetPubAttrVO_VIDEO_LAYER_ATTR_S【 说 明 】定 义 视 频 层 属 性 。在 视 频 层 属 性 中 存 在 三 个 概 念 , 即 设 备 分 辨 率 、 显 示 分 辨 率 和 图 像 分 辨 率 。 每 种 分 辨率 的 概 念 可 以 从 图 4-1 和 图 4-2 中 看 出 。TDE 缩 放 引 擎 负 责 将 各 个 通 道 的 画 面 拼 接 成 多 画 面 的 合 成 图 像 , 这 个 合 成 画 面 的 分 辨率 即 图 像 分 辨 率 , 也 就 是 视 频 层 数 据 结 构 中 的 stImageSize。VO 缩 放 引 擎 负 责 将 合 成 图 像 缩 放 到 屏 幕 显 示 区 域 , 当 进 行 缩 小 时 , 最 大 缩 小 能 力 为1/2, 如 果 小 于 1/2, 画 面 将 被 剪 裁 ( 而 不 是 缩 小 ) 成 需 要 的 比 例 ; 放 大 无 此 限 制 。图 4-1 视 频 层 属 性 的 相 关 概 念 示 意 ( 基 本 处 理 模 式 )4-114海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出图 4-2 视 频 层 属 性 的 相 关 概 念 示 意 ( 设 置 有 效 区 处 理 模 式 )【 定 义 】typedef struct hiVO_VIDEO_LAYER_ATTR_S{RECT_S stDispRect; /* display window */SIZE_S stImageSize; /* display resolution */HI_U32 u32DispFrmRt; /* display frame rate */PIXEL_FORMAT_E enPixFormat; /* support sp420 and sp422 */HI_S32 s32PiPChn; /* (1)VO_DEFAULT_CHN: default value *//* (2)[0~31]: use the channel buffer as pip buffer */} VO_VIDEO_LAYER_ATTR_S;【 成 员 】成 员 名 称描 述stDispRect 视 频 显 示 区 域 矩 形 结 构 体 。stImageSize 图 像 分 辨 率 结 构 体 , 即 合 成 画 面 尺 寸 。u32DispFrmRt 视 频 显 示 帧 率 。enPixFormat视 频 层 输 入 像 素 格 式 ,SPYCbCr420 或 者 SPYCbCr422。s32PiPChn 画 面 合 成 路 径 标 识 。默 认 值 为 VO_DEFAULT_CHN。【 注 意 事 项 】• stDispRect 范 围 不 能 超 出 设 备 分 辨 率 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-115


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• stImageSize 如 果 大 于 stDispRect, 合 成 图 像 将 被 剪 裁 。• u32DispFrmRt 是 视 频 显 示 帧 率 , 实 质 上 是 拼 接 图 像 的 帧 率 。 该 值 一 般 设 置 为 通 道满 帧 率 , 即 :− 如 果 源 是 PAL 制 式 , 设 置 为 25;− 如 果 源 是 NTSC 制 式 , 设 置 为 30。如 果 设 置 的 帧 率 比 通 道 的 源 帧 率 高 , 则 会 造 成 不 必 要 的 性 能 浪 费 。• SD 设 备 上 不 支 持 VO 的 缩 放 , 所 以 对 于 SD 上 的 输 出 , 通 常 保 持 图 像 分 辨 率 和 显示 分 辨 率 一 致 。• s32PiPChn 标 识 画 面 合 成 路 径 , 默 认 模 式 VO_DEFAULT_CHN 表 示 所 有 图 像 都 经过 TDE 缩 放 引 擎 搬 移 , 该 模 式 适 合 于 任 何 情 况 , 建 议 用 户 采 用 。 单 通 道 输 出 时 ,如 果 该 标 识 不 是 默 认 路 径 , 输 入 图 像 就 会 将 TDE 缩 放 引 擎 BYPASS。• s32PiPChn 标 识 的 非 默 认 模 式 不 仅 可 以 用 作 单 通 道 直 通 输 出 , 而 且 在 多 通 道 情 况 下可 以 节 省 拼 接 图 像 的 公 共 buffer。 在 多 通 道 情 况 下 , 用 户 可 以 设 置 s32PiPChn 为 [0,VO_MAX_CHN_NUM–1] 中 的 某 一 值 , 即 将 指 定 的 通 道 作 为 拼 接 图 像 的 目 标 区域 , 其 它 通 道 的 图 像 都 叠 加 到 该 图 像 上 输 出 。• 对 于 虚 拟 设 备 ,stDispRect 无 效 , 因 为 虚 拟 设 备 不 会 将 图 像 输 出 显 示 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetPubAttrDSU_HSCALE_FILTER_E【 说 明 】定 义 水 平 缩 放 系 数 。【 定 义 】typedef enum hiDSU_HSCALE_FILTER_E{DSU_HSCALE_FILTER_DEFAULT = 0,DSU_HSCALE_FILTER_C_65M,DSU_HSCALE_FILTER_CG_56M,DSU_HSCALE_FILTER_LC_45M,DSU_HSCALE_FILTER_CG_3M,DSU_HSCALE_FILTER_CG_2M,DSU_HSCALE_FILTER_CG_1M,DSU_HSCALE_FILTER_BUTT}DSU_HSCALE_FILTER_E;【 成 员 】成 员 名 称描 述DSU_HSCALE_FILTER_DEFAULT 默 认 缩 放 系 数 模 式 。4-116海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出成 员 名 称VPP_HSCALE_FILTER_n M描 述缩 放 系 数 。n 值 越 小 , 滤 波 后 的 图 像 越 模糊 。【 注 意 事 项 】系 统 默 认 采 用 DSU_HSCALE_FILTER_DEFAULT, 即 内 部 自 动 选 择 最 优 滤 波 系 数 。 一般 不 需 要 使 用 者 配 置 滤 波 系 数 。【 相 关 数 据 类 型 及 接 口 】DSU_VSCALE_FILTER_E• HI_MPI_VO_SetChnFilter• HI_MPI_VO_GetChnFilter【 说 明 】定 义 垂 直 缩 放 系 数 。【 定 义 】typedef enum hiDSU_VSCALE_FILTER_E{DSU_VSCALE_FILTER_DEFAULT = 0,DSU_VSCALE_FILTER_S_6M,DSU_VSCALE_FILTER_S_5M,DSU_VSCALE_FILTER_S_4M,DSU_VSCALE_FILTER_S_38M,DSU_VSCALE_FILTER_S_37M,DSU_VSCALE_FILTER_S_36M,DSU_VSCALE_FILTER_S_25M,DSU_VSCALE_FILTER_S_2M,DSU_VSCALE_FILTER_S_15M,DSU_VSCALE_FILTER_S_12M,DSU_VSCALE_FILTER_S_11M,DSU_VSCALE_FILTER_S_1M,DSU_VSCALE_FILTER_BUTT}DSU_VSCALE_FILTER_E;【 成 员 】成 员 名 称描 述DSU_VSCALE_FILTER_DEFAULT 默 认 缩 放 系 数 模 式 。VPP_VSCALE_FILTER_n M缩 放 系 数 。n 值 越 小 , 滤 波 后 的 图 像 越 模糊 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-117


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 事 项 】VO_CHN_FILTER_S系 统 默 认 采 用 DSU_VSCALE_FILTER_DEFAULT, 即 内 部 自 动 选 择 最 优 滤 波 系 数 。 一般 不 需 要 使 用 者 配 置 滤 波 系 数 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VO_SetChnFilter• HI_MPI_VO_GetChnFilter【 说 明 】定 义 VO 通 道 图 像 缩 放 的 滤 波 系 数 属 性 结 构 体 。【 定 义 】typedef struct hi_VO_CHN_FILTER_S{DSU_FILTER_PARAM_TYPE enFiltType;DSU_HSCALE_FILTER_E enHFilter;DSU_VSCALE_FILTER_E enVFilterL;DSU_VSCALE_FILTER_E enVFilterC;} VO_CHN_FILTER_S;【 成 员 】成 员 名 称enFiltTypeenHFilterenVFilterLenVFilterC描 述滤 波 类 型 , 每 种 滤 波 类 型 都 包 含 水 平 / 垂直 亮 度 / 垂 直 色 度 滤 波 系 数水 平 滤 波 系 数 选 项 ( 亮 度 和 色 度 使 用 相同 的 水 平 滤 波 系 数 )亮 度 的 垂 直 滤 波 系 数 选 项色 度 的 垂 直 滤 波 系 数 选 项【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VO_SetChnFilter• HI_MPI_VO_GetChnFilter4-118海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出VO_SCREEN_HFILTER_E【 说 明 】定 义 VO 缩 放 水 平 缩 放 系 数 。【 定 义 】typedef enum hiVO_SCREEN_HFILTER_E{VO_SCREEN_HFILTER_DEF = 0,VO_SCREEN_HFILTER_8M,VO_SCREEN_HFILTER_6M,VO_SCREEN_HFILTER_5M,VO_SCREEN_HFILTER_4M,VO_SCREEN_HFILTER_3M,VO_SCREEN_HFILTER_2M,VO_SCREEN_HFILTER_BUTT} VO_SCREEN_HFILTER_E;【 成 员 】成 员 名 称描 述VO_SCREEN_HFILTER_DEF 默 认 缩 放 系 数 模 式 。VO_SCREEN_HFILTER_n M缩 放 系 数 。n 值 越 小 , 滤 波 后 的 图 像 越 模糊 。【 注 意 事 项 】系 统 默 认 采 用 VO_SCREEN_HFILTER_DEF, 即 内 部 自 动 选 择 最 优 滤 波 系 数 。 一 般 不需 要 使 用 者 配 置 滤 波 系 数 。【 相 关 数 据 类 型 及 接 口 】VO_SCREEN_VFILTER_E• HI_MPI_VO_SetScreenFilter• HI_MPI_VO_GetScreenFilter【 说 明 】定 义 VO 缩 放 垂 直 缩 放 系 数 。【 定 义 】typedef enum hiVO_SCREEN_VFILTER_E{VO_SCREEN_VFILTER_DEF = 0,文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-119


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VO_SCREEN_VFILTER_8M,VO_SCREEN_VFILTER_6M,VO_SCREEN_VFILTER_5M,VO_SCREEN_VFILTER_4M,VO_SCREEN_VFILTER_3M,VO_SCREEN_VFILTER_2M,VO_SCREEN_VFILTER_BUTT} VO_SCREEN_VFILTER_E;【 成 员 】成 员 名 称描 述VO_SCREEN_VFILTER_DEF 默 认 缩 放 系 数 模 式 。VO_SCREEN_VFILTER_n M缩 放 系 数 。n 值 越 小 , 滤 波 后 的 图 像 越 模糊 。【 注 意 事 项 】系 统 默 认 采 用 VO_SCREEN_VFILTER_DEF, 即 内 部 自 动 选 择 最 优 滤 波 系 数 。 一 般 不需 要 使 用 者 配 置 滤 波 系 数 。【 相 关 数 据 类 型 及 接 口 】VO_SCREEN_FILTER_S• HI_MPI_VO_SetScreenFilter• HI_MPI_VO_GetScreenFilter【 说 明 】定 义 VO 缩 放 滤 波 系 数 属 性 结 构 体 。【 定 义 】typedef struct hiVO_SCALE_FILTER_S{VO_SCREEN_HFILTER_E enHFilter;VO_SCREEN_VFILTER_E enVFilter;} VO_SCREEN_FILTER_S;【 成 员 】成 员 名 称描 述enHFilter 水 平 滤 波 系 数 选 项 ( 亮 度 色 度 均 已 包 含 )enVFilter 垂 直 滤 波 系 数 选 项 ( 亮 度 色 度 均 已 包 含 )4-120海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出VO_CHN_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VO_SetScreenFilter• HI_MPI_VO_GetScreenFilter【 说 明 】定 义 视 频 输 出 通 道 属 性 。【 定 义 】typedef struct hiVO_CHN_ATTR_S{HI_U32 u32Priority;RECT_S stRect;HI_BOOL bZoomEnable;HI_BOOL bDeflicker;}VO_PUB_ATTR_S;【 成 员 】成 员 名 称描 述u32Priority 视 频 通 道 叠 加 优 先 级 , 优 先 级 高 的 在 上 层 。取 值 范 围 :[0, 31]。动 态 属 性 。stRect通 道 矩 形 显 示 区 域 。 以 屏 幕 的 左 上 角 为 原 点 。 该 矩 形 的 左 上 角 座 标必 须 是 2 对 齐 , 且 该 矩 形 区 域 必 须 在 屏 幕 范 围 之 内 。动 态 属 性 。bZoomEnable 缩 放 开 关 标 识 。取 值 范 围 :• HI_TRUE: 将 输 入 图 像 缩 放 成 stRect 定 义 的 尺 寸 在 屏 幕 上 显 示 。• HI_FALSE: 输 入 图 像 上 剪 裁 stRect 定 义 的 矩 形 区 域 进 行 显 示 。动 态 属 性 。bDeflicker 通 道 抗 闪 烁 开 关 。取 值 范 围 :• HI_TRUE: 将 输 入 图 像 做 抗 闪 烁 处 理 后 显 示 。• HI_FALSE: 不 对 通 道 输 入 图 像 做 抗 闪 烁 处 理 , 直 接 显 示 。动 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-121


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetChnAttrVO_DISPLAY_FIELD_E【 说 明 】定 义 视 频 输 出 时 的 顶 底 场 模 式 。【 定 义 】typedef enum hiVO_DISPLAY_FIELD_E{VO_FIELD_TOP, /* top field*/VO_FIELD_BOTTOM, /* bottom field*/VO_FIELD_BOTH, /* top and bottom field*/VO_FIELD_BUTT} VO_DISPLAY_FIELD_E;【 成 员 】成 员 名 称描 述VO_FIELD_TOP 视 频 输 出 缩 放 时 只 处 理 顶 场 。VO_FIELD_BOTTOM 视 频 输 出 缩 放 时 只 处 理 底 场 。VO_FIELD_BOTH 视 频 输 出 缩 放 时 两 场 都 处 理 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetChnFieldVO_QUERY_STATUS_S【 说 明 】视 频 输 出 通 道 状 态 结 构 体 。【 定 义 】typedef struct hiVO_QUERY_STATUS_S{4-122海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出HI_U32 u32ChnBufUsed; /* channel buffer that been occupied */} VO_QUERY_STATUS_S;【 成 员 】成 员 名 称描 述u32ChnBufUsed 视 频 输 出 通 道 当 前 占 用 的 视 频 buffer 数 目 。VO_VBI_INFO_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_QueryChnStat【 说 明 】定 义 图 像 附 加 信 息 结 构 体 。【 定 义 】typedef struct hiVO_VBI_INFO_S{HI_U32 u32X;HI_U32 u32Y;HI_U8 u8VbiInfo[128];HI_U32 u32InfoLen;} VO_VBI_INFO_S;【 成 员 】成 员 名 称描 述u32X 图 像 附 加 信 息 起 始 点 横 坐 标 。u32Y 图 像 附 加 信 息 起 始 点 纵 坐 标 。u8VbiInfo 图 像 附 加 信 息 数 组 。u32InfoLen 图 像 附 加 信 息 长 度 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-123


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VO_ZOOM_ATTR_SHI_MPI_VO_SetVbiInfo【 说 明 】定 义 局 部 放 大 属 性 结 构 体 。 局 部 放 大 原 理 示 意 如 图 4-3 所 示 。图 4-3 局 部 放 大 原 理 示 意通 道 原 始 图 像映 射 用 户 选 区局 部 窗 通 道( 局 部 放 大 后 图 像 )全 景 窗 通 道用 户 鼠 标 选 区(stZoomRect)基 于 源 图 像 坐 标 系中 国局 部 窗 放 大 通 道中 国全 景 窗 缩 小 通 道源 图 像选 区 映 射显 示 图 像RECTRATIO用 户 鼠 标 选 区(pstZoomRatio)基 于 显 示 坐 标 系Wwxy中 国hHu32XRatio = x * 1000 / Wu32YRatio = y * 1000 / Hu32WRatio = w * 1000 / Wu32HRatio = h * 1000 / H【 定 义 】typedef struct hiVO_ZOOM_ATTR_S{RECT_S stZoomRect;VIDEO_FIELD_E enField;4-124海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出} VO_ZOOM_ATTR_S;【 成 员 】成 员 名 称描 述stZoomRect 局 部 放 大 窗 口 矩 形 坐 标 。enField 局 部 放 大 图 像 的 帧 场 信 息 。【 注 意 事 项 】VO_ZOOM_RATIO_S• 取 消 局 部 放 大 功 能 , 将 该 放 大 区 域 的 矩 形 坐 标 设 置 为 (0,0,0,0)。• 帧 场 标 识 可 以 在 级 联 时 标 识 该 放 大 区 域 是 否 要 进 行 DIE 操 作 , 即 如 果 该 区 域 帧 场标 识 设 置 为 VIDEO_FIELD_INTERLACED, 则 在 逐 行 设 备 上 就 要 进 行 DIE 操 作 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetZoomInWindow【 说 明 】定 义 按 比 例 局 部 放 大 结 构 体 。【 定 义 】typedef struct hiVO_ZOOM_RATIO_S{HI_U32 u32XRatio;HI_U32 u32YRatio;HI_U32 u32WRatio;HI_U32 u32HRatio;} VO_ZOOM_RATIO_S;【 成 员 】成 员 名 称u32XRatiou32YRatio描 述屏 幕 坐 标 上 , 待 缩 放 区 域 起 始 点 横 坐 标 与 显 示 通 道宽 的 比 例 。屏 幕 坐 标 上 , 待 缩 放 区 域 起 始 点 纵 坐 标 与 显 示 通 道高 的 比 例 。u32WRatio 屏 幕 坐 标 上 , 待 缩 放 区 域 宽 与 显 示 通 道 宽 的 比 例 。u32HRatio 屏 幕 坐 标 上 , 待 缩 放 区 域 高 与 显 示 通 道 高 的 比 例 。【 注 意 事 项 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-125


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 结 构 体 成 员 变 量 的 取 值 范 围 [0, 1000]。• 取 消 局 部 放 大 功 能 时 , 只 要 将 该 结 构 体 中 的 成 员 都 置 0 即 可 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetZoomInRatioVO_CSC_S【 说 明 】定 义 图 像 输 出 效 果 结 构 体 。【 定 义 】typedef struct hiVO_CSC_S{VO_CSC_E enCSCType;HI_U32 u32Value;} VO_CSC_S;其 中 VO_CSC_E 定 义 如 下typedef enum hiVO_CSC_E{VO_CSC_LUMA = 0, /* luminance: [0 ~ 100] */VO_CSC_CONTR = 1, /* contrast : [0 ~ 100] */VO_CSC_HUE = 2, /* hue : [0 ~ 100] */VO_CSC_SATU = 3, /* satuature: [0 ~ 100] */VO_CSC_BUTT} VO_CSC_E;【 成 员 】成 员 名 称描 述enCSCType 图 像 效 果 类 型 。u32Value 图 像 效 果 值 。VO_SRC_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetDevCSC【 说 明 】4-126海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出定 义 视 频 源 属 性 结 构 体 。【 定 义 】typedef struct hiVO_SRC_ATTR_S{HI_BOOL bInterlaced; /* interlaced source */} VO_SRC_ATTR_S;【 成 员 】成 员 名 称描 述bInterlaced 图 像 源 是 否 隔 行 输 入 。取 值 范 围 :• HI_TRUE: 隔 行 输 入 。• HI_FALSE: 逐 行 输 入 。VO_DRAW_CFG_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetChnSrcAttr【 说 明 】定 义 绘 制 区 属 性 。【 定 义 】typedef struct hiVO_DRAW_CFG_S{HI_U32 u32DrawCount;VO_DRAW_ATTR_S stDrawAttr[VO_MAX_SOLIDDRAW];} VO_DRAW_CFG_S;【 成 员 】成 员 名 称描 述u32DrawCount 绘 制 区 计 数 。取 值 范 围 :[0, VO_MAX_SOLIDDRAW]。动 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-127


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述stDrawAttr 绘 制 区 域 属 性 结 构 体 。动 态 属 性 。VO_DRAW_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetSolidDraw【 说 明 】定 义 单 个 绘 制 区 属 性 。【 定 义 】typedef struct hiVO_DRAW_ATTR_S{RECT_S stDrawRect;HI_U32 u32Color;} VO_DRAW_ATTR_S;【 成 员 】成 员 名 称描 述stDrawRect 绘 制 区 范 围 。绘 制 区 域 不 能 超 出 stImgSize, 同 时 绘 制 区 的 起 始点 和 宽 高 都 要 求 2 对 齐 。u32Color 绘 制 区 颜 色 。颜 色 以 RGB888 表 示 , 不 支 持 alpha 操 作 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VO_SetSolidDraw4-128海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考4 视 频 输 出4.5 错 误 码视 频 输 出 API 错 误 码 如 表 4-1 所 示 。表 4-1 视 频 输 出 API 错 误 码错 误 代 码 宏 定 义 描 述0xA00F8001 HI_ERR_VO_INVALID_DEVID 设 备 ID 超 出 合 法 范 围0xA00F8002 HI_ERR_VO_INVALID_CHNID 通 道 ID 超 出 合 法 范 围0xA00F8003 HI_ERR_VO_ILLEGAL_PARAM 参 数 超 出 合 法 范 围0xA00F8006 HI_ERR_VO_NULL_PTR 函 数 参 数 中 有 空 指 针0xA00F8008 HI_ERR_VO_NOT_SUPPORT 不 支 持 的 操 作0xA00F8009 HI_ERR_VO_NOT_PERMIT 操 作 不 允 许0xA00F800C HI_ERR_VO_NO_MEM 内 存 不 足0xA00F8010 HI_ERR_VO_SYS_NOTREADY 系 统 未 初 始 化0xA00F8012 HI_ERR_VO_BUSY 资 源 忙0xA00F8040 HI_ERR_VO_DEV_NOT_CONFIG 设 备 未 配 置0xA00F8041 HI_ERR_VO_DEV_NOT_ENABLE 设 备 未 使 能0xA00F8042 HI_ERR_VO_DEV_NOT_DISABLE 设 备 未 禁 止0xA00F8045 HI_ERR_VO_VIDEO_NOT_ENABLE 视 频 层 未 使 能0xA00F8046 HI_ERR_VO_VIDEO_NOT_DISABLE 视 频 层 未 禁 止0xA00F8047 HI_ERR_VO_VIDEO_NOT_CONFIG 视 频 层 未 配 置0xA00F8048 HI_ERR_VO_CHN_NOT_DISABLE 通 道 未 禁 止0xA00F8049 HI_ERR_VO_CHN_NOT_ENABLE 通 道 未 使 能0xA00F804A HI_ERR_VO_CHN_NOT_CONFIG 通 道 未 配 置0xA00F804B HI_ERR_VO_CHN_NOT_ALLOC 通 道 未 分 配 资 源0xA00F804C HI_ERR_VO_INVALID_PATTERN 无 效 样 式0xA00F804D HI_ERR_VO_INVALID_POSITION 无 效 级 联 位 置0xA00F804E HI_ERR_VO_WAIT_TIMEOUT 等 待 超 时0xA00F804F HI_ERR_VO_INVALID_VFRAME 无 效 视 频 帧0xA00F8050 HI_ERR_VO_INVALID_RECT_PARA 无 效 矩 形 参 数0xA00F8051 HI_ERR_VO_SETBEGIN_ALREADY BEGIN 已 设 置文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司4-129


4 视 频 输 出Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考错 误 代 码 宏 定 义 描 述0xA00F8052 HI_ERR_VO_SETBEGIN_NOTYET BEGIN 没 有 设 置0xA00F8053 HI_ERR_VO_SETEND_ALREADY END 已 设 置0xA00F8054 HI_ERR_VO_SETEND_NOTYET END 没 有 设 置0xA00F8055 HI_ERR_VO_GRP_INVALID_ID 同 步 组 ID 无 效0xA00F8056 HI_ERR_VO_GRP_NOT_CREATE 同 步 组 未 创 建0xA00F8057 HI_ERR_VO_GRP_HAS_CREATED 同 步 组 已 经 创 建0xA00F8058 HI_ERR_VO_GRP_NOT_DESTROY 同 步 组 未 销 毁0xA00F8059 HI_ERR_VO_GRP_CHN_FULL 同 步 组 通 道 注 册 满0xA00F805A HI_ERR_VO_GRP_CHN_EMPTY 同 步 组 无 注 册 通 道0xA00F805B0xA00F805C0xA00F805DHI_ERR_VO_GRP_CHN_NOT_EMPTYHI_ERR_VO_GRP_INVALID_SYN_MODEHI_ERR_VO_GRP_INVALID_BASE_PTS同 步 组 通 道 不 为 空无 效 同 步 模 式无 效 基 准 时 间 戳0xA00F805E HI_ERR_VO_GRP_NOT_START 同 步 组 未 启 动0xA00F805F HI_ERR_VO_GRP_NOT_STOP 同 步 组 未 停 止0xA00F8060HI_ERR_VO_GRP_INVALID_FRMRATE同 步 组 无 效 帧 率0xA00F8061 HI_ERR_VO_GRP_CHN_HAS_REG 通 道 已 经 注 册0xA00F8062 HI_ERR_VO_GRP_CHN_NOT_REG 通 道 未 注 册0xA00F8063HI_ERR_VO_GRP_CHN_NOT_UNREG通 道 未 注 销0xA00F8064 HI_ERR_VO_GRP_BASE_NOT_CFG 基 准 时 间 戳 未 配 置0xA00F8065 HI_ERR_VO_DEV_HAS_ENABLED 视 频 输 出 设 备 已 经 使 能4-130海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录5 视 频 前 处 理 ...................................................................................................................................5-15.1 概 述 ..............................................................................................................................................................5-15.2 重 要 概 念 ......................................................................................................................................................5-15.3 API 参 考 .......................................................................................................................................................5-25.4 数 据 类 型 ....................................................................................................................................................5-305.5 错 误 码 ........................................................................................................................................................5-59文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 5-1 各 种 VPP 区 域 的 对 比 .........................................................................................................................5-10表 5-2 视 频 前 处 理 API 错 误 码 ......................................................................................................................5-59文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司iii


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理5 视 频 前 处 理5.1 概 述视 频 前 处 理 模 块 对 输 入 或 者 是 VI 捕 获 的 图 像 所 作 的 处 理 都 在 编 码 前 进 行 , 主 要 提 供 设置 和 获 取 视 频 前 处 理 配 置 、 创 建 和 销 毁 VPP 区 域 、 控 制 VPP 区 域 、 创 建 和 等 待 缩 放 任务 完 成 功 能 。5.2 重 要 概 念• Cover Region视 频 遮 挡 区 域 。• Overlay Region视 频 叠 加 区 域 , 针 对 码 流 里 打 的 叠 加 区 域 , 即 通 常 所 说 的 码 流 OSD。• ViOverlay RegionVI 视 频 叠 加 区 域 , 是 在 VI 的 原 始 视 频 图 像 叠 加 的 “ 前 端 OSD”, 与 VI 绑 定 的VO、VENC 等 视 频 流 中 都 会 该 叠 加 区 域 显 示 。 只 推 荐 应 用 于 PCI 板 卡 业 务 中 。• CoverEx Region扩 展 视 频 遮 挡 区 域 。Cover Region 受 限 于 VI 硬 件 , 每 个 通 道 最 多 有 4 个 遮 挡 区域 , 这 可 能 在 某 些 场 景 下 不 足 , 因 此 用 TDE 的 fill 操 作 在 VI 的 图 像 上 添 加 遮 挡 区域 , 同 时 该 遮 挡 区 域 支 持 对 顶 场 、 底 场 单 独 进 行 遮 挡 操 作 。• 区 域 层 次 Layer区 域 层 次 是 针 对 遮 挡 区 域 、 软 叠 加 区 域 而 言 , 范 围 是 [0, 100],0 表 示 最 底 层 ,100表 示 最 上 层 。• 区 域 透 明 度区 域 透 明 度 是 针 对 叠 加 区 域 、 软 叠 加 区 域 而 言 , 当 前 叠 加 区 域 对 于 其 下 一 层 图 像的 透 明 程 度 , 范 围 是 [0, 128],0 表 示 完 全 透 明 ,128 表 示 完 全 不 透 明 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-1


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5.3 API 参 考HI_MPI_VPP_SetConf视 频 前 处 理 模 块 对 用 户 输 入 或 VI 捕 获 的 图 像 所 作 的 处 理 都 在 编 码 前 进 行 。 视 频 前 处 理模 块 主 要 提 供 设 置 和 获 取 视 频 前 处 理 配 置 、 创 建 和 销 毁 VPP 区 域 、 控 制 VPP 区 域 、 创建 和 等 待 图 像 缩 放 任 务 完 成 功 能 。该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_VPP_SetConf: 设 置 视 频 前 处 理 配 置 。• HI_MPI_VPP_GetConf: 获 取 视 频 前 处 理 配 置 。• HI_MPI_VPP_SetDsuFiltParam: 设 置 用 户 自 定 义 的 DSU 缩 放 滤 波 参 数 。• HI_MPI_VPP_GetDsuFiltParam: 获 取 用 户 自 定 义 的 DSU 滤 波 参 数 。• HI_MPI_VPP_CreateRegion: 创 建 VPP 区 域 。• HI_MPI_VPP_DestroyRegion: 销 毁 VPP 区 域 。• HI_MPI_VPP_ControlRegion: 控 制 VPP 区 域 。• HI_MPI_VPP_CreateScaleTask: 创 建 一 个 图 像 缩 放 任 务 。• HI_MPI_VPP_WaitScaleTask: 等 待 一 个 图 像 缩 放 任 务 完 成 。【 描 述 】设 置 视 频 前 处 理 配 置 。【 语 法 】HI_S32 HI_MPI_VPP_SetConf(VENC_GRP VeGroup, const VIDEO_PREPROC_CONF_S*pstConf);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。输 入pstConf 视 频 前 处 理 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】5-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_INVALID_CHNID 通 道 组 号 错 误 或 无 效 区 域 句 柄 。HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VPP_NOTREADY系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块( 指 各 个 MPI 对 应 的 内 核 模 块 )。【 需 求 】• 头 文 件 :hi_comm_vpp.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】• 视 频 前 处 理 的 的 各 项 配 置 都 有 默 认 值 , 一 般 情 况 下 不 需 要 用 户 再 进 行 设 置 , 目 前的 默 认 配 置 为 : 彩 色 转 灰 色 关 闭 、 时 域 去 噪 打 开 、 滤 波 类 型 为FILTER_PARAM_TYPE_NORM、 滤 波 系 数 为 默 认 、 缩 放 方 式 为 采 用 保 留 底 场 方 式缩 放 、 编 码 输 入 图 像 的 剪 切 功 能 关 闭 。• 如 果 需 要 更 改 默 认 配 置 , 应 该 先 调 用 HI_MPI_VPP_GetConf 接 口 获 取 配 置 , 更 改需 要 配 置 的 部 分 选 项 后 , 再 调 用 此 接 口 进 行 设 置 。• 滤 波 类 型 及 系 数 在 编 码 业 务 需 要 用 到 DSU 模 块 进 行 缩 放 时 使 用 。 用 户 可 指 定 使 用某 种 类 型 的 滤 波 参 数 , 然 后 指 定 使 用 其 下 的 某 组 水 平 / 垂 直 滤 波 参 数 ( 或 选 择 默 认系 数 类 型 ,SDK 内 部 会 根 据 一 定 策 略 在 该 类 型 滤 波 参 数 中 自 动 选 择 合 适 的 水 平 / 垂直 滤 波 参 数 )。• 该 接 口 中 滤 波 类 型 enFilterType 仅 支 持 设 置 为 FILTER_PARAM_TYPE_NORM、FILTER_PARAM_TYPE_USER1 或 FILTER_PARAM_TYPE_USER2, 否 则 返 回 参数 错 误 。当 设 置 enFilterType 为 FILTER_PARAM_TYPE_NORM 时 , 可 通 过 调 节 enHFilter/enVFilterL/ enVFilterC 选 择 不 同 截 止 频 率 的 滤 波 参 数 达 到 不 同 的 滤 波 效 果• 当 用 户 对 缩 放 效 果 有 特 定 需 求 时 , 需 先 通 过 接 口 HI_MPI_VPP_SetDsuFiltParam 设置 用 户 自 定 义 的 滤 波 参 数 , 然 后 在 此 指 定 enFilterType 为 相 应 的FILTER_PARAM_TYPE_USERX, 即 可 在 DSU 缩 放 时 启 动 用 户 自 定 义 滤 波 参 数了 。 设 置 用 户 自 定 义 滤 波 参 数 请 参 见 接 口 HI_MPI_VPP_SetDsuFiltParam 说 明 。• 通 道 组 创 建 之 后 , 才 能 调 用 此 接 口 , 否 则 返 回 HI_ERR_VPP_NOT_PERM。• 此 接 口 可 动 态 调 用 , 即 在 编 码 时 也 可 以 调 用 此 接 口 。【 举 例 】#include #include #include 文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-3


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考#include #include #include #include #include #include #include #include #include #include "hi_common.h"#include "hi_comm_vpp.h"#include "mpi_vpp.h"HI_S32 VppSetAndGetConf(HI_VOID){HI_S32 s32Ret;VENC_GRP VeGroup = 0;VIDEO_PREPROC_CONF_S stConf;/* first get current vpp config */s32Ret = HI_MPI_VPP_GetConf(VeGroup, &stConf);if (HI_SUCCESS != s32Ret){printf("HI_MPI_VPP_GetConf failed 0x%x!\n",s32Ret);return HI_FAILURE;}/* modify some config you need */stConf.bColorToGrey = HI_TRUE;stConf.bTemporalDenoise = HI_TRUE;stConf.enScaleMode = VPP_SCALE_MODE_USEBOTTOM;stConf.enFilter = VPP_SCALE_FILTER_DEFAULT;s32Ret = HI_MPI_VPP_SetConf(VeGroup, &stConf);if (HI_SUCCESS != s32Ret){printf("HI_MPI_VPP_SetConf failed 0x%x!\n",s32Ret);return HI_FAILURE;}return HI_SUCCESS;}5-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理【 相 关 主 题 】无 。HI_MPI_VPP_GetConf【 描 述 】获 取 视 频 前 处 理 配 置 。【 语 法 】HI_S32 HI_MPI_VPP_GetConf(VENC_GRP VeGroup,VIDEO_PREPROC_CONF_S *pstConf);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。输 入pstConf 视 频 前 处 理 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_INVALID_CHNID 通 道 组 号 错 误 或 无 效 区 域 句 柄 。HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_vpp.h、mpi_vpp.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-5


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 】• 如 果 不 设 置 视 频 前 处 理 属 性 , 则 返 回 系 统 默 认 的 前 处 理 配 置 , 不 会 返 回 失 败 。• 视 频 前 处 理 的 默 认 配 置 为 : 彩 色 转 灰 色 关 闭 、 时 域 去 噪 打 开 、 滤 波 系 数 为 默 认 系数 、 缩 放 方 式 为 采 用 保 留 底 场 方 式 缩 放 、 编 码 输 入 图 像 的 剪 切 功 能 关 闭 。• 通 道 组 创 建 之 后 , 才 能 调 用 此 接 口 , 否 则 返 回 HI_ERR_VPP_NOT_PERM。【 举 例 】请 参 见 HI_MPI_VPP_SetConf 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VPP_SetDsuFiltParam【 描 述 】设 置 用 户 自 定 义 的 DSU 缩 放 滤 波 参 数 。【 语 法 】HI_S32 HI_MPI_VPP_SetDsuFiltParam(DSU_FILTER_PARAM_S *pstDsuFiltParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstDsuFiltParam DSU 滤 波 参 数 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_ILLEGAL_PARAM 非 法 参 数 。5-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理接 口 返 回 值HI_ERR_VPP_NOTREADY含 义系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块( 指 各 个 MPI 对 应 的 内 核 模 块 )。【 需 求 】• 头 文 件 :hi_comm.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】• 若 用 户 对 编 码 / 预 览 图 像 质 量 有 特 殊 需 求 ,SDK 支 持 用 户 设 置 自 定 义 的 DSU 滤 波参 数 , 以 达 到 实 现 定 制 图 像 质 量 或 解 决 特 定 问 题 。 自 定 义 滤 波 参 数 必 须 符 合Hi3520/Hi3515 芯 片 的 要 求 , 一 般 由 SDK 根 据 特 定 客 户 需 求 专 门 定 制 。 若 用 户 设置 的 滤 波 参 数 不 符 合 规 范 , 会 导 致 图 像 缩 放 异 常 。一 套 完 整 的 滤 波 参 数 包 括 水 平 方 向 和 垂 直 方 向 的 滤 波 参 数 。 其 中 水 平 参 数 共 6组 , 分 别 具 有 不 同 的 滤 波 截 止 频 率 ; 每 组 又 由 132 个 数 (HI_U8) 组 成 , 故 一 套 完整 的 水 平 滤 波 参 数 包 含 6%132=792 个 数 ( 单 位 HI_U8); 垂 直 参 数 共 12 组 , 分 别具 有 不 同 的 滤 波 截 止 频 率 ; 每 组 又 由 40 个 数 (HI_U8) 组 成 , 故 一 套 完 整 的 垂 直滤 波 参 数 包 含 40%12=480 个 数 ( 单 位 HI_U8)。 用 户 设 置 自 定 义 滤 波 类 型 时 , 必 须提 供 完 整 的 一 套 滤 波 参 数 。SDK 共 支 持 5 套 滤 波 参 数 , 不 同 套 的 滤 波 参 数 通 过 pstDsuFiltParam 结 构 的 滤 波 类型 (enFiltType) 指 定 , 其 中 前 3 套 为 内 置 滤 波 类 型 , 后 2 套 为 用 户 自 定 义 类 型 。因 不 同 套 的 滤 波 参 数 特 性 不 同 可 能 导 致 图 像 缩 放 的 滤 波 效 果 不 同 。 除 非 用 户 指 定使 用 “ 自 定 义 滤 波 类 型 ”, 否 则 内 部 自 动 选 择 使 用 某 一 类 型 的 内 置 滤 波 参 数 进 行DSU 缩 放 。• 一 般 情 况 下 , 用 户 不 需 要 设 置 该 接 口 ,SDK 会 自 动 选 择 内 置 的 滤 波 参 数 进 行 DSU缩 放 , 并 满 足 通 用 场 景 。• 使 用 方 法 : 系 统 初 始 化 后 , 若 有 需 要 , 则 用 户 首 先 设 置 自 定 义 滤 波 参 数 ( 通 过 接 口HI_MPI_VPP_SetDsuFiltParam); 然 后 在 预 览 或 编 码 业 务 中 可 通 过 VO 接 口(HI_MPI_VO_GetChnFilter) 或 VPP 接 口 (HI_MPI_VPP_SetConf) 指 定 某 通 道 缩 放 时使 用 用 户 自 定 义 滤 波 系 数 进 行 缩 放 。• 该 接 口 仅 支 持 设 置 用 户 类 型 的 滤 波 参 数 , 即 DSU_FILTER_PARAM_S 的 属 性enFiltType( 其 指 定 滤 波 参 数 的 类 型 ) 应 设 置 为 FILTER_PARAM_TYPE_USER1 或者 FILTER_PARAM_TYPE_USER2, 否 则 返 回 参 数 错 误 。【 相 关 主 题 】无 。HI_MPI_VPP_GetDsuFiltParam【 描 述 】获 取 用 户 自 定 义 的 DSU 滤 波 参 数 。【 语 法 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-7


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_S32 HI_MPI_VPP_GetDsuFiltParam(DSU_FILTER_PARAM_S *pstDsuFiltParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstDsuFiltParam DSU 滤 波 参 数 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VPP_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】• 该 接 口 仅 支 持 获 取 用 户 类 型 的 滤 波 参 数 , 即 DSU_FILTER_PARAM_S 的 属 性enFiltType( 其 指 定 滤 波 参 数 的 类 型 ) 应 设 置 为 FILTER_PARAM_TYPE_USER1 或者 FILTER_PARAM_TYPE_USER2, 否 则 返 回 参 数 错 误 。• 系 统 初 始 化 时 ,SDK 已 经 为 FILTER_PARAM_TYPE_USER1 类 型 内 置 了 一 套 滤 波参 数 , 用 户 可 通 过 获 取 接 口 查 看 该 套 系 数 ; 而 FILTER_PARAM_TYPE_USER2 类型 的 滤 波 参 数 未 指 定 , 需 要 用 户 设 置 后 方 可 使 用 。【 相 关 主 题 】无 。5-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理HI_MPI_VPP_CreateRegion【 描 述 】创 建 VPP 区 域 。【 语 法 】HI_S32 HI_MPI_VPP_CreateRegion(const REGION_ATTR_S *pstRegion,REGION_HANDLE *pHandle);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstRegion 区 域 属 性 。 输 入pHandle 区 域 句 柄 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_INVALID_DEVID 错 误 的 设 备 号 。HI_ERR_VPP_INVALID_CHNID 通 道 组 号 错 误 或 无 效 的 区 域 句 柄 。HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_NOMEM 分 配 内 存 失 败 。HI_ERR_VPP_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VPP_NOT_SUPPORT 不 支 持 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-9


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 头 文 件 :hi_comm_vpp.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】• VPP 区 域 创 建 后 , 默 认 是 隐 藏 的 , 必 须 主 动 调 用 显 示 接 口 才 会 显 示 。• 视 频 遮 挡 区 域 是 在 VI 的 原 始 视 频 图 像 叠 加 的 单 色 填 充 块 , 在 与 此 VI 通 道 绑 定 的编 码 通 道 组 以 及 视 频 输 出 中 都 会 有 相 应 的 视 频 遮 挡 显 示 ; 视 频 遮 挡 的 位 置 和 大 小是 相 对 于 VI 原 始 视 频 图 像 ( 即 未 做 丢 场 和 水 平 压 缩 前 的 输 入 图 像 ) 而 言 。• 视 频 叠 加 区 域 是 视 频 编 码 前 叠 加 在 视 频 上 的 “ 前 端 OSD”, 在 视 频 编 码 码 流 中 显示 , 但 在 视 频 预 览 中 不 会 显 示 ; 视 频 叠 加 区 域 针 对 的 是 整 个 编 码 通 道 组 , 由 于 同一 编 码 通 道 组 中 的 小 码 流 由 大 码 流 缩 放 得 到 , 因 此 小 码 流 中 显 示 的 叠 加 区 域 的 位置 和 大 小 也 是 等 比 例 缩 放 。• VI 视 频 叠 加 区 域 是 在 VI 的 原 始 视 频 图 像 叠 加 的 “ 前 端 OSD”, 由 于 是 叠 加 上 VI的 视 频 数 据 中 , 所 以 在 与 此 VI 通 道 绑 定 的 VO、VENC 等 视 频 流 中 都 会 有 叠 加 区域 显 示 。VI 视 频 叠 加 区 域 的 大 小 和 位 置 是 相 对 于 其 叠 加 的 VI 原 始 视 频 图 像 的 ,因 此 如 果 VI 采 集 大 小 有 变 化 ,VI 视 频 叠 加 区 域 的 大 小 和 位 置 也 需 要 相 应 变 化 。• VI 叠 加 区 域 和 VI 遮 挡 区 域 的 不 同 在 于 :VI 遮 挡 区 域 为 纯 色 块 , 而 VI 叠 加 区 域 可显 示 用 户 指 定 设 置 的 位 图 , 且 可 实 现 透 明 效 果 。• VI 视 频 叠 加 区 域 只 建 议 用 于 PCI 板 卡 等 TDE 性 能 较 充 裕 的 应 用 场 景 , 用 于 其 它场 景 时 可 能 出 现 视 频 丢 帧 甚 至 异 常 现 象 。• 扩 展 视 频 遮 挡 区 域 的 原 理 和 使 用 方 法 与 视 频 遮 挡 区 域 基 本 一 致 , 区 别 在 于 扩 展 视频 遮 挡 区 域 支 持 顶 底 场 分 别 叠 加 遮 挡 块 。• 表 5-1 为 遮 挡 区 域 与 叠 加 区 域 的 对 比 。表 5-1 各 种 VPP 区 域 的 对 比属 性视 频 遮 挡COVER扩 展 视 频 遮 挡COVEREX视 频 叠 加 OVERLAYVI 视 频 叠 加相 对 通 道 VI 通 道 VI 通 道 Group 通 道 VI 通 道区 域起 始 点 坐 标 必须 大 于 等 于0, 高 宽 必 须 大于 0, 最 大 为4095 % 4095。起 始 点 坐 标 必 须 大于 等 于 0, 高 宽 必须 大 于 0, 最 大 为4095 % 4095。 且 起始 点 和 宽 高 必 须 为偶 数 。起 始 点 坐 标 必 须 大 于 等 于0 且 为 偶 数 ,X 坐 标 必 须为 8 的 倍 数 。 高 、 宽 都 必须 为 偶 数 , 以 像 素 为 单位 , 最 大 为 2047 %2047。起 始 点 坐 标 必 须 大 于 等于 0 且 为 偶 数 ; 高 、 宽都 必 须 大 于 16 像 素 的偶 数 。 超 出 VI 源 图 像范 围 的 部 分 将 会 被 剪裁 。公 共 区 域支 持 公 共 区域 , 即 如 果 设置 为 公 共 区域 , 所 有 通 道使 用 其 相 同 属性 。支 持 公 共 区 域 , 即如 果 设 置 为 公 共 区域 , 所 有 通 道 使 用其 相 同 属 性 。支 持 公 共 区 域 , 即 如 果 设置 为 公 共 区 域 , 所 有 通 道使 用 其 相 同 属 性 。不 支 持 公 共 区 域 。数 量 限 制包 括 公 共 区 域在 内 , 每 个 通道 最 多 4 个 。包 括 公 共 区 域 在内 , 每 个 通 道 最 多16 个 。包 括 公 共 区 域 在 内 , 每 个通 道 最 多 4 个 。每 个 通 道 最 多 8 个 。5-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理属 性视 频 遮 挡COVER扩 展 视 频 遮 挡COVEREX视 频 叠 加 OVERLAYVI 视 频 叠 加像 素 格 式不 支 持 设 置 像素 格 式 。不 支 持 设 置 像 素 格式 。即 为 背 景 色 和 填 充 位 图 的像 素 格 式 , 支 持αRGB1555、αRGB4444两 种 格 式 , 同 一 通 道 的 各区 域 像 素 格 式 必 须 一 致 。即 区 域 内 数 据 的 像 素 格式 , 只 支 持 αRGB1555格 式 。 决 定 了 区 域 的 背景 色 和 位 图 数 据 的 像 素格 式 。颜 色视 频 遮 挡 区 域仅 支 持 单 色 填充 。 颜 色 值 采用 RGB888 格式 , 取 值 范 围为0x00000000~0x00FFFFFF,低 24 位 有 效 ,低 8 位 为 R值 , 中 间 8 位为 G 值 , 高 8位 为 B 值 。视 频 遮 挡 区 域 仅 支持 单 色 填 充 。 颜 色值 采 用 RGB888 格式 , 取 值 范 围 为0x00000000~0x00FFFFFF, 低24 位 有 效 , 低 8位 为 R 值 , 中 间 8位 为 G 值 , 高 8 位为 B 值 。对 于 视 频 叠 加 , 即 为 背 景色 。 两 种 格 式 的 取 值 范 围为 0x00000000~0x0000FFFF, 低 16 位 有效 。 对 αRGB1555 格 式 ,最 高 1 位 为 α 位 , 次 高 5位 为 R 值 , 中 间 5 位 为 G值 , 低 5 位 为 B 值 ; 对αRGB4444 格 式 , 最 高 4位 为 α 位 , 次 高 4 位 为 R值 , 中 间 4 位 为 G 值 ,低 4 位 为 B 值 。即 未 被 位 图 数 据 覆 盖 到的 背 景 色 。αRGB1555格 式 时 , 与 OVERLAY的 背 景 色 数 据 格 式 表 示方 式 相 同 。透 明 度不 支 持 设 置 透明 度 。不 支 持 设 置 透 明度 。可 设 置 前 景 透 明 度 和 背 景透 明 度 。 透 明 度 取 值 范 围为 0~128, 值 越 小 表 示越 透 明 。0 表 示 完 全 透明 ,128 表 示 完 全 不 透明 。 单 色 填 充 叠 加 区 域时 , 透 明 度 取 背 景 透 明度 ;αRGB1555 格 式 位 图填 充 时 ,alpha 位 为 1 的点 取 前 景 透 明 度 ,alpha位 为 0 的 点 取 背 景 透 明度 ;αRGB4444 格 式 位 图填 充 时 , 透 明 度 由 位 图 像素 点 的 前 4 位 α 值 决 定 。可 设 置 全 局 透 明 度(GlobalAlpha), 取 值范 围 为 0~255, 值 越小 表 示 越 透 明 ,0 表 示完 全 透 明 ,255 表 示 完全 不 透 明 。αRGB1555格 式 时 支 持Alpha0/Alpha1。 如 果αRGB1555 格 式 Alpha扩 展 功 能 未 开 启 , 区 域内 alpha 位 为 0 的 像 素点 为 完 全 透 明 ,alpha位 为 1 的 像 素 点 则 完 全不 透 明 ; 如 果 扩 展 功 能开 启 ,alpha 位 为 0 和 1的 像 素 点 的 透 明 度 分 别为 配 置 的 指 定 透 明 度 值( 取 值 范 围 同 全 局 透 明度 )。层 次支 持 范 围 为0~100 的 层 次设 置 , 通 道 内层 次 不 同 的 区域 间 可 以 重叠 。支 持 范 围 为 0~100 的 层 次 设 置 ,通 道 内 层 次 不 同 的区 域 间 可 以 重 叠 。不 支 持 设 置 层 次 , 且 通 道内 各 区 域 间 不 能 有 位 置 重叠 。支 持 范 围 为 0~100 的层 次 设 置 , 层 次 值 高 的区 域 将 会 叠 加 在 层 次 值低 的 区 域 上 面 ; 层 次 相同 的 区 域 不 可 以 互 相 重叠 , 但 层 次 不 同 的 区 域可 以 互 相 重 叠 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-11


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考属 性视 频 遮 挡COVER扩 展 视 频 遮 挡COVEREX视 频 叠 加 OVERLAYVI 视 频 叠 加位 图 填 充不 支 持 填 充 位图 。不 支 持 填 充 位 图 。可 填 充 ARGB1555 或 者ARGB4444 格 式 的 位 图 。支 持 位 图 填 充 , 支 持 的位 图 的 像 素 格 式 取 决 于区 域 的 像 素 格 式 ( 目 前只 支 持 αRGB1555 格式 )。【 举 例 】本 举 例 共 有 两 个 用 例 , 一 个 遮 挡 区 域 用 例 , 一 个 叠 加 区 域 用 例 。/*cover region sample*/HI_S32 VppCtrlCoverRegion(HI_VOID){HI_S32 i;HI_S32 s32Ret;HI_S32 s32Cnt = 0;REGION_CTRL_CODE_E enCtrl;REGION_CTRL_PARAM_U unParam;REGION_ATTR_E stRgnAttr;REGION_HANDLE handle[5];stRgnAttr.enType = COVER_REGION;stRgnAttr.unAttr.stCover.bIsPublic = HI_FALSE;stRgnAttr.unAttr.stCover.u32Color = 0;stRgnAttr.unAttr.stCover.u32Layer = 1;stRgnAttr.unAttr.stCover.stRect.s32X = 100;stRgnAttr.unAttr.stCover.stRect.s32Y = 200;stRgnAttr.unAttr.stCover.stRect.u32Height = 50;stRgnAttr.unAttr.stCover.stRect.u32Width = 50;stRgnAttr.unAttr.stCover.ViChn = VICHNID;stRgnAttr.unAttr.stCover.ViDevId = VIDEVID;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[0]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x\n",s32Ret);return HI_FAILURE;}stRgnAttr.enType = COVER_REGION;stRgnAttr.unAttr.stCover.bIsPublic = HI_FALSE;5-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理stRgnAttr.unAttr.stCover.u32Color = 0x0000ff00;stRgnAttr.unAttr.stCover.u32Layer = 2;stRgnAttr.unAttr.stCover.stRect.s32X = 200;stRgnAttr.unAttr.stCover.stRect.s32Y = 200;stRgnAttr.unAttr.stCover.stRect.u32Height = 50;stRgnAttr.unAttr.stCover.stRect.u32Width = 50;stRgnAttr.unAttr.stCover.ViChn = VICHNID;stRgnAttr.unAttr.stCover.ViDevId = VIDEVID;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[1]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x\n",s32Ret);return HI_FAILURE;}/*public cover region*/stRgnAttr.enType = COVER_REGION;stRgnAttr.unAttr.stCover.bIsPublic = HI_TRUE;stRgnAttr.unAttr.stCover.u32Color = 0x00ff0000;stRgnAttr.unAttr.stCover.u32Layer = 3;stRgnAttr.unAttr.stCover.stRect.s32X = 300;stRgnAttr.unAttr.stCover.stRect.s32Y = 200;stRgnAttr.unAttr.stCover.stRect.u32Height = 50;stRgnAttr.unAttr.stCover.stRect.u32Width = 50;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[2]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x\n",s32Ret);return HI_FAILURE;}stRgnAttr.enType = COVER_REGION;stRgnAttr.unAttr.stCover.bIsPublic = HI_FALSE;stRgnAttr.unAttr.stCover.u32Color = 0x00ff;stRgnAttr.unAttr.stCover.u32Layer = 4;stRgnAttr.unAttr.stCover.stRect.s32X = 400;stRgnAttr.unAttr.stCover.stRect.s32Y = 200;stRgnAttr.unAttr.stCover.stRect.u32Height = 50;stRgnAttr.unAttr.stCover.stRect.u32Width = 50;stRgnAttr.unAttr.stCover.ViChn = VICHNID;stRgnAttr.unAttr.stCover.ViDevId = VIDEVID;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-13


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[3]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x\n",s32Ret);return HI_FAILURE;}/*show region*/enCtrl = REGION_SHOW;s32Ret = HI_MPI_VPP_ControlRegion(handle[0],enCtrl,&unParam);if(s32Ret != HI_SUCCESS){printf("show faild 0x%x!!!\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VPP_ControlRegion(handle[1],enCtrl,&unParam);if(s32Ret != HI_SUCCESS){printf("show faild 0x%x!!!\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VPP_ControlRegion(handle[2],enCtrl,&unParam);if(s32Ret != HI_SUCCESS){printf("show faild 0x%x!!!\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VPP_ControlRegion(handle[3],enCtrl,&unParam);if(s32Ret != HI_SUCCESS){printf("show faild 0x%x!!!\n",s32Ret);return HI_FAILURE;}/*ctrl the region*/while(1){sleep(1);s32Cnt++;if(s32Cnt


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理/*change color*/enCtrl = REGION_SET_COLOR;if(0 == s32Cnt % 2){unParam.u32Color = 0;}else{unParam.u32Color = 0xff;}s32Ret = HI_MPI_VPP_ControlRegion(handle[0], enCtrl, &unParam);if(s32Ret != HI_SUCCESS){printf("set region position faild 0x%x!!!\n",s32Ret);return HI_FAILURE;}}else if(s32Cnt


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考if(s32Ret != HI_SUCCESS){printf("set region position faild 0x%x!!!\n",s32Ret);return HI_FAILURE;}}else if(s32Cnt


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理}}return HI_SUCCESS;/*overlay region sample*/HI_S32 VppCtrlOverlayRegion(HI_VOID){HI_S32 i = 0;HI_S32 s32Ret;HI_S32 s32Cnt = 0;char *pFilename;REGION_ATTR_S stRgnAttr;REGION_CRTL_CODE_E enCtrl;REGION_CTRL_PARAM_U unParam;REGION_HANDLE handle[4];stRgnAttr.enType = OVERLAY_REGION;stRgnAttr.unAttr.stOverlay.bPublic = HI_FALSE;stRgnAttr.unAttr.stOverlay.enPixelFmt = PIXEL_FORMAT_RGB_1555;stRgnAttr.unAttr.stOverlay.stRect.s32X= 104;stRgnAttr.unAttr.stOverlay.stRect.s32Y= 100;stRgnAttr.unAttr.stOverlay.stRect.u32Width = 180;stRgnAttr.unAttr.stOverlay.stRect.u32Height = 144;stRgnAttr.unAttr.stOverlay.u32BgAlpha = 128;stRgnAttr.unAttr.stOverlay.u32FgAlpha = 128;stRgnAttr.unAttr.stOverlay.u32BgColor = 0;stRgnAttr.unAttr.stOverlay.VeGroup = 0;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[0]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x!\n",s32Ret);return HI_FAILURE;}stRgnAttr.enType = OVERLAY_REGION;stRgnAttr.unAttr.stOverlay.bPublic = HI_FALSE;stRgnAttr.unAttr.stOverlay.enPixelFmt = PIXEL_FORMAT_RGB_1555;stRgnAttr.unAttr.stOverlay.stRect.s32X= 304;stRgnAttr.unAttr.stOverlay.stRect.s32Y= 100;stRgnAttr.unAttr.stOverlay.stRect.u32Width = 180;stRgnAttr.unAttr.stOverlay.stRect.u32Height = 144;stRgnAttr.unAttr.stOverlay.u32BgAlpha = 128;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-17


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考stRgnAttr.unAttr.stOverlay.u32FgAlpha = 128;stRgnAttr.unAttr.stOverlay.u32BgColor = 0x1f;stRgnAttr.unAttr.stOverlay.VeGroup = 0;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[1]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x!\n",s32Ret);return HI_FAILURE;}stRgnAttr.enType = OVERLAY_REGION;stRgnAttr.unAttr.stOverlay.bPublic = HI_FALSE;stRgnAttr.unAttr.stOverlay.enPixelFmt = PIXEL_FORMAT_RGB_1555;stRgnAttr.unAttr.stOverlay.stRect.s32X= 104;stRgnAttr.unAttr.stOverlay.stRect.s32Y= 300;stRgnAttr.unAttr.stOverlay.stRect.u32Width = 48;stRgnAttr.unAttr.stOverlay.stRect.u32Height = 48;stRgnAttr.unAttr.stOverlay.u32BgAlpha = 70;stRgnAttr.unAttr.stOverlay.u32FgAlpha = 70;stRgnAttr.unAttr.stOverlay.u32BgColor = 0x3e0;stRgnAttr.unAttr.stOverlay.VeGroup = 0;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[2]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x!\n",s32Ret);return HI_FAILURE;}/*public overlay region*/stRgnAttr.enType = OVERLAY_REGION;stRgnAttr.unAttr.stOverlay.bPublic = HI_TRUE;stRgnAttr.unAttr.stOverlay.enPixelFmt = PIXEL_FORMAT_RGB_1555;stRgnAttr.unAttr.stOverlay.stRect.s32X= 304;stRgnAttr.unAttr.stOverlay.stRect.s32Y= 300;stRgnAttr.unAttr.stOverlay.stRect.u32Width = 48;stRgnAttr.unAttr.stOverlay.stRect.u32Height = 48;stRgnAttr.unAttr.stOverlay.u32BgAlpha = 30;stRgnAttr.unAttr.stOverlay.u32FgAlpha = 30;stRgnAttr.unAttr.stOverlay.u32BgColor = 0x7c00;s32Ret = HI_MPI_VPP_CreateRegion(&stRgnAttr, &handle[3]);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateRegion err 0x%x!\n",s32Ret);5-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理}return HI_FAILURE;/*show all region*/enCtrl = REGION_SHOW;for(i=0; i


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}free(unParam.stBitmap.pData);unParam.stBitmap.pData = NULL;}else if(s32Cnt


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理}}else if(s32Cnt


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】无 。HI_MPI_VPP_DestroyRegion【 描 述 】销 毁 VPP 区 域 。【 语 法 】HI_S32 HI_MPI_VPP_DestroyRegion(REGION_HANDLE Handle);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Handle 区 域 句 柄 。取 值 范 围 : 创 建 区 域 时 返 回 的 有 效 句 柄 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_INVALID_CHNID 通 道 组 号 错 误 或 无 效 区 域 句 柄 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_UNEXIST 区 域 不 存 在 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_vpp.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】5-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理无 。【 举 例 】请 参 见 HI_MPI_VPP_CreateRegion 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VPP_ControlRegion【 描 述 】控 制 VPP 区 域 。【 语 法 】HI_S32 HI_MPI_VPP_ControlRegion(REGION_HANDLE Handle,REGION_CTRL_CODE_E enCtrl, REGION_CTRL_PARAM_U *punParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出Handle 区 域 句 柄 。取 值 范 围 : 创 建 区 域 时 返 回 的 有 效 句 柄 。输 入enCtrl 控 制 命 令 。 输 入punParam 控 制 参 数 指 针 。 输 入 / 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_INVALID_CHNID 通 道 组 号 错 误 或 无 效 区 域 句 柄 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_NOT_SUPPORT 不 支 持 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-23


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VPP_UNEXIST 区 域 不 存 在 。HI_ERR_VPP_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VPP_NOT_PERM 操 作 不 允 许 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_vpp.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】• 对 于 遮 挡 区 域 , 可 进 行 的 控 制 包 括 显 示 隐 藏 区 域 、 设 置 位 置 、 设 置 尺 寸 、 设 置 层次 、 设 置 颜 色 、 获 取 该 区 域 的 属 性 , 其 他 操 作 不 允 许 。• 对 于 叠 加 区 域 , 可 进 行 的 控 制 包 括 显 示 隐 藏 区 域 、 设 置 位 置 、 设 置 透 明 度 、 设 置颜 色 、 设 置 填 充 位 图 、 获 取 该 区 域 的 属 性 , 其 他 操 作 不 允 许 。• 对 于 VI 叠 加 区 域 , 可 进 行 的 控 制 包 括 显 示 隐 藏 区 域 、 设 置 位 置 、 设 置 透 明 度 、 设置 层 次 、 设 置 颜 色 、 设 置 填 充 位 图 、 获 取 该 区 域 的 属 性 , 其 他 操 作 不 允 许 。• 叠 加 区 域 填 充 位 图 时 , 位 图 的 格 式 在 创 建 区 域 时 就 已 经 确 定 , 若 位 图 的 格 式 为αRGB1555, 其 中 alpha 位 为 0 时 , 表 示 该 像 素 使 用 背 景 透 明 度 ;alpha 为 1 时 , 表示 该 像 素 使 用 前 景 透 明 度 。 若 位 图 格 式 为 αRGB4444, 则 高 4 位 表 示 该 像 素 的 透明 度 。• 改 变 叠 加 区 域 的 位 图 时 , 区 域 原 有 位 图 或 背 景 色 会 被 新 的 位 图 覆 盖 。 若 位 图 大 于区 域 大 小 时 , 会 根 据 创 建 区 域 时 的 大 小 按 照 由 左 到 右 、 由 上 到 下 进 行 裁 减 。• 获 取 所 有 区 域 属 性 的 时 候 , 参 数 Handle 将 被 忽 略 , 并 通 过 punParam 返 回 所 有 区域 的 属 性 。Hi3520 暂 不 支 持 获 取 所 有 区 域 属 性 。• 对 于 不 同 的 控 制 , 参 数 的 输 入 或 输 出 类 型 也 是 不 同 的 。 在 获 取 单 个 区 域 属 性 和 所有 区 域 属 性 时 ,punParam 是 输 出 参 数 ; 在 其 他 的 控 制 操 作 时 都 是 输 入 参 数 。 具 体的 参 数 类 型 对 应 关 系 , 请 参 见 REGION_CTRL_PARAM_U。【 举 例 】请 参 见 HI_MPI_VPP_CreateRegion 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VPP_CreateScaleTask【 描 述 】创 建 一 个 图 像 缩 放 任 务 。5-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理【 语 法 】HI_S32 HI_MPI_VPP_CreateScaleTask(PIC_SCALE_TASK_S *pstTask,VPP_SCALE_CONF_S *pstConf);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstTask 缩 放 任 务 指 针 。 输 入pstConf 缩 放 开 关 和 系 数 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VPP_NOBUF 无 缩 放 任 务 缓 存 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_vpp.h、mpi_vpp.h• 库 文 件 :libmpi.a【 注 意 】• 可 以 进 行 8 倍 以 内 的 任 意 比 例 的 缩 小 和 放 大 。• 原 始 图 像 和 目 标 图 像 的 格 式 支 持 semi-planar YUV422 和 semi-planar YUV420 两种 , 原 始 图 像 和 目 标 图 像 的 格 式 可 以 不 同 。• 无 论 缩 小 或 放 大 , 原 始 图 像 和 目 标 图 像 的 最 大 宽 高 均 为 4096 像 素 。• 原 始 图 像 与 目 标 图 像 帧 场 格 式 应 相 同 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-25


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• Hi3520/Hi3515 暂 不 支 持 该 接 口 。【 举 例 】#include #include #include #include #include #include #include #include #include #include #include #include #include "hi_common.h"#include "hi_comm_vpp.h"#include "mpi_vpp.h"#include "mpi_vb.h"#include "hi_comm_vi.h"#include "mpi_vi.h"HI_S32 VPP_MST_007_001(HI_VOID){HI_S32 s32Ret;HI_U32 u32TaskId= 0;VIDEO_FRAME_INFO_S stFrame;VIDEO_FRAME_S stVideoOut;PIC_SCALE_TASK_S stTask;VPP_SCALE_CONF_S stConf;HI_U32 u32BlockFlag = HI_IO_BLOCK;HI_U32 u32Timeout = 0;VB_POOL VbPool;VB_BLK VbBlk;HI_U32 u32Addr;/*create the scale task ,must be notice how to use the VB*/VbPool = HI_MPI_VB_CreatePool(384*288*2, 1);if (VB_INVALID_POOLID == VbPool){printf("HI_MPI_VB_CreatePool err!");return HI_FAILURE;5-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理}/* get blk from a pool */VbBlk = HI_MPI_VB_GetBlock(VbPool, 0);if (VB_INVALID_HANDLE == VbBlk){printf("HI_MPI_VB_GetBlock err!");HI_MPI_VB_DestroyPool(VbPool);return HI_FAILURE;}/* blk handle to physaddr */u32Addr = HI_MPI_VB_Handle2PhysAddr(VbBlk);if (0 == u32Addr){printf("HI_MPI_VB_Handle2PhysAddr err!");HI_MPI_VB_DestroyPool(VbPool);return HI_FAILURE;}stVideoOut.enPixelFormat = PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_422;stVideoOut.u32Width = 352;stVideoOut.u32Height = 288;stVideoOut.u32Field = VIDEO_FIELD_FRAME;/*light physics addr and stride*/stVideoOut.u32PhyAddr[0] = u32Addr;stVideoOut.u32Stride[0] = 384;/*chroma physics addr and stride*/stVideoOut.u32PhyAddr[1] = u32Addr + 384*288;stVideoOut.u32Stride[1] = 384;stTask.stDesPic.stVFrame = stVideoOut;stTask.stDesPic.u32PoolId = VbPool;do{/*get D1 frame from VI*/if(HI_MPI_VI_GetFrame(0, 0, &stFrame) < 0){printf("HI_MPI_VI_GetFrame err!\n");break;}文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-27


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考memcpy(&stTask.stSrcPic,&stFrame,sizeof(VIDEO_FRAME_INFO_S));stTask.u32TaskId = u32TaskId;stTask.stDesPic.stVFrame.u32Field = stFrame.stVFrame.u32Field;stConf.bColorToGrey = HI_FALSE;stConf.bDeInterlace = HI_FALSE;stConf.bTemporalDenoise = HI_FALSE;stConf.enChoice = VPP_SCALE;stConf.enCE = VPP_CE_DISABLE;stConf.enLumaStr = VPP_LUMA_STR_DISABLE;stConf.enFilter = VPP_SCALE_FILTER_DEFAULT;stConf.enSpatialDenoise = VPP_DENOISE_ONLYEDAGE;s32Ret = HI_MPI_VPP_CreateScaleTask(&stTask,&stConf);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_CreateScaleTask err 0x%x!\n",s32Ret);break;}s32Ret = HI_MPI_VPP_WaitScaleTask(&stTask, u32BlockFlag,u32Timeout);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VPP_WaitScaleTask err 0x%x!\n",s32Ret);break;}u32TaskId ++;printf("task id is %d\n",stTask.u32TaskId);}while(u32TaskId < 0xff);s32Ret = HI_MPI_VB_ReleaseBlock(VbBlk);if(s32Ret != HI_SUCCESS){printf("HI_MPI_VB_ReleaseBlock err 0x%x!\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VB_DestroyPool(VbPool);if(s32Ret != HI_SUCCESS)5-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理{}printf("HI_MPI_VB_DestroyPool err 0x%x!\n",s32Ret);return HI_FAILURE;}return HI_SUCCESS;【 相 关 主 题 】无 。HI_MPI_VPP_WaitScaleTask【 描 述 】等 待 一 个 图 像 缩 放 任 务 完 成 。【 语 法 】HI_S32 HI_MPI_VPP_WaitScaleTask(PIC_SCALE_TASK_S *pstTask, HI_U32u32BlockFlag, HI_U32 u32Timeout);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstTask 缩 放 任 务 结 构 指 针 。 输 出u32BlockFlag 阻 塞 标 志 。取 值 范 围 :• HI_IO_BLOCK: 阻 塞 。• HI_IO_NOBLOCK: 非 阻 塞 。输 入u32Timeout 等 待 时 间 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-29


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VPP_NULL_PTR 空 指 针 。HI_ERR_VPP_BUSY 系 统 忙 。HI_ERR_VPP_BUF_EMPTY 无 缩 放 任 务 完 成 。HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 阻 塞 情 况 下 , 等 待 缩 放 任 务 完 成 还 需 输 入 等 待 的 时 间 , 单 位 为 ms,0 表 示 无 限 期等 待 。• 如 果 连 续 创 建 多 个 任 务 , 则 需 要 多 次 调 用 等 待 接 口 , 每 次 返 回 一 个 完 成 的 任 务 。• Hi3520/Hi3515 暂 不 支 持 该 接 口 。【 举 例 】请 参 见 HI_MPI_VPP_CreateScaleTask 的 举 例 。【 相 关 主 题 】无 。5.4 数 据 类 型视 频 前 处 理 相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• MAX_COVER_NUM: 定 义 同 一 个 VI 通 道 的 最 大 遮 挡 区 域 的 个 数 。• MAX_OVERLAY_NUM: 定 义 同 一 个 GROUP 通 道 组 的 最 大 叠 加 区 域 的 个 数 。• MAX_VIOVERLAY_NUM: 定 义 同 一 个 VI 通 道 的 最 大 VI 视 频 叠 加 区 域 的 个 数 。• MAX_COVEREX_REGION_NUM: 定 义 同 一 个 VI 通 道 的 最 大 扩 展 遮 挡 区 域 的 个数 。• VI_COVER_REGION: 定 义 所 有 的 遮 挡 区 域 的 个 数 最 大 值 。• VENC_OVERLAY_REGION: 定 义 所 有 的 叠 加 区 域 的 个 数 最 大 值 。• VPP_CL<strong>IP</strong>ATTR_NUM: 定 义 剪 裁 属 性 个 数 。• VPP_SCALE_DENOISE_CHOICE_E: 定 义 缩 放 去 噪 选 择 。• DSU_HSCALE_FILTER_E: 定 义 水 平 缩 放 系 数 。• DSU_VSCALE_FILTER_E: 定 义 垂 直 缩 放 系 数 。• VPP_CL<strong>IP</strong>_ATTR_S: 定 义 图 像 剪 裁 属 性 。5-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理MAX_COVER_NUM• DSU_HFILTER_PARAM_NUM:DSU 水 平 滤 波 参 数 个 数 。• DSU_VFILTER_PARAM_NUM:DSU 垂 直 滤 波 参 数 个 数 。• DSU_HSCALE_FILTER_E:DSU 滤 波 参 数 类 型 。• VPP_DENOISE_E: 定 义 去 噪 系 数 。• VPP_CE_E: 定 义 色 彩 增 强 开 关 。• VPP_LUMA_STR_E: 定 义 对 比 度 拉 伸 开 关 。• VPP_SCALE_MODE_E: 定 义 缩 放 方 式 。• DSU_FILTER_PARAM_S: 用 户 自 定 义 DSU 滤 波 参 数 属 性 。• VIDEO_PREPROC_CONF_S: 定 义 视 频 前 处 理 配 置 的 数 据 结 构 体 。• VPP_SCALE_CONF_S: 定 义 视 频 缩 放 任 务 配 置 的 数 据 结 构 体 。• REGION_HANDLE: 定 义 区 域 句 柄 。• REGION_TYPE_E: 定 义 区 域 类 型 。• COVER_ATTR_S: 定 义 遮 挡 区 域 属 性 结 构 体 。• OVERLAY_ATTR_S: 定 义 叠 加 区 域 属 性 结 构 体 。• VI_OVERLAY_ATTR_S: 定 义 VI 叠 加 区 域 属 性 结 构 体 。• COVEREX_ATTR_S: 定 义 扩 展 遮 挡 区 域 属 性 结 构 体 。• REGION_ATTR_U: 定 义 区 域 属 性 联 合 体 。• REGION_ATTR_S: 定 义 区 域 类 型 结 构 体 。• REGION_CTRL_CODE_E: 定 义 区 域 操 作 命 令 。• COVER_S: 定 义 所 有 遮 挡 区 域 结 构 体 。• OVERLAY_S: 定 义 所 有 叠 加 区 域 结 构 体 。• COVEREX_S: 定 义 所 有 扩 展 遮 挡 区 域 结 构 体 。• REGION_CTRL_PARAM_U: 定 义 控 制 区 域 参 数 。• PIC_SCALE_TASK_S: 定 义 缩 放 任 务 结 构 体 。【 说 明 】定 义 同 一 个 VI 通 道 的 最 大 遮 挡 区 域 的 个 数 。【 定 义 】#define MAX_COVER_NUM 4【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-31


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考MAX_OVERLAY_NUMMAX_VIOVERLAY_NUM【 说 明 】定 义 同 一 个 GROUP 通 道 组 的 最 大 叠 加 区 域 的 个 数 。【 定 义 】#define MAX_OVERLAY_NUM 4;【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 同 一 个 VI 通 道 的 最 大 VI 视 频 叠 加 区 域 的 个 数 。【 定 义 】#define MAX_VIOVERLAY_NUM 8;【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。MAX_COVEREX_REGION_NUM【 说 明 】定 义 同 一 个 VI 通 道 的 最 大 扩 展 遮 挡 区 域 的 个 数 。【 定 义 】#define MAX_COVEREX_REGION_NUM 16【 成 员 】无 。【 注 意 事 项 】5-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理VI_COVER_REGION无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 所 有 的 遮 挡 区 域 的 个 数 最 大 值 。【 定 义 】#define VI_COVER_REGION (VIU_MAX_DEV_NUM * VIU_MAX_CHN_NUM_PER_DEV*MAX_COVER_NUM);【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】MAX_COVER_NUMVENC_OVERLAY_REGIONVPP_CL<strong>IP</strong>ATTR_NUM【 说 明 】定 义 所 有 的 叠 加 区 域 的 个 数 最 大 值 。【 定 义 】#define VENC_OVERLAY_REGION (VENC_MAX_CHN_NUM*MAX_OVERLAY_NUM);【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】MAX_OVERLAY_NUM【 说 明 】定 义 剪 裁 属 性 的 个 数【 定 义 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-33


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考#define VPP_CL<strong>IP</strong>ATTR_NUM 2【 成 员 】无 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VIDEO_PREPROC_CONF_S• VPP_CL<strong>IP</strong>_ATTR_SVPP_SCALE_DENOISE_CHOICE_E【 说 明 】定 义 缩 放 去 噪 选 择 。【 定 义 】typedef enum hiVPP_SCALE_DENOISE_CHOICE_E{VPP_SCALE,VPP_DENOISE,VPP_BUTT,}VPP_SCALE_DENOISE_CHOICE_E;【 成 员 】成 员 名 称描 述VPP_SCALE 缩 放 。VPP_DENOISE 空 域 去 噪 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VPP_SCALE_CONF_SDSU_HSCALE_FILTER_E【 说 明 】定 义 水 平 缩 放 系 数 。【 定 义 】5-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理typedef enum hiDSU_HSCALE_FILTER_E{DSU_HSCALE_FILTER_DEFAULT = 0,DSU_HSCALE_FILTER_C_65M,DSU_HSCALE_FILTER_CG_56M,DSU_HSCALE_FILTER_LC_45M,DSU_HSCALE_FILTER_CG_3M,DSU_HSCALE_FILTER_CG_2M,DSU_HSCALE_FILTER_CG_1M,DSU_HSCALE_FILTER_BUTT}DSU_HSCALE_FILTER_E;【 成 员 】成 员 名 称描 述DSU_HSCALE_FILTER_DEFAULT 默 认 缩 放 系 数 模 式 。VPP_HSCALE_FILTER_n M缩 放 系 数 。nM 数 值 越 小 , 滤 波 后 的 图 像越 模 糊 。【 注 意 事 项 】系 统 默 认 采 用 DSU_HSCALE_FILTER_DEFAULT, 即 内 部 自 动 选 择 最 优 滤 波 系 数 。 一般 不 需 要 使 用 者 配 置 滤 波 系 数 。【 相 关 数 据 类 型 及 接 口 】• VIDEO_PREPROC_CONF_S• VPP_SCALE_CONF_SDSU_VSCALE_FILTER_E【 说 明 】定 义 垂 直 缩 放 系 数 。【 定 义 】typedef enum hiDSU_VSCALE_FILTER_E{DSU_VSCALE_FILTER_DEFAULT = 0,DSU_VSCALE_FILTER_S_6M,DSU_VSCALE_FILTER_S_5M,DSU_VSCALE_FILTER_S_4M,DSU_VSCALE_FILTER_S_38M,DSU_VSCALE_FILTER_S_37M,DSU_VSCALE_FILTER_S_36M,DSU_VSCALE_FILTER_S_25M,文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-35


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考DSU_VSCALE_FILTER_S_2M,DSU_VSCALE_FILTER_S_15M,DSU_VSCALE_FILTER_S_12M,DSU_VSCALE_FILTER_S_11M,DSU_VSCALE_FILTER_S_1M,DSU_VSCALE_FILTER_BUTT}DSU_VSCALE_FILTER_E;【 成 员 】成 员 名 称描 述DSU_VSCALE_FILTER_DEFAULT 默 认 缩 放 系 数 模 式 。VPP_VSCALE_FILTER_n M缩 放 系 数 。nM 数 值 越 小 , 滤 波 后 的 图 像越 模 糊 。【 注 意 事 项 】VPP_CL<strong>IP</strong>_ATTR_S系 统 默 认 采 用 DSU_VSCALE_FILTER_DEFAULT, 即 内 部 自 动 选 择 最 优 滤 波 系 数 。 一般 不 需 要 使 用 者 配 置 滤 波 系 数 。【 相 关 数 据 类 型 及 接 口 】• VIDEO_PREPROC_CONF_S• VPP_SCALE_CONF_S【 说 明 】图 像 裁 减 属 性 。【 定 义 】typedef struct hiVPP_CL<strong>IP</strong>_ATTR_S{HI_U32 u32SrcWidth;HI_U32 u32SrcHeight;HI_U32 u32ClipMode;RECT_S stClipRect;} VPP_CL<strong>IP</strong>_ATTR_S;【 成 员 】成 员 名 称描 述u32SrcWidth 拟 剪 裁 的 原 始 图 像 宽 度 。5-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理成 员 名 称描 述u32SrcHeight 拟 剪 裁 的 原 始 图 像 高 度 。u32ClipMode 剪 裁 模 式 。取 值 范 围 :[1, 4]。1: 针 对 顶 场 进 行 剪 裁 。2: 针 对 底 场 进 行 剪 裁 。3: 针 对 两 场 进 行 剪 裁 。4: 针 对 整 帧 进 行 剪 裁 。stClipRect 剪 裁 区 域 设 置 。【 注 意 事 项 】• u32SrcWidth、u32Srcheight 用 于 锁 定 要 剪 裁 的 图 像 , 只 有 高 宽 均 匹 配 的 输 入 图 像才 会 被 剪 裁 。• 剪 裁 区 域 的 起 始 横 坐 标 必 须 是 8 的 整 数 倍 。【 相 关 数 据 类 型 及 接 口 】• VIDEO_PREPROC_CONF_S• RECT_S• VIDEO_FRAME_S• HI_MPI_VPP_SetConfDSU_HFILTER_PARAM_NUM【 说 明 】DSU 水 平 滤 波 参 数 个 数 。【 定 义 】#define DSU_HFILTER_PARAM_NUM 792【 成 员 】无 。【 注 意 事 项 】一 套 完 整 的 滤 波 参 数 包 含 水 平 和 垂 直 2 个 方 向 的 滤 波 参 数 。 其 中 水 平 参 数 共 6 组 , 分别 具 有 不 同 的 滤 波 截 止 频 率 ; 每 组 又 由 132 个 数 (HI_U8) 组 成 , 故 一 套 完 整 的 水 平 滤波 参 数 包 含 6%132=792 个 数 ( 单 位 HI_U8)。【 相 关 数 据 类 型 及 接 口 】• DSU_HFILTER_PARAM_NUM• DSU_FILTER_PARAM_S文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-37


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考DSU_VFILTER_PARAM_NUM【 说 明 】DSU 垂 直 滤 波 参 数 个 数 。【 定 义 】#define DSU_VFILTER_PARAM_NUM 480【 成 员 】一 套 完 整 的 滤 波 参 数 包 含 水 平 和 垂 直 2 个 方 向 的 滤 波 参 数 。 其 中 垂 直 参 数 共 12 组 , 分别 具 有 不 同 的 滤 波 截 止 频 率 ; 每 组 又 由 40 个 数 (HI_U8) 组 成 , 故 一 套 完 整 的 垂 直 滤波 参 数 包 含 40%12=480 个 数 ( 单 位 HI_U8)。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】DSU_HSCALE_FILTER_E• DSU_HFILTER_PARAM_NUM• DSU_FILTER_PARAM_S【 说 明 】DSU 滤 波 参 数 类 型 。【 定 义 】typedef enum hiDSU_FILTER_PARAM_TYPE{FILTER_PARAM_TYPE_NORM = 0,FILTER_PARAM_TYPE_EX,FILTER_PARAM_TYPE_EX2,FILTER_PARAM_TYPE_USER1,FILTER_PARAM_TYPE_USER2,FILTER_PARAM_TYPE_BUTT}DSU_FILTER_PARAM_TYPE;【 成 员 】成 员 名 称FILTER_PARAM_TYPE_NORM描 述通 用 滤 波 系 数 类 型FILTER_PARAM_TYPE_EX 扩 展 的 滤 波 系 数 类 型 1FILTER_PARAM_TYPE_EX2 扩 展 的 滤 波 系 数 类 型 2FILTER_PARAM_TYPE_USER1 用 户 自 定 义 滤 波 系 数 15-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理成 员 名 称描 述FILTER_PARAM_TYPE_USER2 用 户 自 定 义 滤 波 系 数 2VPP_DENOISE_E【 注 意 事 项 】• 一 套 完 整 的 滤 波 参 数 包 括 水 平 方 向 和 垂 直 方 向 的 滤 波 参 数 ,DSU 缩 放 时 需 要 被 指定 使 用 哪 一 套 滤 波 参 数 进 行 滤 波 。 一 种 滤 波 参 数 类 型 即 对 应 一 套 完 整 的 滤 波 参数 。• 一 般 情 况 , 若 用 户 不 特 别 指 定 使 用 “ 用 户 自 定 义 滤 波 系 数 类 型 ”( 即FILTER_PARAM_TYPE_USER1 或 FILTER_PARAM_TYPE_USER2), 则 SDK 内部 自 动 选 择 一 套 滤 波 系 数 进 行 滤 波 。 若 用 户 有 特 定 需 求 , 则 可 指 定 使 用FILTER_PARAM_TYPE_USERX 类 型 滤 波 类 型 。【 相 关 数 据 类 型 及 接 口 】DSU_FILTER_PARAM_S【 说 明 】定 义 去 噪 系 数 。【 定 义 】typedef enum hiVPP_DENOISE_E{VPP_DENOISE_ONLYEDAGE = 0,VPP_DENOISE_LOWNOISE,VPP_DENOISE_MIDNOISE,VPP_DENOISE_HIGHNOISE,VPP_DENOISE_VERYHIGHNOISE,VPP_DENOISE_BUTT,}VPP_DENOISE_E;【 成 员 】成 员 名 称描 述VPP_DENOISE_ONLYEDAGE 边 缘 去 噪 。VPP_DENOISE_LOWNOISE 低 去 噪 。VPP_DENOISE_MIDNOISE 中 去 噪 。VPP_DENOISE_HIGHNOISE 高 去 噪 。VPP_DENOISE_VERYHIGHNOISE 极 高 去 噪 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-39


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。VPP_CE_E【 说 明 】定 义 色 彩 增 强 开 关 。【 定 义 】typedef enum hiVPP_CE_E{VPP_CE_DISABLE = 0,VPP_CE_ENABLE,VPP_CE_BUTT,}VPP_CE_E;【 成 员 】成 员 名 称描 述VPP_CE_DISABLE 色 彩 增 强 关 。VPP_CE_ENABLE 色 彩 增 强 开 。VPP_LUMA_STR_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VPP_SCALE_CONF_S【 说 明 】定 义 对 比 度 拉 伸 开 关 。【 定 义 】typedef enum hiVPP_LUMA_STR_E{VPP_LUMA_STR_DISABLE = 0,VPP_LUMA_STR_ENABLE,VPP_LUMA_STR_BUTT,}VPP_LUMA_STR_E;5-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理【 成 员 】成 员 名 称描 述VPP_LUMA_STR_DISABLE 对 比 度 拉 伸 关 。VPP_LUMA_STR_ENABLE 对 比 度 拉 伸 开 。VPP_SCALE_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VIDEO_PREPROC_CONF_S• VPP_SCALE_CONF_S【 说 明 】定 义 缩 放 方 式 。【 定 义 】typedef enum hiVPP_SCALE_MODE_E{VPP_SCALE_MODE_USEBOTTOM = 0, /*use bottom scale*/VPP_SCALE_MODE_USETOP,/*use top scale*/VPP_SCALE_MODE_DIRECT,/*scale directlly*/VPP_SCALE_MODE_BUTT,}VPP_SCALE_MODE_E;【 成 员 】成 员 名 称描 述VPP_SCALE_MODE_USETOP 取 顶 场 缩 放 。VPP_SCALE_MODE_USEBOTTOM 取 底 场 缩 放 。VPP_SCALE_MODE_DIRECT 直 接 缩 放 。【 注 意 事 项 】• 丢 场 缩 放 可 以 有 效 的 提 高 系 统 性 能 , 当 不 满 足 丢 场 缩 放 时 , 必 须 进 行 直 接 缩 放 。类 似 这 种 问 题 可 以 推 广 到 各 种 不 同 的 场 景 , 比 如 VI 输 入 D1 或 编 码 QVGA 之 类 大小 不 严 格 满 足 1/2 和 1/4 的 情 形 。• 缩 放 方 式 只 对 大 码 流 (JPEG 抓 拍 和 MPEG4) 有 效 , 小 码 流 无 效 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-41


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 如 果 输 入 图 像 和 编 码 图 像 的 高 度 比 大 于 1/2 则 自 动 使 用 SCALE_MODE_DIRECT方 式 , 其 他 设 置 无 效 。【 相 关 数 据 类 型 及 接 口 】DSU_FILTER_PARAM_SVIDEO_PREPROC_CONF_S【 说 明 】用 户 自 定 义 DSU 滤 波 参 数 属 性 。【 定 义 】typedef struct hiDSU_FILTER_PARAM_S{DSU_FILTER_PARAM_TYPE enFiltType;HI_U8 au8HParamTable[DSU_HFILTER_PARAM_NUM];HI_U8 au8VParamTable[DSU_VFILTER_PARAM_NUM];}DSU_FILTER_PARAM_S;【 成 员 】成 员 名 称描 述enFiltType 滤 波 参 数 类 型 。au8HParamTable 水 平 滤 波 参 数 数 组 。au8VParamTable 垂 直 滤 波 参 数 数 组 。【 注 意 事 项 】一 种 类 型 (enFiltType) 的 滤 波 参 数 饱 含 水 平 滤 波 参 数 DSU_HFILTER_PARAM_NUM个 , 垂 直 滤 波 参 数 DSU_VFILTER_PARAM_NUM 个 。SDK 共 支 持 5 套 滤 波 参 数 , 通过 用 户 指 定 或 内 部 自 动 选 择 使 用 某 一 套 滤 波 参 数 进 行 DSU 缩 放 , 不 同 套 的 滤 波 参 数 特性 不 同 可 能 导 致 图 像 缩 放 的 滤 波 效 果 不 同 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VPP_SetDsuFiltParam• HI_MPI_VPP_GetDsuFiltParamVIDEO_PREPROC_CONF_S【 说 明 】定 义 视 频 前 处 理 配 置 的 数 据 结 构 体 。【 定 义 】typedef struct hiVIDEO_PREPROC_CONF_S5-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理{HI_BOOLbTemporalDenoise;HI_BOOLbColorToGrey;HI_S32 s32SrcFrmRate;HI_S32 s32TarFrmRate;VPP_SCALE_MODE_E enScaleMode;DSU_FILTER_PARAM_TYPE enFilterType;DSU_HSCALE_FILTER_E enHFilter;DSU_VSCALE_FILTER_E enVFilterL;DSU_VSCALE_FILTER_E enVFilterC;VPP_CL<strong>IP</strong>_ATTR_S stClipAttr[VPP_CL<strong>IP</strong>ATTR_NUM];}VIDEO_PREPROC_CONF_S;【 成 员 】成 员 名 称描 述bTemporalDenoise 时 域 去 噪 开 关 。取 值 范 围 :• HI_TRUE: 开 启 时 域 去 噪 。• HI_FALSE: 关 闭 时 域 去 噪 。bColorToGrey 彩 转 灰 开 关 。取 值 范 围 :• HI_TRUE: 打 开 彩 转 灰 。• HI_FALSE: 关 闭 彩 转 灰 。s32SrcFrmRate Group 的 原 始 帧 率 , 与 VI 采 集 的 帧 率 相 等 。s32TarFrmRate Group 的 目 标 帧 率 。enScaleMode 缩 放 方 式 。enFilterType 缩 放 滤 波 参 数 类 型 。enHFilter 水 平 缩 放 系 数 。enVFilterL 亮 度 分 量 垂 直 方 向 的 缩 放 系 数 。enVFilterC 色 度 分 量 垂 直 方 向 的 缩 放 系 数 。stClipAttr 图 像 裁 剪 属 性 。【 注 意 事 项 】• 提 供 了 两 组 vpp 剪 裁 属 性 设 置 。 当 一 个 通 道 组 的 输 入 图 像 尺 寸 变 化 时 , 可 对 它 们设 置 不 同 的 剪 裁 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-43


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VPP_SCALE_CONF_S• 对 剪 裁 后 的 图 像 进 行 编 码 , 因 此 , 通 道 组 的 编 码 图 像 大 小 , 应 设 置 为 剪 裁 后 的 图像 大 小 。• 滤 波 类 型 (enFilterType) 和 滤 波 系 数 (enHFilter/ enVFilterL/ enVFilterC) 的 关系 : 一 种 滤 波 类 型 即 对 应 一 套 滤 波 参 数 ,SDK 有 多 套 滤 波 参 数 供 选 择 , 每 一 套 滤波 参 数 都 包 含 水 平 6 组 和 垂 直 12 组 滤 波 参 数 , 各 组 的 滤 波 参 数 主 要 是 滤 波 截 止 频率 不 一 致 。 用 户 需 指 定 使 用 哪 一 类 型 的 滤 波 参 数 (enFilterType), 及 其 下 的 哪 一 组水 平 滤 波 系 数 和 哪 一 组 垂 直 滤 波 系 数 (enHFilter/ enVFilterL/ enVFilterC)。【 相 关 数 据 类 型 及 接 口 】• VPP_SCALE_MODE_E• VPP_CL<strong>IP</strong>_ATTR_S• VPP_CL<strong>IP</strong>ATTR_NUM• HI_MPI_VPP_SetConf【 说 明 】定 义 视 频 缩 放 任 务 配 置 的 数 据 结 构 体 。【 定 义 】typedef struct hiVPP_SCALE_CONF_S{HI_BOOLbTemporalDenoise;HI_BOOLbDeInterlace;HI_BOOLbColorToGrey;VPP_SCALE_DENOISE_CHOICE_E enChoice;VPP_CE_EenCE;VPP_LUMA_STR_EenLumaStr;DSU_HSCALE_FILTER_E enHFilter;DSU_VSCALE_FILTER_E enVFilterL;DSU_VSCALE_FILTER_E enVFilterC;VPP_DENOISE_E}VPP_SCALE_CONF_S;【 成 员 】enSpatialDenoise;成 员 名 称描 述bTemporalDenoise 时 域 去 噪 开 关 。取 值 范 围 :• HI_TRUE: 打 开 时 域 去 噪 。• HI_FALSE: 关 闭 时 域 去 噪 。5-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理成 员 名 称描 述bDeInterlace DeInterlace 开 关 。取 值 范 围 :• HI_TRUE: 打 开 Deinterlace。• HI_FALSE: 关 闭 Deinterlace。bColorToGrey 彩 转 灰 开 关 。取 值 范 围 :• HI_TRUE: 打 开 彩 转 灰 。• HI_FALSE: 关 闭 彩 转 灰 。enChoice 缩 放 空 域 去 噪 选 择 。enCE 色 彩 增 强 开 关 。enLumaStr 对 比 度 拉 伸 开 关 。enHFilter 水 平 缩 放 系 数 。enVFilterL 亮 度 分 量 垂 直 方 向 的 缩 放 系 数 。enVFilterC 色 度 分 量 垂 直 方 向 的 缩 放 系 数 。enSpatialDenoise 空 域 去 噪 系 数 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VPP_CL<strong>IP</strong>_ATTR_S• VPP_CL<strong>IP</strong>ATTR_NUM• VPP_CE_E• VPP_LUMA_STR_E• HI_MPI_VPP_CreateScaleTask现 版 本 不 支 持 缩 放 任 务 配 置 中 的 时 域 去 噪 、Deinterlace、 彩 转 灰 、 空 域 去 噪 、 色 彩 增 强 、 对 比 度拉 伸 ; 仅 支 持 缩 放 。REGION_HANDLE【 说 明 】定 义 区 域 句 柄 。【 定 义 】typedef HI_U32 REGION_HANDLE;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-45


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 成 员 】成 员 名 称描 述REGION_HANDLE 区 域 句 柄 。REGION_TYPE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VPP_CreateRegion• HI_MPI_VPP_DestroyRegion• HI_MPI_VPP_ControlRegion【 说 明 】定 义 区 域 类 型 。【 定 义 】typedef enum hiREGION_TYPE_E{COVER_REGION = 0,OVERLAY_REGION,VIOVERLAY_REGION,REGION_BUTT} REGION_TYPE_E;【 成 员 】成 员 名 称描 述COVER_REGION 遮 挡 区 域 。OVERLAY_REGION 叠 加 区 域 。VIOVERLAY_REGION VI 叠 加 区 域 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_ATTR_S5-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理COVER_ATTR_S【 说 明 】定 义 遮 挡 区 域 属 性 结 构 体 。【 定 义 】typedef struct hiCOVER_ATTR_S{VI_DEV ViDevId;VI_CHN ViChn;HI_BOOL bIsPublic;HI_U32 u32Layer;RECT_S stRect;HI_U32 u32Color;} COVER_ATTR_S;【 成 员 】成 员 名 称描 述ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。静 态 属 性 。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。静 态 属 性 。bIsPublic 是 否 公 共 区 域 。取 值 范 围 :• HI_TRUE: 是 公 共 区 域 。• HI_FALSE: 不 是 公 共 区 域 。静 态 属 性 。u32Layer 层 次 。取 值 范 围 :[0, 100]。动 态 属 性 。stRect 区 域 的 位 置 和 大 小 。取 值 范 围 : 遮 挡 区 域 起 始 点 坐 标 大 于 等 于 0, 高 宽 大 于 0,最 大 为 4095 % 4095, 高 宽 最 大 值 都 为 4095。动 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-47


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述u32Color 背 景 色 。取 值 范 围 :[0, 0xFFFFFF]。动 态 属 性 。OVERLAY_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_ATTR_U【 说 明 】定 义 叠 加 区 域 属 性 结 构 体 。【 定 义 】typedef struct hiOVERLAY_ATTR_S{VENC_GRP VeGroup;HI_BOOLbPublic;RECT_SstRect;PIXEL_FORMAT_E enPixelFmt;HI_U32u32FgAlpha;HI_U32u32BgAlpha;HI_U32u32BgColor;} OVERLAY_ATTR_S;【 成 员 】成 员 名 称描 述VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。静 态 属 性 。bPublic 公 共 区 域 标 识 。取 值 范 围 :• HI_TRUE: 公 共 区 域 。• HI_FALSE: 非 公 共 区 域 。静 态 属 性 。5-48海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理成 员 名 称描 述stRect 区 域 的 位 置 和 高 宽 。取 值 范 围 : 叠 加 区 域 的 起 始 点 的 座 标 必 须 大 于 0 且 为 偶 数 , 长宽 也 都 必 须 为 偶 数 , 以 像 素 为 单 位 , 最 大 为 2047 % 2047, 高宽 最 大 值 都 为 2047。 而 且 对 于 叠 加 区 域 , 起 始 点 的 X 坐 标 必须 为 8 的 倍 数 。起 始 位 置 可 以 动 态 改 变 。高 宽 不 可 以 改 变 。enPixelFmt 像 素 的 格 式 。取 值 范 围 :• PIXEL_FORMAT_RGB_1555。• PIXEL_FORMAT_RGB_4444。静 态 属 性 。u32FgAlpha 前 景 Alpha 值 。取 值 范 围 :[0, 128]。动 态 属 性 。u32BgAlpha 背 景 Alpha 值 。取 值 范 围 :[0, 128]。动 态 属 性 。u32BgColor 背 景 色 。取 值 范 围 :[0, 0x7FFF]。动 态 属 性 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_ATTR_UVI_OVERLAY_ATTR_S【 说 明 】定 义 VI 叠 加 区 域 属 性 结 构 体 。【 定 义 】typedef struct hiVI_OVERLAY_ATTR_S{VI_DEV ViDevId;VI_CHN ViChn;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-49


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_BOOLbIsPublic;RECT_S stRect;PIXEL_FORMAT_E enPixelFmt;HI_U32 u32Layer;HI_U32 u32BgColor;HI_U8u8GlobalAlpha;HI_BOOL bAlphaExt1555;HI_U8u8Alpha0;HI_U8u8Alpha1;} VI_OVERLAY_ATTR_S;【 成 员 】成 员 名 称描 述ViDevId VI 设 备 号 。ViChn VI 通 道 号 。bPublic 公 共 区 域 标 识 。目 前 不 支 持 配 置 为 TRUE。stRect VI 叠 加 区 域 相 对 VI 图 像 的 位 置 坐 标 和 高 宽 。取 值 范 围 :VI 叠 加 区 域 的 起 始 点 的 坐 标 值 必 须 大 于 0 且 为 偶数 , 长 宽 都 必 须 为 大 于 16 的 偶 数 , 以 像 素 为 单 位 。 起 始 位 置可 以 通 过 控 制 接 口 进 行 动 态 改 变 , 高 宽 不 可 以 动 态 改 变 。enPixelFmt 像 素 的 格 式 。取 值 范 围 :• PIXEL_FORMAT_RGB_1555。u32Layer 区 域 层 次 。取 值 范 围 :[0, 100]。 值 越 大 , 层 次 越 高 。u32BgColor 背 景 色 。数 据 格 式 取 决 于 enPixelFmt 项 。u8GlobalAlpha 全 局 透 明 度 。取 值 范 围 :[0, 255]。 取 值 越 小 , 越 透 明 。bAlphaExt1555 是 否 扩 展 ARGB1555 格 式 的 透 明 度 功 能 。取 值 范 围 :TRUE or FALSE。u8Alpha0 bAlphaExt1555 为 TRUE 时 ,Alpha 位 0 的 像 素 点 的 透 明 度 。取 值 范 围 :[0, 255]。 取 值 越 小 , 越 透 明 。5-50海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理成 员 名 称描 述u8Alpha1 bAlphaExt1555 为 TRUE 时 ,Alpha 位 1 的 像 素 点 的 透 明 度 。取 值 范 围 :[0, 255]。 取 值 越 小 , 越 透 明 。COVEREX_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_ATTR_U【 说 明 】定 义 扩 展 遮 挡 区 域 属 性 结 构 体 。【 定 义 】typedef struct hiCOVER_ATTR_S{VI_DEV ViDevId;VI_CHN ViChn;HI_BOOL bIsPublic;VIDEO_FIELD_E enField;HI_U32 u32Layer;RECT_S stRect;HI_U32 u32Color;} COVER_ATTR_S;【 成 员 】成 员 名 称描 述ViDevId VI 设 备 号 。取 值 范 围 :[0, VIU_MAX_DEV_NUM)。静 态 属 性 。ViChn VI 通 道 号 。取 值 范 围 :[0, VIU_MAX_CHN_NUM)。静 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-51


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述bIsPublic 是 否 公 共 区 域 。取 值 范 围 :• HI_TRUE: 是 公 共 区 域 。• HI_FALSE: 不 是 公 共 区 域 。静 态 属 性 。enField 遮 挡 的 帧 场 属 性 。取 值 范 围 :[VIDEO_FIELD_TOP, VIDEO_FIELD_BUTT)。静 态 属 性 。只 有 在 VI 图 像 是 两 场 隔 行 格 式 时 , 此 项 配 置 才 有 意 义 。u32Layer 层 次 。取 值 范 围 :[0, 100]。动 态 属 性 。stRect 区 域 的 位 置 和 大 小 。取 值 范 围 : 遮 挡 区 域 起 始 点 坐 标 大 于 等 于 0, 高 宽 大 于 0,最 大 为 4095 % 4095, 高 宽 最 大 值 都 为 4095。动 态 属 性 。u32Color 背 景 色 。取 值 范 围 :[0, 0xFFFFFF]。动 态 属 性 。REGION_ATTR_U【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】REGION_ATTR_U【 说 明 】定 义 区 域 属 性 联 合 体 。【 定 义 】typedef union hiREGION_ATTR_U{COVER_ATTR_S stCover;OVERLAY_ATTR_S stOverlay;VI_OVERLAY_ATTR_S stViOverlay;5-52海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理COVEREX_ATTR_S}REGION_ATTR_U;stCoverEx;【 成 员 】成 员 名 称描 述stCover 遮 挡 区 域 属 性 。stOverlay 叠 加 区 域 属 性 。stViOverlay VI 叠 加 区 域 属 性 。stCoverEx 扩 展 遮 挡 区 域 属 性 。REGION_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• COVER_ATTR_S• OVERLAY_ATTR_S• VI_COVER_REGION• COVEREX_ATTR_S【 说 明 】定 义 区 域 类 型 结 构 体 。【 定 义 】typedef struct hiREGION_ATTR_S{REGION_TYPE_E enType;REGION_ATTR_U unAttr;}REGION_ATTR_S;【 成 员 】成 员 名 称描 述enType 区 域 类 型 。unAttr 区 域 属 性 。【 注 意 事 项 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-53


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考REGION_CTRL_CODE_E【 相 关 数 据 类 型 及 接 口 】• REGION_TYPE_E• REGION_ATTR_U• HI_MPI_VPP_CreateRegion【 说 明 】定 义 区 域 操 作 命 令 。【 定 义 】typedef enum hiREGION_CRTL_CODE_E{REGION_SHOW = 0,REGION_HIDE,REGION_SET_POSTION,REGION_SET_COLOR,REGION_SET_LAYER,REGION_SET_SIZE,REGION_SET_ALPHA0,REGION_SET_ALPHA1,REGION_SET_GLOBAL_ALPHA,REGION_SET_BITMAP,REGION_GET_SIGNLE_ATTR,REGION_GET_ALL_COVER_ATTR,REGION_GET_ALL_OVERLAY_ATTR,REGION_GET_ALL_SOFT_OVERLAY_ATTR,}REGION_CRTL_CODE_E;【 成 员 】成 员 名 称描 述REGION_SHOW 显 示 区 域 。REGION_HIDE 隐 藏 区 域 。REGION_SET_POSTION 改 变 区 域 位 置 。REGION_SET_COLOR 改 变 区 域 背 景 色 。REGION_SET_LAYER 改 变 区 域 层 次 。REGION_SET_SIZE 改 变 区 域 高 宽 。REGION_SET_ALPHA0改 变 区 域 背 景 Alpha 值 ( 只 针 对 像素 格 式 为 ARGB1555)。5-54海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理成 员 名 称REGION_SET_ALPHA1描 述改 变 区 域 前 景 Alpha 值 ( 只 针 对 像素 格 式 为 ARGB1555)。REGION_SET_GLOBAL_ALPHA 改 变 区 域 全 局 Alpha 值 。REGION_SET_BITMAP 填 充 区 域 位 图 。REGION_GET_SIGNLE_ATTR 获 取 单 个 区 域 属 性 。REGION_GET_ALL_COVER_ATTR 获 取 所 有 遮 挡 区 域 属 性 。暂 不 支 持 。REGION_GET_ALL_OVERLAY_ATTR 获 取 所 有 叠 加 区 域 属 性 。暂 不 支 持 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VPP_ControlRegionCOVER_S【 说 明 】定 义 所 有 遮 挡 区 域 结 构 体 。【 定 义 】typedef struct hiCOVER_S{HI_U32u32CoverNum;REGION_HANDLE aCoverHandles[VI_COVER_REGION];COVER_ATTR_S astAttr[VI_COVER_REGION];}COVER_S;【 成 员 】成 员 名 称描 述u32CoverNum 遮 挡 区 域 的 个 数 。aCoverHandles[VI_COVER_REGION] 遮 挡 区 域 的 句 柄 。astAttr[VI_COVER_REGION] 遮 挡 区 域 的 属 性 。【 注 意 事 项 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-55


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考无 。【 相 关 数 据 类 型 及 接 口 】• REGION_HANDLE• COVER_ATTR_SOVERLAY_S【 说 明 】定 义 所 有 叠 加 区 域 结 构 体 。【 定 义 】typedef struct hiOVERLAY_S{HI_U32u32OverlayNum;REGION_HANDLE aOverlayHandles[VENC_OVERLAY_REGION];OVERLAY_ATTR_S astAttr[VENC_OVERLAY_REGION];}OVERLAY_S;【 成 员 】成 员 名 称描 述u32OverlayNum 叠 加 区 域 的 个 数 。aOverlayHandles[VENC_OVERLAY_REGION] 叠 加 区 域 的 句 柄 。astAttr[VENC_OVERLAY_REGION] 叠 加 区 域 的 属 性 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• REGION_HANDLE• COVER_ATTR_SCOVEREX_S【 说 明 】定 义 所 有 扩 展 遮 挡 区 域 结 构 体 。【 定 义 】typedef struct hiCOVEREX_S{HI_U32 u32CoverExNum;REGION_HANDLE aCoverExHandles[VI_COVEREX_REGION];5-56海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理COVEREX_ATTR_S astAttr[VI_COVEREX_REGION];}COVEREX_S;【 成 员 】成 员 名 称描 述u32CoverExNum 扩 展 遮 挡 区 域 的 个 数 。aCoverExHandles[VI_COVEREX_REGION] 扩 展 遮 挡 区 域 的 句 柄 。astAttr[VI_COVEREX_REGION] 扩 展 遮 挡 区 域 的 属 性 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• REGION_HANDLE• COVEREX_ATTR_SREGION_CTRL_PARAM_U【 说 明 】定 义 控 制 区 域 参 数 联 合 体 。【 定 义 】typedef union hiREGION_CTRL_PARAMETER_U{HI_U32u32Layer;HI_U32u32Alpha;HI_U32u32Color;POINT_SstPoint;DIMENSION_S stDimension;BITMAP_S stBitmap;REGION_ATTR_S stRegionAttr;COVER_SstCovers;OVERLAY_S stOverlays;}REGION_CTRL_PARAM_U;【 成 员 】成 员 名 称描 述u32Layer 区 域 层 次 。取 值 范 围 :[0, 100]。动 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-57


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称u32Alpha描 述区 域 Alpha 值 ( 只 针 对 像 素 格 式 为 ARGB1555)。取 值 范 围 :[0, 128]。动 态 属 性 。u32Color 背 景 色 。取 值 范 围 : 请 参 见 COVER_ATTR_S 和 OVERLAY_ATTR_S 的 相 应取 值 范 围 。动 态 属 性 。stPoint 位 置 。取 值 范 围 : 请 参 见 COVER_ATTR_S 和 OVERLAY_ATTR_S 的 相 应取 值 范 围 。动 态 属 性 。stDimension 高 宽 。取 值 范 围 : 请 参 见 COVER_ATTR_S 和 OVERLAY_ATTR_S 的 相 应取 值 范 围 。动 态 属 性 。stBitmap 位 图 结 构 体 。stRegionAttr 区 域 属 性 。stCovers 所 有 遮 挡 区 域 。stOverlays 所 有 叠 加 区 域 。PIC_SCALE_TASK_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VPP_ControlRegion【 说 明 】定 义 缩 放 任 务 结 构 体 。【 定 义 】typedef struct hiPIC_SCALE_TASK_S{HI_U32 u32TaskId; /* used to identify a task */VIDEO_FRAME_INFO_S stSrcPic; /* source picture */VIDEO_FRAME_INFO_S stDesPic; /* destination picture */5-58海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考5 视 频 前 处 理}PIC_SCALE_TASK_S;【 成 员 】成 员 名 称u32TaskId描 述任 务 ID。stSrcPic 源 图 像 。stDesPic 目 标 图 像 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VPP_CreateScaleTask• HI_MPI_VPP_WaitScaleTask5.5 错 误 码视 频 前 处 理 API 错 误 码 如 表 5-2 所 示 。表 5-2 视 频 前 处 理 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0078001 HI_ERR_VPP_INVALID_DEVID 设 备 ID 超 出 合 法 范 围0xA0078002 HI_ERR_VPP_INVALID_CHNID 通 道 组 号 错 误 或 无 效 区 域句 柄0xA0078003 HI_ERR_VPP_ILLEGAL_PARAM 参 数 超 出 合 法 范 围0xA0078004 HI_ERR_VPP_EXIST 重 复 创 建 已 存 在 的 设 备 、通 道 或 资 源0xA0078005 HI_ERR_VPP_UNEXIST 试 图 使 用 或 者 销 毁 不 存 在的 设 备 、 通 道 或 者 资 源0xA0078006 HI_ERR_VPP_NULL_PTR 函 数 参 数 中 有 空 指 针0xA0078007 HI_ERR_VPP_NOT_CONFIG 模 块 没 有 配 置0xA0078008 HI_ERR_VPP_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能0xA0078009 HI_ERR_VPP_NOT_PERM 该 操 作 不 允 许 , 如 试 图 修改 静 态 配 置 参 数文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司5-59


5 视 频 前 处 理Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考错 误 代 码 宏 定 义 描 述0xA007800C HI_ERR_VPP_NOMEM 分 配 内 存 失 败 , 如 系 统 内存 不 足0xA007800D HI_ERR_VPP_NOBUF 分 配 缓 存 失 败 , 如 申 请 的数 据 缓 冲 区 太 大0xA007800E HI_ERR_VPP_BUF_EMPTY 缓 冲 区 中 无 数 据0xA007800F HI_ERR_VPP_BUF_FULL 缓 冲 区 中 数 据 满0xA0078010 HI_ERR_VPP_NOTREADY 系 统 没 有 初 始 化 或 没 有 加载 相 应 模 块0xA0078011 HI_ERR_VPP_BADADDR 地 址 非 法0xA0078012 HI_ERR_VPP_BUSY 系 统 忙5-60海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录6 视 频 编 码 .......................................................................................................................................6-16.1 概 述 ..............................................................................................................................................................6-16.2 重 要 概 念 ......................................................................................................................................................6-16.3 API 参 考 .......................................................................................................................................................6-16.4 数 据 类 型 ....................................................................................................................................................6-576.5 错 误 码 ........................................................................................................................................................6-86文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 6-1 编 码 通 道 的 部 分 属 性 的 约 束 ...............................................................................................................6-11表 6-2 视 频 编 码 API 错 误 码 ..........................................................................................................................6-86文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司iii


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码6 视 频 编 码6.1 概 述VENC 模 块 完 成 各 个 协 议 编 码 , 协 调 MD、VPP 相 关 模 块 的 管 理 、 同 步 和 控 制 , 配 合软 件 调 度 和 硬 件 共 同 完 成 视 频 编 码 相 关 功 能6.2 重 要 概 念• 主 次 码 流主 次 码 流 是 指 硬 件 逻 辑 单 元 启 动 一 次 同 时 产 生 的 2 路 码 流 , 即 1 路 主 码 流 和 1 路次 码 流 。 主 码 流 和 次 码 流 可 以 为 不 同 的 编 码 协 议 , 但 其 宽 高 比 例 都 必 须 满 足 1:1、1:2 或 1:4, 次 码 流 不 能 单 独 存 在 ( 必 须 和 1 路 主 码 流 在 同 一 个 通 道 组 中 )。• 双 码 流双 码 流 是 指 硬 件 逻 辑 单 元 启 动 2 次 分 时 产 生 的 2 个 码 流 , 即 2 路 主 码 流 。 双 码 流可 以 为 不 同 的 编 码 协 议 , 双 码 流 之 间 的 大 小 比 例 没 有 约 束 关 系 。• 通 道 组通 道 组 是 指 芯 片 能 够 同 时 处 理 的 编 码 通 道 的 集 合 , 相 当 于 一 个 容 器 。 一 个 通 道 组最 多 可 同 时 包 含 1 路 主 码 流 (H.264/MJPEG)、1 路 次 码 流 (H.264/MJPEG), 或 者仅 包 含 1 路 JPEG 抓 拍 ( 即 JPEG 抓 拍 时 , 不 允 许 包 含 任 何 其 他 通 道 ), 或 者 1 路MPEG4 编 码 通 道 。目 前 尚 不 支 持 MPEG4 编 码 。6.3 API 参 考视 频 编 码 功 能 实 际 包 含 VENC( 视 频 编 码 ) 和 GROUP( 通 道 组 管 理 ) 两 个 重 要 的 部分 , 主 要 提 供 视 频 编 码 通 道 组 的 创 建 和 销 毁 、 通 道 组 GROUP 与 视 频 输 入 通 道 的 绑 定文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-1


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考和 解 绑 定 、 视 频 编 码 通 道 的 创 建 和 销 毁 、 注 册 和 反 注 册 到 通 道 组 、 开 启 和 停 止 接 收 图像 、 设 置 和 获 取 编 码 通 道 属 性 、 获 取 和 释 放 码 流 、 设 置 和 获 取 数 字 水 印 属 性 、 启 用 和禁 用 数 字 水 印 、 视 频 编 码 通 道 属 性 的 设 置 和 查 询 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_VENC_CreateGroup: 创 建 编 码 通 道 组 。• HI_MPI_VENC_DestroyGroup: 销 毁 编 码 通 道 组 。• HI_MPI_VENC_BindInput: 绑 定 VI 到 通 道 组 。• HI_MPI_VENC_UnbindInput: 解 绑 定 VI 到 通 道 组 。• HI_MPI_VENC_CreateChn: 创 建 编 码 通 道 。• HI_MPI_VENC_DestroyChn: 销 毁 编 码 通 道 。• HI_MPI_VENC_RegisterChn: 注 册 编 码 通 道 到 通 道 组 。• HI_MPI_VENC_UnRegisterChn: 反 注 册 编 码 通 道 到 通 道 组 。• HI_MPI_VENC_StartRecvPic: 开 启 编 码 通 道 接 收 输 入 图 像 。• HI_MPI_VENC_StopRecvPic: 停 止 编 码 通 道 接 收 输 入 图 像 。• HI_MPI_VENC_Query: 查 询 编 码 通 道 状 态 。• HI_MPI_VENC_SetChnAttr: 设 置 编 码 通 道 的 属 性 。• HI_MPI_VENC_GetChnAttr: 获 取 编 码 通 道 的 属 性 。• HI_MPI_VENC_GetStream: 获 取 编 码 码 流 。• HI_MPI_VENC_ReleaseStream: 释 放 码 流 缓 存 。• HI_MPI_VENC_RequestIDR: 请 求 I 帧 。• HI_MPI_VENC_InsertUserData: 插 入 用 户 数 据 。• HI_MPI_VENC_GetCapability: 获 取 视 频 编 码 能 力 集 。• HI_MPI_VENC_SendFrame: 支 持 用 户 发 送 原 始 图 像 进 行 编 码 。• HI_MPI_VENC_SetWmAttr: 设 置 编 码 数 字 水 印 的 属 性 。• HI_MPI_VENC_GetWmAttr: 获 取 编 码 数 字 水 印 的 属 性 。• HI_MPI_VENC_EnableWm: 启 用 编 码 数 字 水 印 。• HI_MPI_VENC_DisableWm: 禁 用 编 码 数 字 水 印 。• HI_MPI_VENC_SetMaxStreamCnt: 设 置 码 流 缓 存 帧 数 。• HI_MPI_VENC_GetMaxStreamCnt: 获 取 码 流 缓 存 帧 数 。• HI_MPI_VENC_SetH264eRcPara: 设 置 H.264 编 码 的 码 率 控 制 参 数 。• HI_MPI_VENC_GetH264eRcPara: 获 取 H.264 编 码 的 码 率 控 制 参 数 。• HI_MPI_VENC_GetFd: 获 取 编 码 通 道 对 应 的 设 备 文 件 句 柄 。• HI_MPI_VENC_CfgMestPara: 设 置 编 码 通 道 运 动 估 计 参 数 。• HI_MPI_VENC_SetH264eNaluPara: 设 置 H.264 编 码 的 nalu 划 分 参 数 。• HI_MPI_VENC_GetH264eNaluPara: 获 取 H.264 编 码 的 nalu 划 分 参 数 。• HI_MPI_VENC_SetH264eRefMode: 设 置 跳 帧 参 考 模 式 。• HI_MPI_VENC_GetH264eRefMode: 获 取 跳 帧 参 考 模 式 。• HI_MPI_VENC_SetParamSet: 设 置 编 码 参 数 集 合 。6-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码• HI_MPI_VENC_GetParamSet: 获 取 编 码 参 数 集 合 。• HI_MPI_VENC_SetMeParam: 设 置 编 码 运 动 估 计 参 数 。• HI_MPI_VENC_GetMeParam: 获 取 编 码 运 动 估 计 参 数 。HI_MPI_VENC_CreateGroup【 描 述 】创 建 编 码 通 道 组 。【 语 法 】HI_S32 HI_MPI_VENC_CreateGroup(VENC_GRP VeGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 编 码 通 道 组 创 建 成 功 。HI_ERR_VENC_EXIST 编 码 通 道 组 重 复 创 建 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_INVALID_CHNID 无 效 的 编 码 通 道 组 号 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-3


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 本 文 档 中 含 有 通 道 组 号 的 接 口 的 通 道 组 号 的 取 值 范 围 为 [0,VENC_MAX_GRP_NUM), 否 则 返 回 HI_ERR_VENC_INVALID_CHNID。• 编 码 通 道 组 是 指 芯 片 能 够 同 时 处 理 的 编 码 通 道 的 集 合 , 一 个 通 道 组 最 多 可 同 时 包含 1 路 主 码 流 (H.264/MJPEG) 和 一 路 次 码 流 (H.264/MJPEG), 或 者 包 含 1 路JPEG 抓 拍 , 或 者 仅 包 含 1 路 MPEG4 通 道 。• 如 果 指 定 的 通 道 组 已 经 存 在 , 则 返 回 错 误 码 HI_ERR_VENC_EXIST。【 举 例 】HI_S32 StartVenc(HI_VOID){HI_S32 s32Ret;VI_DEV ViDev = 0;VI_CHN ViChn = 0;VENC_GRP VeGroup = 0;VENC_CHN VeChn = 0;VENC_CHN_ATTR_S stAttr;VENC_ATTR_H264_S stH264Attr;/* set 264 channel attribute */stH264Attr.u32PicWidth = 720;stH264Attr.u32PicHeight = 576;…… // omit other assignments here.stAttr.enType = PT_H264;stAttr.pValue = (HI_VOID *)&stH264Attr;s32Ret = HI_MPI_VENC_CreateGroup(VeGroup);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_CreateGroup err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VENC_CreateChn(VeChn, &stAttr, HI_NULL);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_CreateChn err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VENC_RegisterChn(VeGroup, VeChn);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_RegisterChn err 0x%x\n",s32Ret);6-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码}return HI_FAILURE;s32Ret = HI_MPI_VENC_StartRecvPic(VeChn);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_StartRecvPic err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VENC_BindInput(VeGroup, ViDev, ViChn);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_BindInput err 0x%x\n",s32Ret);return HI_FAILURE;}更 详 细 的 过 程 , 请 参 考 Sample 代 码 。【 相 关 主 题 】无 。HI_MPI_VENC_DestroyGroup【 描 述 】销 毁 编 码 通 道 组 。【 语 法 】HI_S32 HI_MPI_VENC_DestroyGroup(VENC_GRP VeGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-5


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 无 效 的 编 码 通 道 组 号 。HI_ERR_VENC_UNEXIST 通 道 组 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 销 毁 通 道 组 时 , 必 须 保 证 通 道 组 为 空 , 即 没 有 任 何 通 道 在 通 道 组 中 注 册 , 否 则 会返 回 错 误 码 HI_ERR_VENC_NOT_PERM。• 销 毁 并 不 存 在 的 通 道 组 , 返 回 错 误 码 HI_ERR_VENC_UNEXIST。【 举 例 】HI_S32 StopVenc(HI_VOID){HI_S32 s32Ret;VENC_CHN VeChn = 0;VENC_GRP VeGroup = 0;s32Ret = HI_MPI_VENC_UnbindInput(VeGroup);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_UnbindInput err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret =HI_MPI_VENC_StopRecvPic(VeChn);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_StopRecvPic err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VENC_UnRegisterChn(VeChn);6-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_UnRegisterChn err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_VENC_DestroyChn(VeChn);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_DestroyChn err 0x%x\n",s32Ret);return HI_FAILURE;}s32Ret =HI_MPI_VENC_DestroyGroup(VeGroup);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_DestroyGroup err 0x%x\n",s32Ret);return HI_FAILURE;}}return HI_SUCCESS;【 相 关 主 题 】无 。HI_MPI_VENC_BindInput【 描 述 】绑 定 VI 到 通 道 组 。【 语 法 】HI_S32 HI_MPI_VENC_BindInput(VENC_GRP VeGroup, VI_DEV ViDevId, VI_CHNViChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。ViDevId VI 设 备 号 。取 值 范 围 :[0, VI_MAX_DEV_NUM)。输 入输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-7


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出ViChn VI 通 道 号 。取 值 范 围 :[0, VI_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_RET_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 无 效 的 通 道 号 。HI_ERR_VENC_INVALID_DEVID 无 效 的 设 备 号 。HI_ERR_VENC_UNEXIST 通 道 组 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 绑 定 并 不 存 在 的 通 道 组 , 则 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 如 果 VI 设 备 或 者 VI 通 道 超 出 范 围 , 则 返 回 HI_ERR_VENC_INVALID_DEVID 或者 HI_ERR_VENC_INVALID_CHNID。• 此 接 口 并 不 判 断 VI 的 状 态 ,ViDevId 和 ViChn 可 以 对 应 实 际 的 VI 设 备 , 也 可 以对 应 虚 拟 的 VI 设 备 , 对 应 虚 拟 的 VI 设 备 主 要 用 于 用 户 手 动 发 送 图 像 编 码 ,HI_MPI_VENC_SendFrame 会 对 此 作 出 详 细 的 说 明 。• 如 果 通 道 组 已 经 绑 定 了 某 个 VI 通 道 , 则 返 回 错 误 码HI_ERR_VENC_NOT_PERM。• 一 个 通 道 组 只 能 绑 定 一 个 VI 通 道 , 但 一 个 VI 通 道 可 以 被 多 个 通 道 组 绑 定 。• 在 编 码 过 程 中 , 可 以 动 态 解 绑 定 和 绑 定 VI, 达 到 编 码 不 同 图 像 源 的 目 的 。6-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 举 例 】请 参 见 HI_MPI_VENC_CreateGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_UnbindInput【 描 述 】解 绑 定 VI 到 通 道 组 。【 语 法 】HI_S32 HI_MPI_VENC_UnbindInput(VENC_GRP VeGroup);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeGroup 编 码 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 无 效 的 通 道 组 号 。HI_ERR_VENC_UNEXIST 通 道 组 不 存 在 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-9


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 】• 解 绑 定 并 不 存 在 的 通 道 组 , 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 解 绑 定 之 后 ,VI 通 道 如 果 满 足 条 件 , 可 以 再 绑 定 到 其 他 任 意 通 道 组 。• 可 以 重 复 解 绑 定 , 返 回 HI_SUCCESS。【 举 例 】请 参 见 HI_MPI_VENC_DestroyGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_CreateChn【 描 述 】创 建 编 码 通 道 。【 语 法 】HI_S32 HI_MPI_VENC_CreateChn(VENC_CHN VeChn, const VENC_CHN_ATTR_S*pstAttr, const VENC_WM_ATTR_S *pstWm);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 编 码 通 道 属 性 指 针 。 输 入pstWm 数 字 水 印 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 无 效 的 编 码 通 道 号 。6-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码接 口 返 回 值含 义HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VENC_EXIST 编 码 通 道 重 复 创 建 。HI_ERR_VENC_NOBUF 内 存 不 足 导 致 buffer 分 配 失 败 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• Hi3520 支 持 对 主 次 码 流 进 行 编 码 。 在 创 建 编 码 通 道 的 时 候 必 须 指 定 该 通 道 是 主 码流 还 是 次 码 流 。• 在 创 建 编 码 通 道 的 时 候 , 编 码 通 道 属 性 除 需 要 输 入 各 个 协 议 的 特 有 的 编 码 属 性 之外 , 一 般 还 需 要 输 入 主 次 码 流 (MPEG4 编 码 协 议 无 此 属 性 )、 编 码 协 议 、 编 码 的帧 场 模 式 、 输 入 图 像 的 帧 场 模 式 、 获 取 码 流 的 方 式 ( 按 帧 还 是 按 包 获 取 码 流 )、 编码 图 像 大 小 属 性 , 这 些 属 性 受 表 6-1 约 束 , 并 且 这 些 属 性 都 为 静 态 属 性 , 不 允 许动 态 设 置 。表 6-1 编 码 通 道 的 部 分 属 性 的 约 束编 码 协 议 大 小 码 流 编 码 方 式 编 码 图 像 大 小H.264 大 码 流 Frame、Field 160×112 以 上 ,2048 × 1536(3M) 像素 以 下 , 高 度 和 宽 度 均 8 像 素 对 齐 。MJPEG 大 码 流 Frame 160×112 以 上 ,2048 × 1536(3M) 像素 以 下 , 高 度 和 宽 度 均 8 像 素 对 齐 。H.264、MJPEG小 码 流 Frame CIF• PAL:352 × 288• NTSC:352 × 240QCIF• PAL:176 × 144• NTSC:176 × 120QVGA:320 × 240QQVGA:160 × 120MPEG4 无 Frame QCIF文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-11


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考编 码 协 议 大 小 码 流 编 码 方 式 编 码 图 像 大 小• PAL:176 × 144• NTSC:176 × 112JPEG 抓 拍 无 Frame 80 × 64 以 上 ,2048 × 1536(3M) 像 素以 下 , 高 度 和 宽 度 均 8 像 素 对 齐 。• 若 输 入 图 像 大 于 大 码 流 的 宽 高 , 但 相 差 16 像 素 以 内 ( 含 16 像 素 ), 则 大 码 流 编 码图 像 通 过 输 入 图 像 做 切 边 得 到 。• 若 输 入 图 像 小 于 大 码 流 的 宽 高 , 会 丢 弃 这 些 图 像 , 而 不 会 对 其 放 大 进 行 编 码 。 该出 错 信 息 会 在 log 中 显 示 。• 推 荐 的 大 码 流 编 码 宽 高 为 :2048×1536(3M 像 素 )、1280×1024(1.3M 像 素 )、1920×1080(1080P)、1280×720(720P)、704×576、704×480、352×288、352×240。• 对 于 H.264 主 码 流 , 编 码 图 像 大 小 不 为 D1 时 , 其 编 码 方 式 推 荐 使 用 帧 编 码 。• 当 参 数 pstWm 为 空 时 , 表 示 该 编 码 通 道 不 需 要 使 用 水 印 , 否 则 认 为 需 要 使 用 数 字水 印 。 如 果 创 建 成 功 , 数 字 水 印 默 认 使 能 。 目 前 只 有 H.264 编 码 的 大 码 流 可 以 设置 数 字 水 印 , 其 他 的 情 况 设 置 数 字 水 印 时 均 返 回 错 误 码HI_ERR_VENC_NOT_SUPPORT。• H.264 编 码 支 持 目 标 帧 率 为 分 数 , 可 使 用 宏 FRACTION32(de,nu) 设 置 , 表 示 分 数nu/de。 该 宏 包 含 在 hi_math.h 文 件 中 。【 举 例 】请 参 见 HI_MPI_VENC_CreateGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_DestroyChn【 描 述 】销 毁 编 码 通 道 。【 语 法 】HI_S32 HI_MPI_VENC_DestroyChn(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】6-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 销 毁 并 不 存 在 的 通 道 , 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 销 毁 前 必 须 保 证 通 道 已 经 从 通 道 组 反 注 册 , 否 则 返 回 错 误 码HI_ERR_VENC_NOT_PERM。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_RegisterChn【 描 述 】注 册 编 码 通 道 到 通 道 组 。【 语 法 】HI_S32 HI_MPI_VENC_RegisterChn(VENC_GRP VeGroup,VENC_CHN VeChn);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-13


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出VeGroup 通 道 组 号 。取 值 范 围 :[0, VENC_MAX_GRP_NUM)。VeChn 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 / 通 道 组 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 / 通 道 组 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_NOMEM 内 存 分 配 失 败 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 注 册 并 不 存 在 的 通 道 , 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 注 册 通 道 到 不 存 在 的 通 道 组 , 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 同 一 个 编 码 通 道 只 能 注 册 到 一 个 通 道 组 , 如 果 该 通 道 已 经 注 册 到 某 个 通 道 组 , 则返 回 HI_ERR_VENC_NOT_PERM。• 主 次 码 流 注 册 的 时 候 需 要 判 定 以 下 约 束 关 系 :−−主 码 流 要 先 于 次 码 流 注 册 , 否 则 返 回 HI_ERR_VENC_NOT_PERM。如 果 编 码 通 道 已 经 注 册 , 则 在 反 注 册 前 不 能 再 进 行 注 册 , 否 则 返 回HI_ERR_VENC_NOT_PERM。6-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码• MD 通 道 注 册 必 须 在 编 码 通 道 注 册 成 功 之 后 进 行 , 否 则 返 回HI_ERR_VENC_NOT_PERM。• 同 组 的 主 次 码 流 若 为 1:1 的 关 系 , 则 编 码 方 式 必 须 同 为 帧 编 码 , 否 则 返 回HI_ERR_VENC_NOT_PERM。• 同 组 的 主 次 码 流 宽 高 必 须 符 合 如 下 约 束 :【 举 例 】− 主 码 流 的 宽 度 范 围 [160, 2048], 高 度 范 围 [112, 1536], 且 均 为 2 的 倍 数 ;− 次 码 流 的 宽 度 范 围 [160, 352], 高 度 范 围 [112, 256], 且 均 为 2 的 倍 数 ;− 主 次 码 流 高 宽 比 例 必 须 为 1:1、1:2、1:4 三 者 之 一 。请 参 见 HI_MPI_VENC_CreateGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_UnRegisterChn【 描 述 】反 注 册 编 码 通 道 到 通 道 组 。【 语 法 】HI_S32 HI_MPI_VENC_UnRegisterChn(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-15


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 反 注 册 未 创 建 的 通 道 , 则 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 如 果 通 道 未 注 册 , 则 返 回 错 误 码 HI_ERR_VENC_NOT_PERM。• 如 果 编 码 通 道 未 停 止 接 收 图 像 编 码 (HI_MPI_VENC_StopRecvPic 可 停 止 接 收 ),则 返 回 错 误 码 HI_ERR_VENC_NOT_PERM。• 反 注 册 后 会 将 编 码 通 道 复 位 , 如 果 用 户 还 在 使 用 未 及 时 释 放 的 码 流 buffer, 将 不 能保 证 此 buffer 数 据 的 正 确 性 。 用 户 可 以 使 用 HI_MPI_VENC_Query 接 口 来 查 询 状态 , 确 认 自 己 所 有 的 操 作 都 完 成 之 后 再 反 注 册 通 道 。【 举 例 】请 参 见 HI_MPI_VENC_DestroyGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_StartRecvPic【 描 述 】开 启 编 码 通 道 接 收 输 入 图 像 。【 语 法 】HI_S32 HI_MPI_VENC_StartRecvPic(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】6-16海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。• 如 果 通 道 没 有 注 册 到 通 道 组 , 则 返 回 HI_ERR_VENC_NOT_PERM。• 此 接 口 不 判 断 当 前 是 否 已 经 开 启 接 收 , 直 接 将 状 态 设 置 为 开 启 接 收 。• 此 接 口 用 于 开 启 编 码 通 道 接 收 图 像 来 编 码 , 请 注 意 它 和 绑 定 通 道 组 的 区 别 。• 开 始 接 收 输 入 是 针 对 通 道 的 , 只 有 开 启 接 收 之 后 编 码 器 才 开 始 接 收 图 像 编 码 。【 举 例 】请 参 见 HI_MPI_VENC_CreateGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_StopRecvPic【 描 述 】停 止 编 码 通 道 接 收 输 入 图 像 。【 语 法 】HI_S32 HI_MPI_VENC_StopRecvPic(VENC_CHN VeChn);文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-17


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。• 如 果 通 道 没 有 注 册 到 通 道 组 , 则 返 回 HI_ERR_VENC_NOT_PERM。• 此 接 口 并 不 判 断 当 前 是 否 停 止 接 收 , 直 接 将 状 态 设 置 为 停 止 接 收 。• 此 接 口 用 于 编 码 通 道 停 止 接 收 图 像 来 编 码 , 在 编 码 通 道 反 注 册 前 必 须 停 止 接 收 图像 。• 调 用 此 接 口 仅 停 止 接 收 原 始 数 据 编 码 , 码 流 buffer 并 不 会 被 清 除 。【 举 例 】请 参 见 HI_MPI_VENC_DestroyGroup 的 举 例 。【 相 关 主 题 】6-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码无 。HI_MPI_VENC_Query【 描 述 】查 询 编 码 通 道 状 态 。【 语 法 】HI_S32 HI_MPI_VENC_Query(VENC_CHN VeChn, VENC_CHN_STAT_S *pstStat);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstStat 编 码 通 道 的 状 态 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-19


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。• 此 接 口 用 于 查 询 此 函 数 调 用 时 刻 的 编 码 器 状 态 ,pstStat 包 含 三 个 主 要 的 信 息 :− 在 编 码 通 道 状 态 结 构 体 中 ,u32LeftPics 表 示 待 编 码 的 帧 个 数 。在 反 注 册 通 道 前 , 可 以 通 过 查 询 是 否 还 有 图 像 待 编 码 来 决 定 反 注 册 时 机 , 防 止反 注 册 时 将 可 能 需 要 编 码 的 帧 清 理 出 去 。−【 举 例 】在 编 码 通 道 状 态 结 构 体 中 ,u32LeftStreamBytes 表 示 码 流 buffer 中 剩 余 的 byte数 目 。在 反 注 册 通 道 前 , 可 以 通 过 查 询 是 否 还 有 码 流 没 有 被 处 理 来 决 定 反 注 册 时 机 ,防 止 反 注 册 时 将 可 能 需 要 的 码 流 清 理 出 去 。− 在 编 码 通 道 状 态 结 构 体 中 ,u32CurPacks 表 示 当 前 帧 的 码 流 包 个 数 。在 按 包 获 取 时 当 前 帧 可 能 不 是 一 个 完 整 帧 ( 被 取 走 一 部 分 ), 按 帧 获 取 时 表 示当 前 一 个 完 整 帧 的 包 个 数 ( 如 果 没 有 一 帧 数 据 则 为 0)。 用 户 在 需 要 按 帧 获 取 码流 时 , 需 要 查 询 一 个 完 整 帧 的 包 个 数 , 在 这 种 情 况 下 , 通 常 可 以 在 select 成 功之 后 执 行 query 操 作 , 此 时 u32CurPacks 是 当 前 完 整 帧 中 包 的 个 数 。请 参 见 HI_MPI_VENC_GetStream 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_SetChnAttr【 描 述 】设 置 编 码 通 道 属 性 。【 语 法 】HI_S32 HI_MPI_VENC_SetChnAttr(VENC_CHN VeChn, const VENC_CHN_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 编 码 通 道 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。6-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码返 回 值描 述非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 设 置 未 创 建 的 通 道 的 属 性 , 则 返 回 HI_ERR_VENC_UNEXIST。• 如 果 pstAttr 为 空 , 则 返 回 HI_ERR_VENC_NULL_PTR。• 此 接 口 只 能 设 置 动 态 属 性 , 如 果 设 置 静 态 属 性 , 则 返 回HI_ERR_VENC_NOT_PERM。 主 次 码 流 (MPEG4 编 码 协 议 无 此 属 性 )、 编 码 协议 、 编 码 的 帧 场 模 式 、 输 入 图 像 的 帧 场 模 式 、 获 取 码 流 的 方 式 ( 按 帧 还 是 按 包 获取 码 流 )、 编 码 图 像 大 小 属 性 均 为 静 态 属 性 。 另 外 , 各 个 编 码 协 议 的 静 态 属 性 由 各个 协 议 模 块 指 定 , 具 体 请 参 见 VENC_CHN_ATTR_S。【 举 例 】/* change target bitrate to 2Mbps */VENC_CHN_ATTR_S stAttr;VENC_ATTR_H264_S stH264Attr;stAttr.pValue = (HI_VOID *)&stH264Attr;s32Ret = HI_MPI_VENC_GetChnAttr(VeChn, &stAttr);if (s32Ret != HI_SUCCESS)文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-21


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考{}printf("HI_MPI_VENC_GetChnAttr err 0x%x\n",s32Ret);return HI_FAILURE;stH264Attr.u32TargetBitrate = 2000;s32Ret = HI_MPI_VENC_SetChnAttr(VeChn, &stAttr);if (s32Ret != HI_SUCCESS){printf("HI_MPI_VENC_SetChnAttr err 0x%x\n",s32Ret);return HI_FAILURE;}【 相 关 主 题 】无 。HI_MPI_VENC_GetChnAttr【 描 述 】获 取 编 码 通 道 属 性 。【 语 法 】HI_S32 HI_MPI_VENC_GetChnAttr(VENC_CHN VeChn, VENC_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 编 码 通 道 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】6-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 获 取 未 创 建 的 通 道 的 属 性 , 返 回 HI_ERR_VENC_UNEXIST。• 不 同 的 协 议 类 型 (pstAttr->enType), 有 不 同 的 通 道 属 性 结 构 体 (pstAttr->pValue), 注 意 两 者 的 匹 配 , 否 则 可 能 出 现 无 法 预 料 的 问 题 。• pstAttr->enType 为 不 支 持 的 类 型 , 则 返 回 HI_ERR_VENC_NOT_SUPPORT。• 如 果 pstAttr 为 空 , 则 返 回 HI_ERR_VENC_NULL_PTR。【 举 例 】请 参 见 HI_MPI_VENC_SetChnAttr 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_GetStream【 描 述 】获 取 编 码 的 码 流 。【 语 法 】HI_S32 HI_MPI_VENC_GetStream(VENC_CHN VeChn, VENC_STREAM_S *pstStream,HI_U32 u32BlockFlag);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-23


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出pstStream 码 流 结 构 体 指 针 。 输 出u32BlockFlag 阻 塞 方 式 。取 值 范 围 :• HI_IO_BLOCK: 阻 塞 。• HI_IO_NOBLOCK: 非 阻 塞 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_BUF_EMPTY 缓 冲 区 中 无 数 据 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 如 果 pstStream 为 空 , 返 回 错 误 码 HI_ERR_VENC_NULL_PTR。• 支 持 阻 塞 或 非 阻 塞 两 种 方 式 获 取 。 同 时 可 支 持 select/poll 系 统 调 用 。−−非 阻 塞 获 取 时 , 如 果 缓 冲 无 数 据 , 则 返 回 HI_ERR_VENC_BUF_EMPTY。阻 塞 时 , 如 果 缓 冲 无 数 据 , 则 会 等 待 有 数 据 时 才 返 回 HI_SUCCESS。6-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码• 支 持 按 包 或 按 帧 方 式 获 取 码 流 。 如 果 按 包 获 取 , 则 :− 对 于 H.264 编 码 协 议 , 每 次 获 取 的 是 一 个 NAL 单 元 。−−对 于 JPEG 编 码 协 议 ( 包 括 JPEG 抓 拍 和 MJPEG), 每 次 获 取 的 是 一 个 ECS 或图 像 参 数 码 流 包 。对 于 MPEG4 编 码 协 议 , 每 次 获 取 的 是 一 帧 一 个 包 , 因 此 按 帧 获 取 或 者 按 包 获取 , 结 果 相 同 。• 码 流 结 构 体 VENC_STREAM_S 包 含 3 个 部 分 :−−−码 流 包 信 息 指 针 pstPack指 向 一 组 VENC_PACK_S 的 内 存 空 间 , 该 空 间 由 调 用 者 分 配 。 如 果 是 按 包 获取 , 则 此 空 间 不 小 于 sizeof(VENC_PACK_S) 的 大 小 ; 如 果 按 帧 获 取 , 则 此空 间 不 小 于 N × sizeof(VENC_PACK_S) 的 大 小 , 其 中 N 代 表 当 前 帧 之 中 的包 的 个 数 , 可 以 在 select 之 后 通 过 查 询 接 口 获 得 。码 流 包 个 数 u32PackCount在 输 入 时 , 此 值 指 定 pstPack 中 VENC_PACK_S 的 个 数 。 按 包 获 取 时 ,u32PackCount 必 须 不 小 于 1; 按 帧 获 取 时 ,u32PackCount 必 须 不 小 于 当 前 帧 的包 个 数 。 在 函 数 调 用 成 功 后 ,u32PackCount 返 回 实 际 填 充 pstPack 的 包 的 个数 。序 列 号 u32Seq按 帧 获 取 时 是 帧 序 列 号 ; 按 包 获 取 时 为 包 序 列 号 。• 如 果 用 户 长 时 间 不 获 取 码 流 , 那 么 码 流 缓 冲 区 就 会 满 。 一 个 编 码 通 道 如 果 发 生 码流 缓 冲 区 满 , 就 会 停 止 该 编 码 通 道 编 码 , 等 有 足 够 的 码 流 缓 冲 可 以 用 来 编 码 时 ,才 开 始 继 续 编 码 , 这 种 情 况 对 于 主 次 码 流 编 码 通 道 来 说 , 相 互 不 受 影 响 。• 用 户 应 该 及 时 获 取 码 流 , 防 止 由 于 码 流 buffer 阻 塞 导 致 编 码 器 停 止 工 作 。【 举 例 】HI_S32 VencGetH264Stream(HI_VOID){HI_S32 i;HI_S32 s32Ret;HI_S32 s32VencFd;HI_U32 u32FrameIdx = 0;VENC_CHN VeChn = 0;VENC_CHN_STAT_S stStat;VENC_STREAM_S stStream;fd_set read_fds;FILE *pFile = NULL;pFile = fopen("stream.h264","wb");if(pFile == NULL){return HI_FAILURE;}文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-25


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考s32VencFd = HI_MPI_VENC_GetFd(VeChn);do{FD_ZERO(&read_fds);FD_SET(s32VencFd,&read_fds);s32Ret = select(s32VencFd+1, &read_fds, NULL, NULL, NULL);if (s32Ret < 0){printf("select err\n");return HI_FAILURE;}else if (0 == s32Ret){printf("time out\n");return HI_FAILURE;}else{if (FD_ISSET(s32VencFd, &read_fds)){s32Ret = HI_MPI_VENC_Query(VeChn, &stStat);if (s32Ret != HI_SUCCESS){return HI_FAILURE;}stStream.pstPack = (VENC_PACK_S*)malloc(sizeof(VENC_PACK_S)*stStat.u32CurPacks);if (NULL == stStream.pstPack){return HI_FAILURE;}stStream.u32PackCount = stStat.u32CurPacks;s32Ret = HI_MPI_VENC_GetStream(VeChn, &stStream, HI_TRUE);if (HI_SUCCESS != s32Ret){free(stStream.pstPack);stStream.pstPack = NULL;return HI_FAILURE;}for (i=0; i< stStream.u32PackCount; i++){6-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码}fwrite(stStream.pstPack[i].pu8Addr[0],stStream.pstPack[i].u32Len[0], 1, pFile);if (stStream.pstPack[i].u32Len[1] > 0){fwrite(stStream.pstPack[i].pu8Addr[1],stStream.pstPack[i].u32Len[1], 1, pFile);}s32Ret = HI_MPI_VENC_ReleaseStream(VeChn,&stStream);if (HI_SUCCESS != s32Ret){free(stStream.pstPack);stStream.pstPack = NULL;return HI_FAILURE;}free(stStream.pstPack);stStream.pstPack = NULL;}}u32FrameIdx++;}while (u32FrameIdx < 0xff);fclose(pFile);return HI_SUCCESS;}更 详 细 的 内 容 , 请 参 考 sample 代 码 。【 相 关 主 题 】无 。HI_MPI_VENC_ReleaseStream【 描 述 】释 放 码 流 缓 存 。【 语 法 】HI_S32 HI_MPI_VENC_ReleaseStream(VENC_CHN VeChn, VENC_STREAM_S*pstStream);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-27


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstStream 码 流 结 构 体 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 如 果 pstStream 为 空 , 则 返 回 错 误 码 HI_ERR_VENC_NULL_PTR。• 此 接 口 应 当 和 HI_MPI_VENC_GetStream 配 对 起 来 使 用 , 用 户 获 取 码 流 后 必 须 及时 释 放 已 经 获 取 的 码 流 缓 存 , 否 则 可 能 会 导 致 码 流 buffer 满 , 影 响 编 码 器 编 码 ,并 且 用 户 必 须 按 先 获 取 先 释 放 的 顺 序 释 放 已 经 获 取 的 码 流 缓 存 。• 在 编 码 通 道 反 注 册 以 后 , 所 有 未 释 放 的 码 流 包 均 无 效 , 不 能 再 使 用 或 者 释 放 这 部分 无 效 的 码 流 缓 存 。• 释 放 无 效 的 码 流 会 返 回 HI_ERR_VENC_ILLEGAL_PARAM。【 举 例 】6-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码请 参 见 HI_MPI_VENC_GetStream 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_RequestIDR【 描 述 】请 求 I 帧 。【 语 法 】HI_S32 HI_MPI_VENC_RequestIDR( VENC_CHN VeChn );【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-29


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。• 接 受 IDR 帧 或 I 帧 请 求 后 , 在 尽 可 能 短 的 时 间 内 编 出 IDR 帧 或 I 帧 。• I 帧 请 求 , 只 支 持 H.264 和 MPEG4 编 码 协 议 ,JPEG 和 MJPEG 编 码 请 求 会 返 回HI_ERR_VENC_NOT_SUPPORT。【 举 例 】HI_S32 s32Ret;VENC_CHN VeChn = 0;s32Ret = HI_MPI_VENC_RequestIDR(VeChn);if(HI_SUCCESS != s32Ret){printf("HI_MPI_VENC_RequestIDR err 0x%xn",s32Ret);}【 相 关 主 题 】无 。HI_MPI_VENC_InsertUserData【 描 述 】插 入 用 户 数 据 。【 语 法 】HI_S32 HI_MPI_VENC_InsertUserData(VENC_CHN VeChn, HI_U8 *pu8Data, HI_U32u32Len);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pu8Data 用 户 数 据 指 针 。 输 入u32Len 用 户 数 据 长 度 。取 值 范 围 :[0, 1024], 以 byte 为 单 位 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。6-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 错 误 码 HI_ERR_VENC_UNEXIST。• 如 果 pu8Data 为 空 , 则 返 回 错 误 码 HI_ERR_VENC_NULL_PTR。• 用 户 数 据 大 于 1KB, 则 返 回 错 误 码 HI_ERR_VENC_ILLEGAL_PARAM。• 插 入 用 户 数 据 , 只 支 持 H.264 和 MJPEG/JPEG 编 码 协 议 ,MPEG4 编 码 请 求 会 返 回HI_ERR_VENC_NOT_SUPPORT。【 举 例 】HI_U8 au8UserData[] = "hisilicon2009";s32Ret = HI_MPI_VENC_InsertUserData(VeChn, au8UserData,sizeof(au8UserData));if(HI_SUCCESS != s32Ret){printf("HI_MPI_VENC_InsertUserData err 0x%xn",s32Ret);}【 相 关 主 题 】无 。HI_MPI_VENC_GetCapability【 描 述 】获 取 视 频 编 码 能 力 集 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-31


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 语 法 】HI_S32 HI_MPI_VENC_GetCapability(VENC_CAPABILITY_S *pstCap);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstCap 编 码 能 力 集 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 无 需 创 建 通 道 即 可 获 取 编 码 能 力 集 。• 各 个 协 议 编 码 能 力 集 不 同 , 请 参 照 各 个 协 议 的 编 码 能 力 集 描 述 数 据 结 构 。pstCap->pCapability 指 向 各 个 协 议 编 码 能 力 集 空 间 , 如 :H.264 指 向H264_VENC_CAPABILITY_S 空 间 ,JPEG 或 者 MJPEG 指 向JPEG_VENC_CAPABILITY_S 空 间 。【 举 例 】HI_S32 VencGetCapability(HI_VOID){HI_S32 s32Ret;VENC_CAPABILITY_S stCapAbility;6-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码H264_VENC_CAPABILITY_S stH264CapAbility;JPEG_VENC_CAPABILITY_S stJpegCapAbility;stCapAbility.enType = PT_H264;stCapAbility.pCapability = (HI_VOID *)&stH264CapAbility;s32Ret = HI_MPI_VENC_GetCapability(&stCapAbility);if(HI_SUCCESS != s32Ret){printf("HI_MPI_VENC_GetCapability err 0x%xn",s32Ret);return HI_FAILURE;}stCapAbility.enType = PT_MJPEG;stCapAbility.pCapability = (HI_VOID *)&stJpegCapAbility;}s32Ret = HI_MPI_VENC_GetCapability(&stCapAbility);if(HI_SUCCESS != s32Ret){printf("HI_MPI_VENC_GetCapability err 0x%xn",s32Ret);return HI_FAILURE;}return HI_SUCCESS;【 相 关 主 题 】无 。HI_MPI_VENC_SendFrame【 描 述 】支 持 用 户 发 送 原 始 图 像 进 行 编 码 。【 语 法 】HI_S32 HI_MPI_VENC_SendFrame(VI_DEV ViDevId, VI_CHN ViChn, HI_U32u32PoolId, VIDEO_FRAME_S *pstFrame, HI_BOOL bIDR);【 参 数 】参 数 名 称 描 述 输 入 / 输 出ViDevId VI 设 备 号 。取 值 范 围 :[0, VI_MAX_DEV_NUM)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-33


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出ViChn VI 通 道 号 。取 值 范 围 :[0, VI_MAX_CHN_NUM)。u32PoolId 内 存 池 句 柄 。取 值 范 围 :[0, VB_MAX_POOLS)。输 入输 入pstFrame 原 始 图 像 信 息 结 构 指 针 。 输 入bIDR 是 否 编 为 IDR 或 者 I 帧 ( 当 前 版 本 会 忽 略 此 标 志 )。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_INVALID_CHNID 无 效 的 通 道 组 号 。HI_ERR_VENC_INVALID_DEVID 无 效 的 设 备 号 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 用 户 发 送 原 始 图 像 必 须 为 Semi-planar YUV 4:2:0 格 式 , 如 果 是 场 图 像 , 必 须 是 2场 Interlaced 的 一 帧 图 像 。• ViDevId 和 ViChn 指 定 一 个 虚 拟 的 VI 通 道 , 在 编 码 器 接 收 原 始 图 像 进 行 编 码 前 ,用 户 需 要 把 对 应 的 通 道 组 绑 定 到 该 虚 拟 VI,VI 设 备 或 者 通 道 超 出 会 返 回HI_ERR_VENC_INVALID_DEVID 或 者 HI_ERR_VENC_INVALID_CHNID。6-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码• 当 开 启 Deinterlace 功 能 时 , 只 有 输 入 的 原 始 图 像 超 过 2 帧 才 能 进 行 编 码 。 如 果 开启 时 域 滤 波 功 能 , 则 需 要 超 过 3 帧 才 能 进 行 编 码 。 因 此 对 视 频 输 入 的 原 始 图 像 开启 Deinterlace 功 能 时 , 编 码 器 不 会 对 最 后 一 帧 原 始 图 像 进 行 编 码 , 而 开 启 时 域 滤波 后 , 第 一 帧 和 最 后 一 帧 都 不 会 进 行 编 码 。• 视 频 输 入 的 原 始 图 像 大 小 必 须 大 于 或 者 等 于 与 该 视 频 输 入 通 道 绑 定 的 编 码 通 道 的编 码 图 像 大 小 , 否 则 编 码 器 不 会 编 码 。• 此 版 本 bIDR 无 效 , 设 置 为 HI_TRUE 或 者 HI_FALSE 结 果 一 样 。【 举 例 】请 参 见 HI_MPI_VENC_CreateGroup 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_SetWmAttr【 描 述 】设 置 编 码 数 字 水 印 的 属 性 。【 语 法 】HI_S32 HI_MPI_VENC_SetWmAttr(VENC_CHN VeChn, VENC_WM_ATTR_S *pstWm);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstWm 编 码 数 字 水 印 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-35


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。• 如 果 pstWm 为 空 , 则 返 回 HI_ERR_VENC_NULL_PTR。• 必 须 在 水 印 禁 用 的 情 况 下 才 能 设 置 水 印 属 性 , 否 则 返 回HI_ERR_VENC_NOT_PERM。• 数 字 水 印 的 密 钥 必 须 为 8 字 节 , 数 字 水 印 字 符 必 须 为 16 字 节 , 否 则 会 在 提 取 的 时候 出 现 乱 码 , 对 于 不 足 的 情 况 可 以 用 空 格 补 足 。【 举 例 】VENC_WM_ATTR_S stWm;memcpy(stWm.au8Key, "hisilicon ", strlen("hisilicon "));memcpy(stWm.au8User, "sdk ", strlen("sdk "));s32Ret = HI_MPI_VENC_SetWmAttr(VeChn, &stWm);if (HI_SUCCESS != s32Ret){Return HI_FAILURE;}s32Ret = HI_MPI_VENC_EnableWm(VeChn);if (HI_SUCCESS != s32Ret){Return HI_FAILURE;}【 相 关 主 题 】无 。6-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码HI_MPI_VENC_GetWmAttr【 描 述 】获 取 编 码 数 字 水 印 的 属 性 。【 语 法 】HI_S32 HI_MPI_VENC_GetWmAttr(VENC_CHN VeChn, VENC_WM_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstWm 编 码 数 字 水 印 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-37


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 如 果 pstWm 为 空 , 则 返 回 HI_ERR_VENC_NULL_PTR。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_EnableWm【 描 述 】启 用 编 码 数 字 水 印 。【 语 法 】HI_S32 HI_MPI_VENC_EnableWm(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】6-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 通 道 未 创 建 , 则 返 回 HI_ERR_VENC_UNEXIST。• 仅 支 持 大 码 流 H.264 编 码 数 字 水 印 功 能 , 否 则 返 回HI_ERR_VENC_NOT_SUPPORT。• 可 以 在 存 储 码 流 中 间 启 用 水 印 。 如 果 开 启 水 印 , 从 开 启 时 到 码 流 文 件 结 束 前 , 一旦 发 现 水 印 信 息 错 误 或 者 没 有 水 印 , 解 码 时 均 会 反 馈 水 印 被 篡 改 。 因 此 在 需 要 检测 水 印 的 码 流 存 储 结 束 前 , 不 要 禁 用 水 印 , 否 则 会 引 起 误 报 。【 举 例 】请 参 考 HI_MPI_VENC_SetWmAttr 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VENC_DisableWm【 描 述 】禁 用 编 码 数 字 水 印 。【 语 法 】HI_S32 HI_MPI_VENC_DisableWm(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-39


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_SetMaxStreamCnt【 描 述 】设 置 码 流 缓 存 帧 数 。【 语 法 】HI_S32 HI_MPI_VENC_SetMaxStreamCnt(VENC_CHN VeChn,HI_U32 u32MaxStrmCnt);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入u32MaxStrmCnt 最 大 码 流 缓 存 帧 数 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。6-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码返 回 值描 述非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 设 置 成 功 后 ,Buffer 中 缓 存 的 码 流 帧 数 将 不 会 超 过 设 置 值 。 若 缓 存 码 流 帧 数 已 达到 设 置 值 , 将 会 丢 弃 当 前 待 编 码 图 像 。• 建 议 在 启 动 编 码 前 进 行 设 置 , 不 建 议 在 编 码 过 程 中 动 态 调 整 。• 该 接 口 允 许 多 次 调 用 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_GetMaxStreamCnt【 描 述 】获 取 码 流 缓 存 帧 数 。【 语 法 】HI_S32 HI_MPI_VENC_GetMaxStreamCnt(VENC_CHN VeChn,HI_U32 *pu32MaxStrmCnt);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-41


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pu32MaxStrmCnt 最 大 码 流 缓 存 帧 数 的 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_SetH264eRcPara【 描 述 】设 置 H.264 编 码 的 码 率 控 制 参 数 。6-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 语 法 】HI_S32 HI_MPI_VENC_SetH264eRcPara(VENC_CHN VeChn, VENC_ATTR_H264_RC_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr H264 编 码 的 码 率 控 制 参 数 指 针 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_ILLEGAL_PARAM参 数 错 误HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 此 接 口 只 对 H.264 协 议 有 效 , 是 高 级 功 能 接 口 , 一 般 情 况 下 无 需 使 用 。• 最 大 QP、 最 小 QP 仅 对 VBR 有 效 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-43


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 若 设 置 最 大 QP 或 最 小 QP, 实 际 码 率 可 能 无 法 满 足 用 户 设 置 的 码 率 要 求 。OSD 区域 的 QP 不 受 用 户 设 置 值 的 影 响 。• 若 设 置 码 率 控 制 不 丢 帧 , 实 际 码 率 可 能 会 超 出 目 标 码 率 却 无 法 得 到 控 制 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_GetH264eRcPara【 描 述 】获 取 H.264 编 码 的 码 率 控 制 参 数 。【 语 法 】HI_S32 HI_MPI_VENC_GetH264eRcPara(VENC_CHN VeChn, VENC_ATTR_H264_RC_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr H264 编 码 的 码 率 控 制 参 数 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。6-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码接 口 返 回 值含 义HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_MPI_VENC_GetFd【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】若 获 取 到 的 最 大 QP、 最 小 QP 值 为 -1, 则 表 示 用 户 没 有 设 置 该 参 数 。【 举 例 】无 。【 相 关 主 题 】无 。【 描 述 】获 取 编 码 通 道 对 应 的 设 备 文 件 句 柄 。【 语 法 】HI_S32 HI_MPI_VENC_GetFd(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-45


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_CfgMestPara【 描 述 】设 置 编 码 通 道 运 动 估 计 参 数 。【 语 法 】HI_S32 HI_MPI_VENC_CfgMestPara(VENC_CHN VeChn, VENC_ATTR_MEPARA_S *pstParam );【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstParam 运 动 估 计 参 数 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。6-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 错 误 码 】接 口 返 回 值含 义HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_NOT_PERM 操 作 不 允 许 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】此 接 口 只 对 H.264 协 议 有 效 , 是 高 级 功 能 接 口 , 一 般 情 况 下 无 需 使 用 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_SetH264eNaluPara【 描 述 】设 置 H.264 编 码 的 nalu 划 分 参 数 。【 语 法 】HI_S32 HI_MPI_VENC_SetH264eNaluPara( VENC_CHN VeChn,VENC_ATTR_H264_NALU_S *pstH264eNalu);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstH264eNalu H.264 编 码 的 nalu 划 分 指 针 。 输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-47


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_ILLEGAL_PARAM 参 数 错 误 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 默 认 编 码 方 式 为 一 帧 一 个 Slice, 可 通 过 该 接 口 设 置 为 一 帧 多 个 Slice。• 此 接 口 只 对 H.264 协 议 有 效 , 是 高 级 功 能 接 口 , 一 般 情 况 下 无 需 使 用 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_GetH264eNaluPara【 描 述 】获 取 H.264 编 码 的 nalu 划 分 参 数 。【 语 法 】6-48海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码HI_S32 HI_MPI_VENC_GetH264eNaluPara( VENC_CHN VeChn,VENC_ATTR_H264_NALU_S *pstH264eNalu);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstH264eNalu H.264 编 码 的 nalu 划 分 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-49


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考无 。HI_MPI_VENC_SetH264eRefMode【 描 述 】设 置 H.264 编 码 的 跳 帧 参 考 模 式 。【 语 法 】HI_S32 HI_MPI_VENC_SetH264eRefMode(VENC_CHN VeChn,VENC_ATTR_H264_REF_MODE_E enRefMode);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入enRefMode H.264 编 码 的 跳 帧 参 考 模 式 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_ILLEGAL_PARAM 参 数 错 误 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a6-50海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 注 意 】此 接 口 只 对 H.264 协 议 有 效 , 是 高 级 功 能 接 口 , 一 般 情 况 下 无 需 使 用 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_GetH264eRefMode【 描 述 】获 取 H.264 编 码 的 跳 帧 参 考 模 式 。【 语 法 】HI_S32 HI_MPI_VENC_GetH264eRefMode(VENC_CHN VeChn,VENC_ATTR_H264_REF_MODE_E *penRefMode);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入penRefMode H.264 编 码 的 跳 帧 参 考 模 式 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-51


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_SetParamSet【 描 述 】设 置 编 码 参 数 集 合 。【 语 法 】HI_S32 HI_MPI_VENC_SetParamSet(VENC_CHN VeChn, VENC_PARAM_SET_S *pstParamSet);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstParamSet 编 码 参 数 集 合 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。6-52海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 用 户 可 以 通 过 该 接 口 设 置 特 定 的 编 码 参 数 。• 系 统 有 默 认 的 编 码 参 数 , 一 般 情 况 下 无 需 调 用 该 接 口 进 行 设 置 。• 必 须 在 创 建 通 道 之 后 、 启 动 编 码 之 前 设 置 。 若 编 码 启 动 , 该 接 口 将 不 再 支 持 。• 注 销 通 道 的 操 作 , 不 会 影 响 已 设 置 的 参 数 集 。• 建 议 使 用 方 式 : 先 调 用 HI_MPI_VENC_GetParamSet 获 取 系 统 默 认 编 码 参 数 集合 , 然 后 更 改 用 户 希 望 修 改 的 参 数 , 再 调 用 HI_MPI_VENC_SetParamSet 接 口 设置 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_GetParamSet【 描 述 】获 取 编 码 参 数 集 合 。【 语 法 】HI_S32 HI_MPI_VENC_GetParamSet(VENC_CHN VeChn, VENC_PARAM_SET_S *pstParamSet);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-53


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstParamSet 编 码 参 数 集 合 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 若 用 户 未 设 置 编 码 参 数 集 合 , 则 返 回 系 统 默 认 的 参 数 集 合 。【 举 例 】无 。【 相 关 主 题 】无 。6-54海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码HI_MPI_VENC_SetMeParam【 描 述 】设 置 编 码 运 动 估 计 参 数 。【 语 法 】HI_S32 HI_MPI_VENC_SetMeParam(VENC_CHN VeChn, VENC_ME_PARAM_S*pstMeParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstMeParam 编 码 运 动 估 计 参 数 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-55


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VENC_GetMeParam【 描 述 】获 取 编 码 运 动 估 计 参 数 。【 语 法 】HI_S32 HI_MPI_VENC_GetMeParam(VENC_CHN VeChn, VENC_ME_PARAM_S*pstMeParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstMeParam 编 码 运 动 估 计 参 数 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VENC_INVALID_CHNID 通 道 号 错 误 。HI_ERR_VENC_NULL_PTR 空 指 针 。HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。6-56海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码接 口 返 回 值含 义HI_ERR_VENC_UNEXIST 通 道 不 存 在 。HI_ERR_VENC_NOT_SUPPORT 不 支 持 。HI_ERR_VENC_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 若 用 户 未 设 置 编 码 运 动 估 计 参 数 , 则 返 回 系 统 默 认 参 数 。【 举 例 】无 。【 相 关 主 题 】无 。6.4 数 据 类 型相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• H264E_NALU_TYPE_E: 定 义 H.264 码 流 NALU 类 型 。• JPEGE_PACK_TYPE_E: 定 义 JPEG 码 流 的 PACK 类 型 。• MPEG4E_PACK_TYPE_E: 定 义 MPEG4 码 流 的 PACK 类 型 。• VENC_DATA_TYPE_U: 定 义 码 流 结 果 联 合 体 。• VENC_PACK_S: 定 义 帧 码 流 包 结 构 体 。• VENC_STREAM_S: 定 义 帧 码 流 类 型 结 构 体 。• VENC_ATTR_H264_S: 定 义 H.264 编 码 属 性 结 构 体 。• VENC_ATTR_MJPEG_S: 定 义 MJPEG 编 码 属 性 结 构 体 。• VENC_ATTR_JPEG_S: 定 义 JPEG 抓 拍 编 码 属 性 结 构 体 。• VENC_ATTR_MPEG4_S: 定 义 MPEG4 编 码 通 道 属 性 结 构 体 。• VENC_ATTR_MEPARA_S: 定 义 视 频 编 码 搜 索 窗 设 置 结 构 体 。• H264_VENC_CAPABILITY_S: 定 义 H.264 私 有 能 力 集 描 述 结 构 体 。• JPEG_VENC_CAPABILITY_S: 定 义 JPEGE 私 有 能 力 集 描 述 结 构 体 。• VENC_CHN_ATTR_S: 定 义 编 码 通 道 属 性 结 构 体 。• VENC_CHN_STAT_S: 定 义 编 码 通 道 的 状 态 结 构 体 。• VENC_CAPABILITY_S: 定 义 编 码 通 道 编 码 能 力 集 结 构 体 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-57


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考H264E_NALU_TYPE_E• VENC_WM_ATTR_S: 定 义 编 码 的 数 字 水 印 的 结 构 体 。• VENC_ATTR_H264_RC_S: 定 义 H264 编 码 的 码 率 控 制 参 数 的 结 构 体 。• VENC_ATTR_H264_NALU_S: 定 义 H.264 编 码 的 nalu 大 小 设 置 结 构 体 。• VENC_ATTR_H264_REF_MODE_E: 定 义 H.264 编 码 的 跳 帧 参 考 模 式 。• RC_MODE_E: 定 义 H.264 编 码 的 码 率 控 制 模 式 。• VENC_PARAM_SET_H264_S: 定 义 H.264 编 码 参 数 集 合 。• VENC_PARAM_SET_JPEG_S: 定 义 JPEG 编 码 参 数 集 合 。• VENC_PARAM_SET_MJPEG_S: 定 义 MJPEG 编 码 参 数 集 合 。• VENC_PARAM_SET_S: 定 义 编 码 参 数 集 合 。• VENC_ME_PARAM_H264_S: 定 义 H.264 编 码 运 动 估 计 参 数 。• VENC_ME_PARAM_S: 定 义 编 码 运 动 估 计 参 数 。【 说 明 】定 义 H.264 码 流 NALU 类 型 。【 定 义 】typedef enum hiH264E_NALU_TYPE_E{H264E_NALU_PSLICE = 1,H264E_NALU_ISLICE = 5,H264E_NALU_SEI = 6,H264E_NALU_SPS = 7,H264E_NALU_PPS = 8,H264E_NALU_BUTT} H264E_NALU_TYPE_E;【 成 员 】成 员 名 称描 述H264E_NALU_PSLICE PSLICE 类 型 。H264E_NALU_ISLICE ISLICE 类 型 。H264E_NALU_SEI SEI 类 型 。H264E_NALU_SPS SPS 类 型 。H264E_NALU_PPS PPS 类 型 。【 注 意 事 项 】无 。6-58海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码JPEGE_PACK_TYPE_E【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 JPEG 码 流 的 PACK 类 型 。【 定 义 】typedef enum hiJPEGE_PACK_TYPE_E{JPEGE_PACK_ECS = 5,JPEGE_PACK_APP = 6,JPEGE_PACK_VDO = 7,JPEGE_PACK_PIC = 8,JPEGE_PACK_BUTT} JPEGE_PACK_TYPE_E;【 成 员 】成 员 名 称描 述JPEGE_PACK_ECS ECS 类 型 。JPEGE_PACK_APP APP 类 型 。JPEGE_PACK_VDO VDO 类 型 。JPEGE_PACK_PIC PIC 类 型 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。MPEG4E_PACK_TYPE_E【 说 明 】定 义 MPEG4 码 流 的 PACK 类 型 。【 定 义 】typedef enum hiMPEG4E_PACK_TYPE_E{MPEG4E_PACK_VO = 1,MPEG4E_PACK_VOS = 2,文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-59


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考MPEG4E_PACK_VOL = 3,MPEG4E_PACK_VOP = 4,MPEG4E_PACK_SLICE = 5} MPEG4E_PACK_TYPE_E;【 成 员 】成 员 名 称描 述MPEG4E_PACK_VO VO 类 型 。MPEG4E_PACK_VOS VOS 类 型 。MPEG4E_PACK_VOL VOL 类 型 。MPEG4E_PACK_VOP VOP 类 型 。VENC_DATA_TYPE_U【 注 意 事 项 】此 版 本 暂 不 支 持 MPEG4 编 码 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 码 流 结 果 类 型 。【 定 义 】typedef union hiVENC_DATA_TYPE_U{H264E_NALU_TYPE_E enH264EType;JPEGE_PACK_TYPE_E enJPEGEType;MPEG4E_PACK_TYPE_E enMPEG4EType;}VENC_DATA_TYPE_U;【 成 员 】成 员 名 称描 述enH264EType H.264 码 流 包 类 型 。enJPEGEType JPEG 码 流 包 类 型 。enMPEG4EType MPEG4 码 流 包 类 型 。【 注 意 事 项 】6-60海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码VENC_PACK_S此 版 本 暂 不 支 持 MPEG4 编 码 。【 相 关 数 据 类 型 及 接 口 】• H264E_NALU_TYPE_E• JPEGE_PACK_TYPE_E• MPEG4E_PACK_TYPE_E【 说 明 】定 义 帧 码 流 包 结 构 体 。【 定 义 】typedef struct hiVENC_PACK_S{HI_U32u32PhyAddr[2];HI_U8*pu8Addr[2];HI_U32u32Len[2];VENC_DATA_TYPE_U DataType;HI_U64HI_BOOLHI_BOOL}VENC_PACK_S;u64PTS;bFieldEnd;bFrameEnd;【 成 员 】成 员 名 称描 述pu8Addr[2] 码 流 包 首 地 址 。u32PhyAddr[2] 码 流 包 物 理 地 址 。u32Len[2] 码 流 包 长 度 。DataType 码 流 类 型 。u64PTS时 间 戳 。 单 位 :us。bFieldEnd 场 结 束 标 识 。取 值 范 围 :HI_TRUE: 该 码 流 包 是 该 场 的 最 后 一 个 包 。HI_FALSE: 该 码 流 包 不 是 该 场 的 最 后 一 个 包 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-61


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述bFrameEnd 帧 结 束 标 识 。取 值 范 围 :HI_TRUE: 该 码 流 包 是 该 帧 的 最 后 一 个 包 。HI_FALSE: 该 码 流 包 不 是 该 场 的 最 后 一 个 包 。VENC_STREAM_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】VENC_DATA_TYPE_U【 说 明 】定 义 帧 码 流 类 型 结 构 体 。【 定 义 】typedef struct hiVENC_STREAM_S{VENC_PACK_S *pstPack;HI_U32 u32PackCount;HI_U32 u32Seq;}VENC_STREAM_S;【 成 员 】成 员 名 称描 述pstPack 帧 码 流 包 结 构 。u32PackCount 一 帧 码 流 的 所 有 包 的 个 数 。u32Seq 码 流 序 列 号 。按 帧 获 取 帧 序 号 ; 按 包 获 取 包 序 号 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• VENC_PACK_S• HI_MPI_VENC_GetStream6-62海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码VENC_ATTR_H264_S【 说 明 】定 义 H.264 编 码 属 性 结 构 体 。【 定 义 】typedef struct hiVENC_ATTR_H264_S{HI_U32 u32Priority;HI_U32 u32PicWidth;HI_U32 u32PicHeight;HI_U32 u32ViFramerate;HI_BOOL bMainStream;HI_BOOL bVIField;HI_U32 u32BufSize;HI_BOOL bByFrame;HI_BOOL bField;HI_U32 u32TargetFramerate;HI_U32 u32Gop;HI_U32 u32MaxDelay;RC_MODE_E enRcMode;HI_U32 u32Bitrate;HI_U32 u32PicLevel;HI_S32 s32QpI;HI_S32 s32QpP;HI_S32 s32Minutes;}VENC_ATTR_H264_S;【 成 员 】成 员 名 称描 述u32Priority 通 道 优 先 级 。目 前 未 使 用 , 取 值 不 限 。u32PicWidth 编 码 图 像 宽 度 。取 值 范 围 :[160, 2048], 以 像 素 为 单 位 。静 态 属 性 。u32PicHeight 编 码 图 像 宽 度 。取 值 范 围 :[112, 1536], 以 像 素 为 单 位 。静 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-63


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述u32ViFramerate VI 输 入 的 帧 率 ( 原 始 帧 率 )。取 值 范 围 :• P 制 :(0, 25], 以 帧 为 单 位 。• N 制 :(0, 30], 以 帧 为 单 位 。静 态 属 性 。bMainStream 主 次 码 流 标 识 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 主 码 流 。• HI_FALSE: 次 码 流 。静 态 属 性 。bVIField 输 入 图 像 的 帧 场 标 志 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 场 。• HI_FALSE: 帧 。静 态 属 性 。 目 前 未 使 用 。u32BufSize 码 流 buffer 大 小 。取 值 范 围 :[Min, Max], 以 byte 为 单 位 。推 荐 值 : 一 幅 YUV420 编 码 图 像 大 小 。 以 编 码 D1 图 像 为例 , 推 荐 值 为 704×576×1.5 byte。最 小 值 : 一 幅 YUV420 编 码 图 像 大 小 的 的 1/2。最 大 值 : 无 限 制 , 但 是 会 消 耗 更 多 的 内 存 。静 态 属 性 。bByFrame 帧 / 包 模 式 获 取 码 流 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 按 帧 获 取 。• HI_FALSE: 按 包 获 取 。静 态 属 性 。bField 帧 场 编 码 模 式 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 场 编 码 。• HI_FALSE: 帧 编 码 。静 态 属 性 。6-64海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码成 员 名 称描 述u32TargetFramerate 目 标 帧 率 。取 值 范 围 :• P 制 :[1/16, 25], 以 帧 / 秒 为 单 位 。• N 制 :[1/16, 30], 以 帧 / 秒 位 单 位 。整 数 : 高 16bit 为 0。分 数 : 高 16bit 为 分 母 , 低 16bit 为 分 子 。动 态 属 性 。u32Gop I 帧 间 隔 。取 值 范 围 :[0, 1000], 以 帧 为 单 位 。动 态 属 性 。u32MaxDelay 最 大 延 迟 。 目 前 未 使 用 。取 值 范 围 : 最 大 延 迟 , 以 帧 为 单 位 。动 态 属 性 。enRcMode 码 率 控 制 模 式 。取 值 范 围 :[0, 3]。0:VBR 模 式 。1:CBR 模 式 。2:ABR 模 式 。3:FIXQP。动 态 属 性 。u32Bitrate CBR/ABR 模 式 , 表 示 平 均 码 率 。VBR 模 式 , 表 示 最 大 码 率 。FIXQP 模 式 , 该 值 无 效 。取 值 范 围 :[1, 20000], 单 位 Kbps。动 态 属 性 。u32PicLevel 图 像 等 级 , 仅 VBR/CBR 模 式 下 有 效 。VBR 模 式 下 , 表 示 图 像 的 质 量 等 级 。取 值 范 围 :[0, 5], 值 越 小 , 图 像 质 量 越 好 。CBR 模 式 下 , 表 示 码 率 波 动 范 围 。取 值 范 围 :[0, 5]。0: 由 SDK 软 件 自 行 控 制 码 率 , 推 荐 使 用 。1~5: 对 应 码 率 波 动 范 围 分 别 为 ±10%~±50%。s32QpI I 帧 QP。FIXQP 模 式 下 有 效 。取 值 范 围 :[10, 50]。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-65


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述s32QpP P 帧 QP。FIXQP 模 式 下 有 效 。取 值 范 围 :[10, 50]。s32Minutes 码 率 统 计 时 段 。ABR 模 式 下 有 效 。ABR, 即 码 率 短 时 间 波 动 , 长 时 间 平 稳 。长 时 间 码 率 的 统 计 , 以 此 时 间 为 准 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】RC_MODE_EVENC_ATTR_MJPEG_S【 说 明 】定 义 MJPEG 编 码 属 性 结 构 体 。【 定 义 】typedef struct hiVENC_ATTR_MJPEG_S{HI_U32 u32Priority;HI_U32 u32BufSize;HI_U32 u32PicWidth;HI_U32 u32PicHeight;HI_BOOL bByFrame;HI_U32 u32ViFramerate;HI_BOOL bMainStream;HI_BOOL bVIField;HI_U32 u32TargetBitrate;HI_U32 u32TargetFramerate;HI_U32 u32MCUPerECS;}VENC_ATTR_MJPEG_S;【 成 员 】成 员 名 称描 述u32Priority 通 道 优 先 级 。目 前 未 使 用 , 取 值 不 限6-66海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码成 员 名 称描 述u32BufSize 配 置 buffer 大 小 。取 值 范 围 : 不 小 于 图 像 宽 高 乘 积 的 1.5 倍 。静 态 属 性 。u32PicWidth 编 码 图 像 宽 度 。取 值 范 围 :[160, 2048], 以 像 素 为 单 位 。静 态 属 性 。u32PicHeight 编 码 图 像 高 度 。取 值 范 围 :[112, 1536], 以 像 素 为 单 位 。静 态 属 性 。bByFrame 获 取 码 流 模 式 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 按 帧 获 取 。• HI_FALSE: 按 包 获 取 。静 态 属 性 。u32ViFramerate 原 始 帧 率 。取 值 范 围 :• PAL:(0, 25], 以 帧 为 单 位 。• NTSC:(0, 30], 以 帧 为 单 位 。静 态 属 性 。bMainStream 主 次 码 流 标 志 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 主 码 流 。• HI_FALSE: 次 码 流 。静 态 属 性 。bVIField 输 入 图 像 的 帧 场 标 志 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 场 。• HI_FALSE: 帧 。静 态 属 性 。u32TargetBitrate 目 标 码 率 。取 值 范 围 :[1, 20480], 单 位 Kbps。动 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-67


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述u32TargetFramerate 目 标 帧 率 。取 值 范 围 :P 制 (0, 25], 以 帧 为 单 位 。N 制 (0, 30], 以 帧 为 单 位 。动 态 属 性 。u32MCUPerECS 每 个 ECS 中 MCU 个 数 。取 值 范 围 :[0, MCU 总 数 ]。 建 议 不 小 于 16 个 。MCU 总 数 即 图 像 中 宏 块 (16 像 素 %16 像 素 ) 个 数 。动 态 属 性 。0 表 示 不 划 分 ECS, 为 推 荐 设 置 。 与 设 置 为(u32PicWidth%u32PicHeight) / 256 等 效 。VENC_ATTR_JPEG_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 JPEG 抓 拍 属 性 结 构 体 。【 定 义 】typedef struct hiVENC_ATTR_JPEG_S{HI_U32 u32Priority;HI_U32 u32BufSize;HI_U32 u32PicWidth;HI_U32 u32PicHeight;HI_BOOL bVIField;HI_BOOL bByFrame;HI_U32 u32MCUPerECS;HI_U32 u32ImageQuality;}VENC_ATTR_JPEG_S;【 成 员 】6-68海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码成 员 名 称描 述u32Priority 通 道 优 先 级 。目 前 未 使 用 , 取 值 不 限u32BufSize 配 置 buffer 大 小 。取 值 范 围 : 不 小 于 图 像 宽 高 乘 积 的 1.5 倍 。静 态 属 性 。u32PicWidth 编 码 图 像 宽 度 。取 值 范 围 :[80, 2048]。静 态 属 性 。u32PicHeight 编 码 图 像 高 度 。取 值 范 围 :[64, 1536]。静 态 属 性 。bVIField 输 入 图 像 的 帧 场 标 志 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 场 。• HI_FALSE: 帧 。静 态 属 性 。bByFrame 获 取 码 流 模 式 , 帧 或 包 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 按 帧 获 取 。• HI_FALSE: 按 包 获 取 。静 态 属 性 。u32MCUPerECS 每 个 ECS 中 MCU 个 数 。取 值 范 围 :[0, MCU 总 数 ]。建 议 不 小 于 16 个 。MCU 总 数 即 图 像 中 宏 块 (16 像 素 ×16 像 素 ) 个 数 。动 态 属 性 。0 表 示 不 划 分 ECS, 为 推 荐 设 置 。 与 设 置 为 (u32PicWidth×u32PicHeight) / 256 等 效 。u32ImageQuality 抓 拍 图 像 质 量 。取 值 范 围 :[0, 5]。数 字 越 小 , 图 像 质 量 越 好 。动 态 属 性 。【 注 意 事 项 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-69


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考无 。【 相 关 数 据 类 型 及 接 口 】无 。VENC_ATTR_MPEG4_S【 说 明 】MPEG4 编 码 属 性 结 构 体 。【 定 义 】typedef struct hiVENC_ATTR_MPEG4_S{HI_U32 u32Priority;HI_U32 u32PicWidth;HI_U32 u32PicHeight;HI_U32 u32TargetBitrate;HI_U32 u32ViFramerate;HI_U32 u32TargetFramerate;HI_U32 u32Gop;HI_U32 u32MaxDelay;M4Qtype enQuantType;HI_U32 u32BufSize;HI_BOOL bVIField;HI_BOOL bByFrame;}VENC_ATTR_MPEG4_S;【 成 员 】成 员 名 称描 述u32Priority 通 道 优 先 级 。取 值 范 围 :(0, 7)。0 最 高 ,7 最 低 。静 态 属 性 。目 前 无 效 。u32PicWidth 图 像 宽 度 。取 值 范 围 :QCIF(PAL:176×144,NTSC:176×112)。静 态 属 性 。u32PicHeight 图 像 高 度 。取 值 范 围 :QCIF(PAL:176×144,NTSC:176×112)。静 态 属 性 。6-70海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码成 员 名 称描 述u32TargetBitrate 目 标 码 率 。取 值 范 围 :[1, 64], 以 kbit/s 为 单 位 。动 态 属 性 。u32ViFramerate 原 始 帧 率 。取 值 范 围 :[1, 15]。 以 帧 每 秒 (f/s) 为 单 位 。静 态 属 性 。u32TargetFramerate 目 标 帧 率 。取 值 范 围 :[1, 15]。 以 帧 每 秒 (f/s) 为 单 位 。动 态 属 性 。u32Gop I 帧 间 隔 。动 态 属 性 。u32MaxDelay 最 大 延 迟 。取 值 范 围 :[5, 20]。 以 帧 为 单 位 。静 态 属 性 。enQuantType MPEG4 编 码 量 化 方 式 。动 态 属 性 。u32BufSize 配 置 码 流 buffer 大 小 。取 值 范 围 : 应 大 于 图 像 大 小 。静 态 属 性 。bVIField 输 入 图 像 的 帧 场 标 志 。静 态 属 性 。bByFrame 帧 / 包 模 式 获 取 码 流 方 式 。静 态 属 性 。目 前 只 支 持 按 帧 获 取 。【 注 意 事 项 】本 版 本 不 支 持 MPEG4 编 码 。【 相 关 数 据 类 型 及 接 口 】无 。VENC_ATTR_MEPARA_S【 说 明 】定 义 视 频 编 码 运 动 估 计 参 数 的 结 构 体 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-71


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 定 义 】typedef struct hiVENC_ATTR_MEPARA_S{HI_S32 s32HWSize;HI_S32 s32VWSize;HI_S32 s32IterNum[8];HI_S32 s32Denoise[2];HI_S32 s32RefPicNum;} VENC_ATTR_MEPARA_S;【 成 员 】成 员 名 称描 述s32HWSize 水 平 搜 索 窗 。取 值 范 围 :[0, 2]。0:[-16, +15]。1:[-32, +31]。2:[-64, +63]。默 认 值 为 1。s32VWSize 垂 直 搜 索 窗 。取 值 范 围 :[0, 1]。0:[-16, +15]。1:[-32, 31]。默 认 值 为 0。s32IterNum[8] 保 留 。s32Denoise[2] 保 留 。s32RefPicNum 保 留 。【 注 意 事 项 】• 不 推 荐 将 s32HWSize 和 s32VWSize 值 设 置 为 0。• 搜 索 窗 越 大 , 消 耗 的 带 宽 越 多 , 可 能 会 对 软 件 性 能 造 成 影 响 。• 接 口 中 其 他 参 数 保 留 , 暂 不 使 用 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_CfgMestPara6-72海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码H264_VENC_CAPABILITY_S【 说 明 】H.264 私 有 能 力 集 描 述 结 构 体 。【 定 义 】typedef struct hiH264_VENC_CAPABILITY_S{HI_U8 u8Profile;HI_U8 u8Level;HI_U8 u8BaseAttr;HI_U8 u8ViFormat;HI_U8 u8MaxWInMb;HI_U8 u8MaxHInMb;HI_U16 u16MaxCifNum;HI_U16 u16MaxBitrate;HI_U16 upperbandwidth;HI_U16 lowerbandwidth;HI_U8 palfps;HI_U8 ntscfps;}H264_VENC_CAPABILITY_S;【 成 员 】成 员 名 称u8Profileu8Levelu8BaseAttr描 述编 码 profile。0:baseline。1:mainprofile。2:externed profile。编 码 level。例 如 22 表 示 level2.2。Bit[0:5] 分 别 表 示 MBAFF、PAFF、B SLICE、FMO、ASO和 PARTITION。u8ViFormat 支 持 输 入 制 式 。bit0:PAL(25)。bit1:NTSC(30)。u8MaxWInMb 输 入 图 像 宽 度 的 最 大 尺 寸 。以 16 像 素 为 单 位 。u8MaxHInMb 输 入 图 像 高 度 的 最 大 尺 寸 。以 16 像 素 为 单 位 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-73


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述u16MaxCifNum 最 大 编 码 能 力 , 多 通 道 总 和 。以 CIF 为 单 位 。u16MaxBitrate 最 大 单 通 道 输 出 码 率 能 力 。以 kbit/s 为 单 位 。upperbandwidth 带 宽 上 限 。以 kbit/s 为 单 位 。lowerbandwidth 带 宽 下 限 。以 kbit/s 为 单 位 。palfps PAL 制 式 帧 率 。以 帧 每 秒 (f/s) 为 单 位 。ntscfps NTSC 制 式 帧 率 。以 帧 每 秒 (f/s) 为 单 位 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。JPEG_VENC_CAPABILITY_S【 说 明 】JPEG 私 有 能 力 集 描 述 结 构 体 。【 定 义 】typedef struct hiJPEG_VENC_CAPABILITY_S{HI_U8 u8Profile;HI_U8 u8ViFormat;HI_U8 u8MaxWInMb;HI_U8 u8MaxHInMb;HI_U16 u16MaxCifNum;HI_U16 u16MaxBitrate;HI_U16 upperbandwidth;HI_U16 lowerbandwidth;HI_U8 palfps;HI_U8 ntscfps;}JPEG_VENC_CAPABILITY_S;6-74海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 成 员 】成 员 名 称u8Profile描 述编 码 profile。0:baseline。1:extened profile。2:loseless profile。3:hierarchical profile。u8ViFormat 支 持 输 入 制 式 。bit0:PAL(25)。bit1:NTSC(30)。u8MaxWInMb 输 入 图 像 宽 度 的 最 大 尺 寸 。以 16 像 素 为 单 位 。u8MaxHInMb 输 入 图 像 高 度 的 最 大 尺 寸 。以 16 像 素 为 单 位 。u16MaxCifNum 最 大 编 码 能 力 , 多 通 道 总 和 。以 CIF 为 单 位 。u16MaxBitrate 最 大 单 通 道 输 出 码 率 能 力 。以 kbit/s 为 单 位 。upperbandwidth 带 宽 上 限 。以 kbit/s 为 单 位 。lowerbandwidth 带 宽 下 限 。以 kbit/s 为 单 位 。palfps PAL 制 式 帧 率 。以 帧 每 秒 (f/s) 为 单 位 。ntscfps NTSC 制 式 帧 率 。以 帧 每 秒 (f/s) 为 单 位 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-75


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VENC_CHN_ATTR_S【 说 明 】定 义 编 码 通 道 属 性 结 构 体 。【 定 义 】typedef struct hiVENC_CHN_ATTR_S{PAYLOAD_TYPE_E enType;HI_VOID*pValue;}VENC_CHN_ATTR_S;【 成 员 】成 员 名 称描 述enType 编 码 协 议 类 型 。pValue 编 码 属 性 指 针 。VENC_CHN_STAT_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_CreateChn【 说 明 】定 义 编 码 通 道 的 状 态 结 构 体 。【 定 义 】typedef struct hiVENC_CHN_STAT_S{HI_BOOL bRegistered;HI_U32 u32LeftPics;HI_U32 u32LeftStreamBytes;HI_U32 u32CurPacks;}VENC_CHN_STAT_S;【 成 员 】6-76海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码成 员 名 称描 述bRegistered 注 册 到 通 道 组 标 志 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 注 册 。• HI_FALSE: 未 注 册 。u32LeftPics 待 编 码 的 图 像 数 。u32LeftStreamBytes 码 流 buffer 剩 余 的 byte 数 。u32CurPacks 当 前 帧 的 码 流 包 个 数 。VENC_CAPABILITY_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_Query【 说 明 】定 义 编 码 通 道 编 码 能 力 集 结 构 体 。【 定 义 】typedef struct hiVENC_CAPABILITY_S{PAYLOAD_TYPE_E enType;HI_VOID*pCapability;}VENC_CAPABILITY_S;【 成 员 】成 员 名 称描 述enType 编 码 协 议 类 型 。pCapability 能 力 集 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_GetCapability文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-77


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VENC_WM_ATTR_S【 说 明 】定 义 编 码 的 数 字 水 印 的 结 构 体 。【 定 义 】#define DWM_KEY_LEN 8#define DWM_CHAR_LEN 16typedef struct hiVENC_WM_ATTR_S{HI_U8 au8Key[DWM_KEY_LEN];HI_U8 au8User[DWM_CHAR_LEN];}VENC_WM_ATTR_S;【 成 员 】成 员 名 称描 述DWM_KEY_LEN 密 钥 字 符 的 最 大 个 数 。DWM_CHAR_LEN 水 印 字 符 个 数 。au8Keyau8User数 字 水 印 的 密 钥 字 符 串 。 最 多 8 个 字 符 , 不 满 8 个 字 符 填充 0。数 字 水 印 用 户 字 符 。 个 数 最 多 不 超 过 DWM_CHAR_LEN。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_SetWmAttrVENC_ATTR_H264_RC_S【 说 明 】定 义 H.264 编 码 的 码 率 控 制 参 数 的 结 构 体 。【 定 义 】typedef struct hiVENC_ATTR_H264_RC_S{HI_S32 s32MinQP;HI_S32 s32MaxQP;HI_BOOL bFrameFixQP;HI_BOOL bFrameLostAllow;} VENC_ATTR_H264_RC_S;6-78海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 成 员 】成 员 名 称描 述s32MinQP H.264 编 码 的 最 小 量 化 系 数 。 取 值 范 围 :[4, 50]。仅 VBR 模 式 时 生 效 。默 认 值 :-1。 表 示 用 户 没 有 设 置 。 一 旦 设 置 ,I、P 帧 使 用的 QP 不 会 小 于 该 值 。OSD 区 域 不 受 该 设 置 值 的 影 响 。s32MaxQP H.264 编 码 的 最 大 量 化 系 数 。 取 值 范 围 :[4, 50]。仅 VBR 模 式 时 生 效 。默 认 值 :-1。 表 示 用 户 没 有 设 置 。 一 旦 设 置 ,I、P 帧 使 用的 QP 不 会 大 于 该 值 。OSD 区 域 不 受 该 设 置 值 的 影 响 。bFrameFixQP帧 固 定 QP。0: 每 一 帧 的 所 有 宏 块 可 以 使 用 不 同 量 化 系 数 。1: 每 一 帧 的 所 有 宏 块 使 用 相 同 的 量 化 系 数 。 包 括 OSD 区域 。bFrameLostAllow 当 码 率 超 出 太 多 时 , 是 否 允 许 通 过 丢 帧 来 控 制 码 率 。0: 不 允 许 。1: 允 许 。默 认 值 :1。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_SetH264eRcParaVENC_ATTR_H264_NALU_S【 说 明 】定 义 H.264 编 码 的 NALU 大 小 设 置 结 构 体 。【 定 义 】typedef struct hiVENC_ATTR_H264_NALU_S{HI_BOOL bNaluSplitEnable;HI_U32 u32NaluSize;} VENC_ATTR_H264_NALU_S;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-79


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 成 员 】成 员 名 称描 述bNaluSplitEnable 是 否 打 开 NALU 划 分 。HI_TURE: 打 开 。HI_FALSE: 关 闭 。u32NaluSizeNALU 划 分 使 能 的 情 况 下 指 定 NALU 的 大 小 , 以 字 节 为 单位 , 在 关 闭 使 能 的 情 况 下 , 此 参 数 无 效 。必 须 满 足 128 ñu32NaluSize ñ 图 象 大 小 ( 包 括 色 度 )。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_SetH264eNaluPara• HI_MPI_VENC_GetH264eNaluParaVENC_ATTR_H264_REF_MODE_E【 说 明 】定 义 H.264 编 码 的 跳 帧 参 考 模 式 。【 定 义 】typedef enum hiVENC_ATTR_H264_REF_MODE_E{H264E_REF_MODE_1X = 1,H264E_REF_MODE_2X = 2,H264E_REF_MODE_4X = 5,H264E_REF_MODE_BUTT,}VENC_ATTR_H264_REF_MODE_E;【 成 员 】成 员 名 称描 述H264E_REF_MODE_1X 正 常 参 考 模 式 。H264E_REF_MODE_2X 间 隔 2 的 跳 帧 参 考 模 式 。H264E_REF_MODE_4X 间 隔 4 的 跳 帧 参 考 模 式 。【 注 意 事 项 】无 。6-80海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetH264eRefMode• HI_MPI_VENC_SetH264eRefModeRC_MODE_E【 说 明 】定 义 H.264 编 码 的 码 率 控 制 模 式 。【 定 义 】typedef enum hiRC_MODE_E{RC_MODE_VBR = 0,RC_MODE_CBR,RC_MODE_ABR,RC_MODE_FIXQP,RC_MODE_BUTT,} RC_MODE_E;【 成 员 】成 员 名 称描 述RC_MODE_VBR 可 变 码 率 模 式 。该 模 式 下 , 码 率 波 动 大 , 图 像 质 量 稳 定 。RC_MODE_CBR 恒 定 码 率 模 式 。该 模 式 下 , 码 率 始 终 保 持 平 稳 。RC_MODE_ABR 平 均 码 率 模 式 。该 模 式 下 , 码 率 长 时 间 平 稳 , 短 时 间 内 波 动 。RC_MODE_FIXQP 固 定 QP 模 式 。该 模 式 下 , 使 用 固 定 的 QP 分 别 编 码 I 帧 和 P 帧 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VENC_CreateChnVENC_PARAM_SET_H264_S【 说 明 】定 义 H.264 编 码 参 数 集 合 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-81


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 定 义 】typedef struct hiVENC_PARAM_SET_H264_S{HI_S32 chroma_qp_index_offset;HI_S32 timing_info_present_flag;HI_S32 num_units_in_tick;HI_S32 time_scale;HI_S32 fixed_frame_rate_flag;HI_S32 pic_order_cnt_type;HI_S32 deblocking_filter_control_present_flag;HI_S32 disable_deblocking_filter_idc;HI_S32 slice_alpha_c0_offset_div2;HI_S32 slice_beta_offset_div2;} VENC_PARAM_SET_H264_S;【 成 员 】成 员 名 称描 述chroma_qp_index_offset H.264 协 议 语 法 元 素 。 色 度 QP 索 引 偏 移 。timing_info_present_flag H.264 协 议 语 法 元 素 。 时 间 信 息 存 在 标 识 。num_units_in_tick H.264 协 议 语 法 元 素 。time_scale H.264 协 议 语 法 元 素 。fixed_frame_rate_flag H.264 协 议 语 法 元 素 。pic_order_cnt_type H.264 协 议 语 法 元 素 。deblocking_filter_control_present_flag H.264 协 议 语 法 元 素 。disable_deblocking_filter_idc H.264 协 议 语 法 元 素 。slice_alpha_c0_offset_div2 H.264 协 议 语 法 元 素 。slice_beta_offset_div2 H.264 协 议 语 法 元 素 。【 注 意 事 项 】编 码 参 数 的 默 认 值 , 未 在 本 文 档 描 述 。 请 通 过 接 口 HI_MPI_VENC_GetParamSet() 查 询最 新 默 认 参 数 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetParamSet• HI_MPI_VENC_SetParamSet6-82海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码VENC_PARAM_SET_JPEG_S【 说 明 】定 义 JPEG 编 码 参 数 集 合 。【 定 义 】typedef struct hiVENC_PARAM_SET_JPEG_S{HI_S32 as32QpOfImgQuality[6];} VENC_PARAM_SET_JPEG_S;【 成 员 】成 员 名 称描 述as32QpOfImgQuality 不 同 抓 拍 图 像 质 量 对 应 的 QP 值 。 尚 不 支 持 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetParamSet• HI_MPI_VENC_SetParamSetVENC_PARAM_SET_MJPEG_S【 说 明 】定 义 MJPEG 编 码 参 数 集 合 。【 定 义 】typedef struct hiVENC_PARAM_SET_MJPEG_S{HI_S32 s32LeftForExtend;} VENC_PARAM_SET_MJPEG_S;【 成 员 】成 员 名 称描 述s32LeftForExtend 保 留 , 供 扩 展 。【 注 意 事 项 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-83


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考VENC_PARAM_SET_S【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetParamSet• HI_MPI_VENC_SetParamSet【 说 明 】定 义 编 码 参 数 集 合 。【 定 义 】typedef struct hiVENC_PARAM_SET_S{PAYLOAD_TYPE_E enPayload;union{VENC_PARAM_SET_H264_S stParamSetH264;VENC_PARAM_SET_JPEG_S stParamSetJpeg;VENC_PARAM_SET_MJPEG_S stParamSetMjpeg;};}VENC_PARAM_SET_S;【 成 员 】成 员 名 称描 述enPayload 协 议 类 型 。stParamSetH264 H.264 编 码 参 数 集 合 。stParamSetJpeg JPEG 编 码 参 数 集 合 。stParamSetMjpeg MJPEG 编 码 参 数 集 合 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetParamSet• HI_MPI_VENC_SetParamSetVENC_ME_PARAM_H264_S【 说 明 】6-84海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码定 义 H.264 运 动 估 计 参 数 。【 定 义 】typedef struct hiVENC_ME_PARAM_S{HI_S32 s32VWSize;HI_S32 s32HWSize;HI_S32 s32InterPredType;HI_S32 s32IntraPredType;}VENC_ME_PARAM_S;【 成 员 】成 员 名 称描 述s32VWSize 垂 直 搜 索 窗 大 小 。 取 值 范 围 :{0,1}。 单 位 : 像 素 。0:[-16, +15]。1:[-32, +31]。s32HWSize 水 平 搜 索 窗 大 小 。 取 值 范 围 :{0,1,2}。 单 位 : 像 素 。0:[-16, +15]。1:[-32, +31]。2:[-64, +63]。s32InterPredType 帧 间 预 测 类 型 。 取 值 范 围 :{0,1,2,3}。0: 支 持 16x16 16x8 8x16 8x8 模 式 。1: 支 持 16x16 16x8 8x16 模 式 。2: 支 持 16x16 8x8 模 式 。3: 支 持 16x16 模 式 。s32IntraPredType 帧 内 预 测 类 型 。 取 值 范 围 :{0,1}。0: 支 持 16x16 4x4 模 式 。1: 支 持 4x4 模 式 。VENC_ME_PARAM_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetMeParam• HI_MPI_VENC_SetMeParam【 说 明 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-85


6 视 频 编 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考定 义 编 码 运 动 估 计 参 数 。【 定 义 】typedef struct hiVENC_ME_PARAM_S{PAYLOAD_TYPE_E enPayload;union{VENC_ME_PARAM_H264_S stMeParamH264;};}VENC_ME_PARAM_S;【 成 员 】成 员 名 称描 述enPayload 协 议 类 型 。stMeParamH264 H.264 运 动 估 计 参 数 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• HI_MPI_VENC_GetMeParam• HI_MPI_VENC_SetMeParam6.5 错 误 码视 频 编 码 API 错 误 码 如 表 6-2 所 示 。表 6-2 视 频 编 码 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0068001 HI_ERR_VENC_INVALID_DEVID 设 备 ID 超 出 合 法 范 围0xA0068002 HI_ERR_VENC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围0xA0068003 HI_ERR_VENC_ILLEGAL_PARAM 参 数 超 出 合 法 范 围0xA0068004 HI_ERR_VENC_EXIST 试 图 申 请 或 者 创 建 已 经 存在 的 设 备 、 通 道 或 者 资 源0xA0068005 HI_ERR_VENC_UNEXIST 试 图 使 用 或 者 销 毁 不 存 在的 设 备 、 通 道 或 者 资 源6-86海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考6 视 频 编 码错 误 代 码 宏 定 义 描 述0xA0068006 HI_ERR_VENC_NULL_PTR 函 数 参 数 中 有 空 指 针0xA0068007 HI_ERR_VENC_NOT_CONFIG 使 用 前 未 配 置0xA0068008 HI_ERR_VENC_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能0xA0068009 HI_ERR_VENC_NOT_PERM 该 操 作 不 允 许 , 如 试 图 修改 静 态 配 置 参 数0xA006800C HI_ERR_VENC_NOMEM 分 配 内 存 失 败 , 如 系 统 内存 不 足0xA006800D HI_ERR_VENC_NOBUF 分 配 缓 存 失 败 , 如 申 请 的数 据 缓 冲 区 太 大0xA006800E HI_ERR_VENC_BUF_EMPTY 缓 冲 区 中 无 数 据0xA006800F HI_ERR_VENC_BUF_FULL 缓 冲 区 中 数 据 满0xA0068010 HI_ERR_VENC_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加载 相 应 模 块文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司6-87


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录7 运 动 侦 测 .......................................................................................................................................7-17.1 概 述 ..............................................................................................................................................................7-17.2 重 要 概 念 ......................................................................................................................................................7-17.3 API 参 考 .......................................................................................................................................................7-27.4 数 据 类 型 ....................................................................................................................................................7-197.5 错 误 码 ........................................................................................................................................................7-26文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测7 运 动 侦 测7.1 概 述移 动 侦 测 是 检 测 正 在 视 频 编 码 的 图 像 是 否 发 生 亮 度 变 化 以 及 相 应 的 运 动 向 量 。 移 动 侦测 通 道 就 是 视 频 编 码 通 道 , 最 大 支 持 运 动 侦 测 路 数 与 编 码 路 数 相 同 。Hi3520/Hi3515 提 供 的 移 动 侦 测 功 能 以 宏 块 为 最 小 单 位 , 计 算 指 定 图 像 的 宏 块 在 指 定 图像 间 隔 内 的 亮 度 变 化 和 运 动 向 量 。 如 需 要 获 取 移 动 侦 测 的 结 果 , 则 启 用 某 一 视 频 编 码通 道 的 移 动 侦 测 功 能 。 移 动 侦 测 的 结 果 包 括 宏 块 SAD、 宏 块 运 动 向 量 MV、 宏 块 报 警信 息 、 宏 块 报 警 像 素 的 个 数 。MD(Move Detect) 模 块 支 持 H.264 编 码 和 MJPEG 编 码 时 进 行 移 动 侦 测 , 针 对 同 一 VI通 道 的 主 次 码 流 , 二 者 只 能 有 一 个 作 MD。7.2 重 要 概 念• MD 图 像 与 MD 参 考 图 像比 较 MD 图 像 与 MD 参 考 图 像 , 来 进 行 移 动 侦 测 。 两 者 均 可 以 随 时 间 而 不 断 更新 。• MD 间 隔MD 图 像 与 MD 参 考 图 像 之 间 的 间 隔 , 单 位 为 帧 。 通 俗 地 讲 , 就 是 几 帧 做 一 次MD。• MD 数 据也 称 MD 结 果 。Hi3520/Hi3515 可 以 输 出 四 种 MD 数 据 : 宏 块 SAD, 宏 块 MV, 宏 块 报 警 信 息 , 宏块 报 警 像 素 个 数 。每 一 种 MD 数 据 是 否 输 出 , 均 可 以 通 过 开 关 进 行 控 制 。SDK 仅 提 供 MD 数 据 , 而 不 进 行 MD 判 决 。 客 户 可 根 据 不 同 的 应 用 选 择 合 适 的MD 数 据 进 行 MD 判 决 , 推 荐 使 用 宏 块 SAD 作 为 MD 判 决 依 据 。• 宏 块将 图 像 划 分 为 16%16( 以 像 素 为 单 位 ) 大 小 的 块 , 每 一 块 称 为 一 个 宏 块 。• 宏 块 SAD文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-1


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考当 前 帧 与 参 考 帧 相 应 宏 块 之 间 的 亮 度 绝 对 差 之 和 。SAD(Sum of Absolute Difference): 绝 对 差 之 和 。宏 块 SAD 越 大 , 说 明 两 帧 对 应 宏 块 间 的 差 别 越 大 。• 宏 块 MV参 考 帧 至 当 前 帧 的 各 帧 中 相 应 宏 块 的 运 动 向 量 的 累 加 值 , 表 示 该 宏 块 运 动 的 方向 。 不 推 荐 MV 作 为 移 动 侦 测 的 判 断 依 据 。MV(Motion Vector) 运 动 向 量 。• 宏 块 报 警 信 息宏 块 是 否 报 警 。在 去 光 照 效 应 不 打 开 的 情 况 下 ,MD 模 块 通 过 比 较 宏 块 SAD 与 用 户 设 置 的 SAD报 警 阈 值 决 定 是 否 报 警 。在 去 光 照 效 应 打 开 的 情 况 下 ,MD 模 块 通 过 宏 块 SAD, 用 户 设 置 的 SAD 报 警 阈值 , 结 合 用 户 设 置 的 像 素 报 警 阈 值 、 像 素 报 警 个 数 阈 值 , 通 过 一 定 去 光 照 效 应 运算 后 得 到 的 结 果 。Hi3520/Hi3515 芯 片 暂 不 支 持 去 光 照 效 应 。只 有 设 定 宏 块 报 警 SAD 阈 值 且 启 用 宏 块 报 警 信 息 输 出 时 , 才 会 输 出 该 信 息 。• 宏 块 报 警 像 素 个 数宏 块 中 报 警 的 像 素 总 数 。MD 模 块 通 过 比 较 像 素 亮 度 差 ( 当 前 帧 和 参 考 帧 之 间 ) 与 用 户 设 置 的 像 素 报 警 阈 值 决定 像 素 是 否 报 警 。只 有 设 定 宏 块 报 警 像 素 阈 值 且 启 用 宏 块 报 警 像 素 个 数 输 出 时 , 才 会 输 出 该 数 据 。7.3 API 参 考HI_MPI_MD_EnableChn该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_MD_EnableChn: 启 用 某 一 路 视 频 编 码 通 道 的 运 动 侦 测 功 能 。• HI_MPI_MD_DisableChn: 禁 用 某 一 路 视 频 编 码 通 道 的 运 动 侦 测 功 能 。• HI_MPI_MD_SetChnAttr: 设 置 运 动 侦 测 的 属 性 。• HI_MPI_MD_GetChnAttr: 获 取 运 动 侦 测 的 属 性 。• HI_MPI_MD_SetRefFrame: 设 置 运 动 侦 测 的 参 考 图 像 属 性 。• HI_MPI_MD_GetRefFrame: 获 取 运 动 侦 测 的 参 考 图 像 属 性 。• HI_MPI_MD_GetData: 获 取 运 动 侦 测 结 果 。• HI_MPI_MD_ReleaseData: 释 放 运 动 侦 测 结 果 。• HI_MPI_MD_GetFd: 获 取 运 动 侦 测 通 道 对 应 的 设 备 文 件 句 柄 。【 描 述 】启 用 某 一 路 视 频 编 码 通 道 的 运 动 侦 测 功 能 。【 语 法 】7-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测HI_S32 HI_MPI_MD_EnableChn(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_NOT_CONFIG 没 有 配 置 属 性 。HI_ERR_MD_NOMEM 模 块 内 部 分 配 内 存 失 败 。HI_ERR_MD_NOT_SUPPORT不 支 持 ( 只 有 H264 和 MJPEG 的 编 码 通道 支 持 MD, 其 他 协 议 的 编 码 通 道 不 支持 )。【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】• 在 启 用 该 编 码 通 道 的 运 动 侦 测 前 , 相 对 应 的 编 码 通 道 必 须 已 经 创 建 , 且 注 册 到 编码 通 道 组 GROUP 中 , 否 则 启 用 失 败 。 运 动 侦 测 与 编 码 同 时 实 现 , 若 对 应 的 编 码通 道 没 有 启 动 编 码 , 无 论 运 动 侦 测 是 否 启 用 , 都 不 会 进 行 运 动 侦 测 。• 在 启 用 前 , 必 须 设 置 该 视 频 编 码 通 道 的 运 动 侦 测 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-3


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 如 果 需 要 获 取 宏 块 SAD、 宏 块 报 警 信 息 、 宏 块 报 警 像 素 个 数 , 还 必 须 设 置 参 考 图像 属 性 。• 多 次 启 用 某 一 视 频 编 码 通 道 的 运 动 侦 测 功 能 , 和 启 用 一 次 效 果 相 同 , 都 会 返 回 成功 。• 目 前 支 持 H.264 编 码 和 MJPEG 编 码 时 , 进 行 运 动 侦 测 。 对 于 大 小 码 流 编 码 通 道 ,只 支 持 其 中 一 个 码 流 编 码 通 道 进 行 运 动 侦 测 。【 举 例 】#include #include #include #include #include #include #include #include #include #include #include #include #include "hi_common.h"#include "hi_comm_sys.h"#include "hi_comm_md.h"#include "mpi_md.h"HI_S32 MdStart(HI_VOID){HI_S32 i;HI_S32 s32Ret;VENC_CHN VeChn = 0;MD_CHN_ATTR_S stMdAttr;MD_REF_ATTR_S stRefAttr;/*set MD attribute*/stMdAttr.stMBMode.bMBSADMode =HI_TRUE;stMdAttr.stMBMode.bMBMVMode = HI_FALSE;stMdAttr.stMBMode.bMBPelNumMode = HI_FALSE;stMdAttr.stMBMode.bMBALARMMode = HI_FALSE;stMdAttr.u16MBALSADTh = 1000;stMdAttr.u8MBPelALTh = 20;stMdAttr.u8MBPerALNumTh = 20;stMdAttr.enSADBits = MD_SAD_8BIT;stMdAttr.stDlight.bEnable = HI_FALSE;7-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测stMdAttr.u32MDInternal = 0;stMdAttr.u32MDBufNum = 16;/*set MD frame*/stRefAttr.enRefFrameMode = MD_REF_AUTO;stRefAttr.enRefFrameStat = MD_REF_DYNAMIC;s32Ret = HI_MPI_MD_SetChnAttr(VeChn, &stMdAttr);if(s32Ret != HI_SUCCESS){printf("HI_MPI_MD_SetChnAttr Err 0x%x\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_MD_SetRefFrame(VeChn, &stRefAttr);if(s32Ret != HI_SUCCESS){printf("HI_MPI_MD_SetRefFrame Err 0x%x\n", s32Ret);return HI_FAILURE;}memset(&stMdAttr,0,sizeof(MD_CHN_ATTR_S));s32Ret = HI_MPI_MD_GetChnAttr(VeChn, &stMdAttr);if(s32Ret != HI_SUCCESS){printf("HI_MPI_MD_GetChnAttr Err 0x%x\n", s32Ret);return HI_FAILURE;}memset(&stRefAttr,0,sizeof(MD_REF_ATTR_S));s32Ret = HI_MPI_MD_GetRefFrame(VeChn, &stRefAttr);if(s32Ret != HI_SUCCESS){printf("HI_MPI_MD_GetRefFrame Err 0x%x\n", s32Ret);return HI_FAILURE;}s32Ret = HI_MPI_MD_EnableChn(VeChn);if(s32Ret != HI_SUCCESS){printf("HI_MPI_MD_EnableChn Err 0x%x\n", s32Ret);return HI_FAILURE;}文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-5


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}return HI_SUCCESS;【 相 关 主 题 】无 。HI_MPI_MD_DisableChn【 描 述 】禁 用 某 一 路 视 频 编 码 通 道 的 运 动 侦 测 功 能 。【 语 法 】HI_S32 HI_MPI_MD_DisableChn(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】7-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测多 次 禁 用 某 一 视 频 编 码 通 道 的 运 动 侦 测 功 能 , 和 禁 用 一 次 效 果 相 同 , 都 会 返 回 成 功 。【 举 例 】#include #include #include #include #include #include #include #include #include #include #include #include #include "hi_common.h"#include "hi_comm_sys.h"#include "hi_comm_md.h"#include "mpi_md.h"HI_S32 MdStop(HI_VOID){HI_S32 s32Ret;VENC_CHN VeChn = 0;s32Ret = HI_MPI_MD_DisableChn(VeChn);if(HI_SUCCESS != s32Ret){printf("HI_MPI_MD_DisableChn Err 0x%x\n",s32Ret);return HI_FAILURE;}}return HI_SUCCESS;【 相 关 主 题 】无 。HI_MPI_MD_SetChnAttr【 描 述 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-7


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考设 置 运 动 侦 测 的 属 性 。【 语 法 】HI_S32 HI_MPI_MD_SetChnAttr(VENC_CHN VeChn, const MD_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 运 动 侦 测 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_NULL_PTR 空 指 针 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_NOT_SUPPORT 不 支 持 。HI_ERR_MD_ILLEGAL_PARAM 参 数 错 误 。HI_ERR_MD_NOT_PERM操 作 不 允 许 , 例 如 没 有 禁 用 MD 通 道【 需 求 】• 头 文 件 :hi_comm_venc.h、mpi_venc.h• 库 文 件 :libmpi.a【 注 意 】• 在 启 用 运 动 侦 测 功 能 前 , 需 要 设 置 某 一 路 视 频 编 码 通 道 的 运 动 侦 测 属 性 。7-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测• 在 设 置 运 动 侦 测 的 属 性 前 , 必 须 保 证 运 动 侦 测 处 于 禁 用 状 态 。• 如 果 要 获 取 宏 块 报 警 信 息 , 在 去 光 照 效 应 不 打 开 时 , 需 设 置 宏 块 报 警 SAD 阈 值 ;在 去 光 照 效 应 打 开 时 , 需 要 设 置 三 个 阈 值 : 宏 块 的 SAD 阈 值 、 宏 块 内 像 素 报 警 阈值 和 宏 块 内 像 素 报 警 个 数 阈 值 (Hi3520/Hi3515 芯 片 暂 不 支 持 去 光 照 效 应 )。 当 发现 宏 块 阈 值 的 变 化 超 过 设 定 的 阈 值 , 就 认 为 该 宏 块 是 运 动 的 , 然 后 给 出 宏 块 的 报警 信 息 。• 如 果 要 获 取 宏 块 报 警 信 息 , 需 设 置 宏 块 报 警 SAD 阈 值 。• 如 果 要 获 取 宏 块 像 素 报 警 个 数 时 , 需 设 置 宏 块 报 警 的 像 素 阈 值 。【 举 例 】请 参 见 HI_MPI_MD_EnableChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_MD_GetChnAttr【 描 述 】获 取 运 动 侦 测 的 属 性 。【 语 法 】HI_S32 HI_MPI_MD_GetChnAttr(VENC_CHN VeChn, MD_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 运 动 侦 测 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-9


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_NULL_PTR 空 指 针 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_SYS_NOTREADY系 统 没 有 初 始 化 或 已 经 去 初 始 化HI_ERR_MD_NOT_CONFIG 没 有 配 置 。HI_MPI_MD_SetRefFrame【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】若 该 编 码 通 道 的 运 动 侦 测 的 属 性 没 有 设 置 , 则 获 取 属 性 失 败 。【 举 例 】请 参 见 HI_MPI_MD_EnableChn 的 举 例 。【 相 关 主 题 】无 。【 描 述 】设 置 运 动 侦 测 的 参 考 图 像 属 性 。【 语 法 】HI_S32 HI_MPI_MD_SetRefFrame(VENC_CHN VeChn, const MD_REF_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 参 考 图 像 属 性 指 针 。 输 入【 返 回 值 】7-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_NULL_PTR 空 指 针 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_NOT_SUPPORT 不 支 持 。HI_ERR_MD_ILLEGAL_PARAM 非 法 参 数 。HI_ERR_MD_NOMEM 分 配 内 存 失 败 ( 系 统 内 存 不 足 )。【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 配 置 的 某 一 视 频 编 码 通 道 运 动 侦 测 属 性 的 运 动 侦 测 模 式 中 包 含 宏 块 SAD、 宏块 报 警 信 息 、 宏 块 像 素 报 警 个 数 模 式 中 的 其 中 一 项 或 几 项 , 那 么 必 须 设 置 该 视 频编 码 通 道 运 动 侦 测 参 考 图 像 属 性 信 息 。• 自 动 设 置 参 考 图 像 时 , 用 户 可 以 根 据 需 要 , 设 置 参 考 图 像 是 否 更 新 。− 如 果 不 更 新 , 就 按 照 启 用 运 动 侦 测 后 第 一 帧 的 编 码 图 像 作 为 参 考 。− 如 果 更 新 , 就 按 照 运 动 侦 测 属 性 中 的 运 动 侦 测 间 隔 进 行 更 新 。• 在 设 置 运 动 侦 测 的 参 考 图 像 属 性 之 前 必 须 保 证 运 动 侦 测 处 于 禁 用 状 态 , 如 果 运 动侦 测 为 启 用 状 态 , 则 必 须 首 先 禁 用 运 动 侦 测 。• Hi3520/Hi3515 均 不 支 持 用 户 输 入 参 考 图 象 模 式 。【 举 例 】请 参 见 HI_MPI_MD_EnableChn 的 举 例 。【 相 关 主 题 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-11


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考无 。HI_MPI_MD_GetRefFrame【 描 述 】获 取 运 动 侦 测 的 参 考 图 像 属 性 。【 语 法 】HI_S32 HI_MPI_MD_GetRefFrame(VENC_CHN VeChn, MD_REF_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstAttr 参 考 图 像 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_NULL_PTR 空 指 针 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_NOT_CONFIG 没 有 配 置 。【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a7-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测HI_MPI_MD_GetData【 注 意 】如 果 该 通 道 的 运 动 侦 测 参 考 图 像 属 性 没 有 配 置 , 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_MD_EnableChn 的 举 例 。【 相 关 主 题 】无 。【 描 述 】获 取 运 动 侦 测 结 果 。【 语 法 】HI_S32 HI_MPI_MD_GetData(VENC_CHN VeChn, MD_DATA_S *pstMdData, HI_U32u32BlockFlag);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstMdData 运 动 侦 测 结 果 指 针 。 输 出u32BlockFlag 阻 塞 标 志 。取 值 范 围 :• HI_IO_BLOCK: 阻 塞 。• HI_IO_NOBLOCK: 非 阻 塞 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-13


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_NULL_PTR 空 指 针 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_BUF_EMPTYBUF 空 , 没 有 数 据 可 获 取 ( 采 用 非 阻 塞方 式 获 取 数 据 时 )【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 运 动 侦 测 已 经 禁 用 , 返 回 失 败 。• 支 持 阻 塞 和 非 阻 塞 接 口 。• 如 果 在 获 取 过 程 中 禁 用 MD 通 道 , 则 立 即 返 回 失 败 。• 虽 然 MD 可 以 提 供 四 种 MD 数 据 , 但 只 有 用 户 打 开 该 数 据 输 出 的 开 关 , 才 会 输 出该 数 据 。【 举 例 】#include #include #include #include #include #include #include #include #include #include #include #include #include "hi_common.h"#include "hi_comm_sys.h"#include "hi_comm_md.h"#include "mpi_md.h"HI_S32 MdGetData(HI_VOID){HI_S32 i;7-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测HI_S32 j;HI_S32 s32Ret;HI_S32 s32MdFd;HI_S32 s32Cnt = 0;HI_U16* pTmp = NULL;MD_DATA_S stMdData;VENC_CHN VeChn = 0;fd_set read_fds;s32MdFd = HI_MPI_MD_GetFd(VeChn);do{FD_ZERO(&read_fds);FD_SET(s32MdFd,&read_fds);s32Ret = select(s32MdFd+1, &read_fds, NULL, NULL, NULL);if (s32Ret < 0){printf("select err\n");return HI_FAILURE;}else if (0 == s32Ret){printf("time out\n");return HI_FAILURE;}else{sleep(1);memset(&stMdData, 0, sizeof(MD_DATA_S));if (FD_ISSET(s32MdFd, &read_fds)){s32Ret = HI_MPI_MD_GetData(VeChn, &stMdData, HI_IO_BLOCK);if(s32Ret != HI_SUCCESS){printf("HI_MPI_MD_GetData err 0x%x\n",s32Ret);return HI_FAILURE;}}s32Cnt++;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-15


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考/*get MD SAD data*/if(stMdData.stMBMode.bMBSADMode){HI_U16* pTmp = NULL;for(i=0; i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入pstMdData 运 动 侦 测 数 据 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加 载 相 应 模 块 。HI_ERR_MD_NULL_PTR 空 指 针 。HI_ERR_MD_UNEXIST 通 道 不 存 在 。HI_ERR_MD_ILLEGAL_PARAM 非 法 参 数 。【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】• 此 接 口 需 与 HI_MPI_MD_GetData 配 对 使 用 。• 运 动 侦 测 结 果 需 要 在 使 用 完 之 后 立 即 释 放 , 如 果 不 及 时 释 放 会 导 致 无 运 动 侦 测 结果 缓 存 而 不 能 进 行 运 动 侦 测 。• 释 放 的 运 动 侦 测 结 果 必 须 是 从 该 通 道 获 取 的 运 动 侦 测 结 果 , 不 得 对 运 动 侦 测 结 果结 构 体 进 行 任 何 修 改 , 也 不 允 许 释 放 从 别 的 通 道 获 取 的 运 动 侦 测 结 果 , 否 则 会 导致 运 动 侦 测 结 果 不 能 释 放 , 使 此 运 动 侦 测 结 果 缓 存 丢 失 , 甚 至 导 致 程 序 异 常 。• 如 果 在 释 放 运 动 侦 测 结 果 缓 存 过 程 中 销 毁 通 道 , 则 立 刻 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_MD_GetData 的 举 例 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-17


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】无 。HI_MPI_MD_GetFd【 描 述 】获 取 运 动 侦 测 通 道 对 应 的 设 备 文 件 句 柄 。【 语 法 】HI_S32 HI_MPI_MD_GetFd(VENC_CHN VeChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VeChn 编 码 通 道 号 。取 值 范 围 :[0, VENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】接 口 返 回 值含 义HI_ERR_MD_INVALID_CHNID 通 道 号 错 误 。【 需 求 】• 头 文 件 :hi_comm_md.h、mpi_md.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】请 参 见 HI_MPI_MD_GetData 的 举 例 。【 相 关 主 题 】无 。7-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测7.4 数 据 类 型MD_MB_MODE_S相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• MD_MB_MODE_S: 定 义 宏 块 模 式 结 构 体 。• MD_DLIGHT_S: 定 义 去 光 照 效 应 属 性 结 构 体 。• MD_SADBITS_E: 定 义 运 动 侦 测 的 SAD 的 精 度 。• MD_REF_MODE_E: 定 义 参 考 图 像 模 式 。• MD_REF_STATUS_E: 定 义 参 考 图 像 更 新 状 态 。• MD_REF_ATTR_S: 定 义 参 考 图 像 属 性 结 构 体 。• MD_MB_DATA_S: 定 义 宏 块 结 果 结 构 体 。• MD_DATA_S: 定 义 运 动 侦 测 结 果 结 构 体 。• MD_CHN_ATTR_S: 定 义 运 动 侦 测 属 性 结 构 体 。【 说 明 】定 义 宏 块 模 式 结 构 体 。【 定 义 】typedef struct hiMD_MB_MODE_S{HI_BOOL bMBSADMode;HI_BOOL bMBMVMode;HI_BOOL bMBALARMMode;HI_BOOL bMBPelNumMode;} MD_MB_MODE_S;【 成 员 】成 员 名 称描 述bMBSADMode 宏 块 SAD 模 式 开 关 。取 值 范 围 :{HI_TRUE,HI_FALSE}。• HI_TRUE: 打 开 。• HI_FALSE: 关 闭 。bMBMVMode 宏 块 MV 模 式 开 关 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 打 开 。• HI_FALSE: 关 闭 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-19


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述bMBALARMMode 宏 块 报 警 模 式 开 关 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 打 开 。• HI_FALSE: 关 闭 。bMBPelNumMode 宏 块 报 警 像 素 个 数 模 式 开 关 。取 值 范 围 :{HI_TRUE,HI_FALSE}。• HI_TRUE: 打 开 。• HI_FALSE: 关 闭 。MD_DLIGHT_S【 注 意 事 项 】四 种 MD 数 据 是 否 输 出 , 即 通 过 该 结 构 体 的 开 关 进 行 控 制 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 去 光 照 效 应 属 性 结 构 体 。【 定 义 】typedef struct hiMD_DLIGHT_S{HI_BOOL bEnable;HI_U8 u8DlBeta;HI_U8 u8DlAlpha;HI_U16 Reserved;} MD_DLIGHT_S;【 成 员 】成 员 名 称描 述bEnable 去 光 照 效 应 开 关 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 打 开 。• HI_FALSE: 关 闭 。u8DlBeta 去 光 照 效 应 Beta 值 。取 值 范 围 :[0, 7]。7-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测成 员 名 称描 述u8DlAlpha 去 光 照 效 应 Alpha 值 。取 值 范 围 :[0, 7]。Reserved 保 留 。MD_SADBITS_E【 注 意 事 项 】目 前 此 结 构 体 设 置 无 效 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 运 动 侦 测 的 SAD 的 精 度 。【 定 义 】typedef enum hiMD_SADBITS_E{MD_SAD_8BIT = 0,MD_SAD_16BIT,MD_SAD_BUTT} MD_SADBITS_E;【 成 员 】成 员 名 称MD_SAD_8BITMD_SAD_16BIT描 述SAD 精 度 为 8bit。SAD 精 度 为 16bit。MD_REF_MODE_E【 注 意 事 项 】不 管 精 度 值 如 何 , 在 运 动 侦 测 结 果 中 , 每 个 宏 块 SAD 都 要 占 用 2byte 内 存 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 参 考 图 像 模 式 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-21


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 定 义 】typedef enum hiMD_REF_MODE_E{MD_REF_AUTO = 0,MD_REF_USER,MD_REF_MODE_BUTT} MD_REF_MODE_E;【 成 员 】成 员 名 称描 述MD_REF_AUTO 自 动 设 置 参 考 图 像 模 式 。MD_REF_USER 用 户 输 入 参 考 图 像 模 式 。MD_REF_STATUS_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 参 考 图 像 更 新 状 态 。【 定 义 】typedef enum hiMD_REF_STATUS_E{MD_REF_STATIC = 0,MD_REF_DYNAMIC,MD_REF_STATUS_BUTT} MD_REF_STATUS_E;【 成 员 】成 员 名 称描 述MD_REF_STATIC 参 考 图 像 不 更 新 。MD_REF_DYNAMIC 参 考 图 像 更 新 。【 注 意 事 项 】7-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测参 考 图 像 是 否 更 新 均 是 在 参 考 图 像 模 式 为 自 动 模 式 的 情 况 下 。 参 考 图 像 为 用 户 设 置 模式 时 , 此 参 考 图 像 状 态 无 效 。【 相 关 数 据 类 型 及 接 口 】无 。MD_REF_ATTR_S【 说 明 】定 义 参 考 图 像 属 性 结 构 体 。【 定 义 】typedef struct hiMD_REF_ATTR_S{MD_REF_MODE_E enRefFrameMode;MD_REF_STATUS_E enRefFrameStat;VIDEO_FRAME_S stUserRefFrame;} MD_REF_ATTR_S;【 成 员 】成 员 名 称描 述enRefFrameMode 参 考 图 像 模 式 。enRefFrameStat 参 考 图 像 更 新 状 态 。stUserRefFrame 用 户 输 入 模 式 , 参 考 图 像 的 信 息 结 构 体 。MD_MB_DATA_S【 注 意 事 项 】参 考 图 像 是 否 更 新 均 是 在 参 考 图 像 模 式 为 自 动 模 式 的 情 况 下 。 参 考 图 像 为 用 户 设 置 模式 时 , 此 参 考 图 像 更 新 状 态 无 效 , 在 此 模 式 下 用 户 还 需 配 置 参 考 图 像 。【 相 关 数 据 类 型 及 接 口 】• MD_REF_MODE_E• MD_REF_STATUS_E• HI_MPI_MD_SetRefFrame• HI_MPI_MD_GetRefFrame【 说 明 】定 义 宏 块 结 果 结 构 体 。【 定 义 】typedef struct hiMD_MB_DATA_S文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-23


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考{HI_U32* pu32Addr;HI_U32 u32Stride;} MD_MB_DATA_S;【 成 员 】成 员 名 称描 述pu32Addr 宏 块 数 据 指 针 。u32Stride 宏 块 数 据 以 行 为 单 位 的 内 存 宽 度 。MD_DATA_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 运 动 侦 测 结 果 结 构 体 。【 定 义 】typedef struct hiMD_DATA_S{HI_U32*pu32Addr;HI_U16u16MBWidth;HI_U16u16MBHeight;HI_U64u64Pts;MD_MB_MODE_SMD_MB_DATA_SMD_MB_DATA_SMD_MB_DATA_SMD_MB_DATA_S} MD_DATA_S;stMBMode;stMBSAD;stMBMV;stMBAlarm;stMBPelAlarmNum;【 成 员 】成 员 名 称描 述pu32Addr MD 结 果 地 址 信 息 , 释 放 结 果 时 需 用 到 。不 允 许 修 改 。7-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测成 员 名 称描 述u16MBWidth 图 像 的 宽 度 。 以 宏 块 为 单 位 。u16MBHeight 图 像 的 高 度 。 以 宏 块 为 单 位 。u64Pts 时 间 戳 。stMBMode 宏 块 模 式 。stMBSADstMBMV宏 块 SAD。宏 块 MV。stMBAlarm 宏 块 报 警 信 息 。stMBPelAlarmNum 宏 块 报 警 像 素 个 数 。MD_CHN_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• MD_MB_MODE_S• MD_MB_DATA_S• HI_MPI_MD_GetData• HI_MPI_MD_ReleaseData【 说 明 】定 义 运 动 侦 测 属 性 结 构 体 。【 定 义 】typedef struct hiMD_CHN_ATTR_S{MD_MB_MODE_S stMBMode;MD_SADBITS_E enSADBits;MD_DLIGHT_S stDlight;HI_U8u8MBPelALTh;HI_U8u8MBPerALNumTh;HI_U16u16MBALSADTh;HI_U32u32MDInternal;HI_U32u32MDBufNum;} MD_CHN_ATTR_S;【 成 员 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-25


7 运 动 侦 测Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述stMBMode 宏 块 模 式 。enSADBits SAD 输 出 精 度 。stDlight 去 光 照 效 应 属 性 。u8MBPelALTh 像 素 报 警 阈 值 。取 值 范 围 :(0, 255)。u8MBPerALNumTh 像 素 报 警 个 数 阈 值 。取 值 范 围 :(0, 255)。u16MBALSADTh 宏 块 报 警 阈 值 。取 值 范 围 :• 去 光 照 效 应 打 开 时 :(0, 255)。• 去 光 照 效 应 不 打 开 时 :(0, 65535)。u32MDInternal MD 侦 测 间 隔 。取 值 范 围 :[0, 256], 以 帧 为 单 位 。u32MDBufNum MD 缓 存 大 小 。取 值 范 围 :[1, 16]。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】• MD_MB_MODE_S• MD_SADBITS_E• MD_DLIGHT_S• HI_MPI_MD_SetChnAttr• HI_MPI_MD_GetChnAttr7.5 错 误 码运 动 侦 测 API 错 误 码 如 表 7-1 所 示 。表 7-1 运 动 侦 测 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0088001 HI_ERR_MD_INVALID_DEVID 设 备 ID 超 出 合 法 范 围0xA0088002 HI_ERR_MD_INVALID_CHNID 通 道 ID 超 出 合 法 范 围7-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考7 运 动 侦 测错 误 代 码 宏 定 义 描 述0xA0088003 HI_ERR_MD_ILLEGAL_PARAM 参 数 超 出 合 法 范 围0xA0088004 HI_ERR_MD_EXIST 试 图 申 请 或 者 创 建 已 经 存在 的 设 备 、 通 道 或 者 资 源0xA0088005 HI_ERR_MD_UNEXIST 试 图 使 用 或 者 销 毁 不 存 在的 设 备 、 通 道 或 者 资 源0xA0088006 HI_ERR_MD_NULL_PTR 参 数 中 有 空 指 针0xA0088007 HI_ERR_MD_NOT_CONFIG 使 用 前 未 配 置0xA0088008 HI_ERR_MD_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能0xA0088009 HI_ERR_MD_NOT_PERM 该 操 作 不 允 许 , 如 试 图 修改 静 态 配 置 参 数0xA008800C HI_ERR_MD_NOMEM 分 配 内 存 失 败 , 如 系 统 内存 不 足0xA008800D HI_ERR_MD_NOBUF 分 配 缓 存 失 败 , 如 申 请 的数 据 缓 冲 区 太 大0xA008800E HI_ERR_MD_BUF_EMPTY 缓 冲 区 中 无 数 据0xA008800F HI_ERR_MD_BUF_FULL 缓 冲 区 中 数 据 满0xA0088010 HI_ERR_MD_SYS_NOTREADY 系 统 没 有 初 始 化 或 没 有 加载 相 应 模 块0xA0088012 HI_ERR_MD_BUSY 系 统 忙文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司7-27


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录8 视 频 解 码 .......................................................................................................................................8-18.1 概 述 ..............................................................................................................................................................8-18.2 重 要 概 念 ......................................................................................................................................................8-18.3 API 参 考 .......................................................................................................................................................8-28.4 数 据 类 型 ....................................................................................................................................................8-328.5 错 误 码 ........................................................................................................................................................8-45文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码8 视 频 解 码8.1 概 述VDEC 模 块 提 供 驱 动 Hi3520/Hi3515 芯 片 视 频 解 码 硬 件 工 作 的 MPI 接 口 , 实 现 H.264、MJPEG、JPEG 视 频 解 码 功 能 。8.2 重 要 概 念• 码 流 发 送 方 式根 据 H.264 协 议 , 一 帧 码 流 的 结 束 需 要 收 到 新 一 帧 码 流 时 才 能 识 别 。Hi3520/Hi3515 解 码 器 可 以 通 过 设 置 码 流 发 送 方 式 , 让 解 码 器 快 速 识 别 一 帧 码 流 的结 束 。 码 流 发 送 方 式 包 括 流 式 发 送 和 按 帧 发 送 :−流 式 发 送 : 用 户 每 次 可 发 送 任 意 大 小 码 流 到 解 码 器 。 选 定 流 式 发 送 方 式 后 , 由解 码 器 根 据 264 协 议 识 别 一 帧 码 流 的 结 束 。− 按 帧 发 送 : 用 户 每 次 发 送 完 整 一 帧 码 流 到 解 码 器 。 选 定 按 帧 发 送 方 式 后 , 每 调用 一 次 发 送 接 口 , 解 码 器 就 认 为 该 帧 码 流 已 经 结 束 , 因 此 用 户 须 保 证 每 次 调 用发 送 接 口 发 送 的 码 流 必 为 一 帧 , 否 则 会 出 现 解 码 错 误 。发 送 方 式 在 通 道 属 性 中 设 置 , 两 种 发 送 方 式 都 须 保 证 每 次 调 用 发 送 接 口 发 送 的 码流 大 小 不 超 过 通 道 属 性 中 设 置 的 buffer 大 小 。• 图 象 输 出 方 式根 据 264 协 议 , 解 码 图 象 可 能 不 会 在 解 码 后 立 即 输 出 。Hi3520/Hi3515 解 码 器 可 以通 过 设 置 不 同 的 图 象 输 出 方 式 达 到 尽 快 输 出 的 目 的 。 图 象 输 出 方 式 包 括 以 下 三种 :− 普 通 输 出 : 完 全 按 照 264 协 议 输 出 图 像 。− 直 接 输 出 : 收 到 下 一 帧 码 流 , 输 出 当 前 帧 图 象 。− 按 帧 输 出 : 收 到 当 前 帧 码 流 , 输 出 当 前 帧 图 象 。以 上 三 种 输 出 方 式 , 自 上 而 下 , 输 出 速 度 越 来 越 快 。 其 中 直 接 输 出 和 按 帧 输 出 方式 都 不 符 合 H.264 协 议 , 因 此 需 用 户 正 确 配 置 和 使 用 解 码 器 , 才 可 实 现 , 详 细 请参 见 《Hi3520/Hi3515 媒 体 处 理 软 件 FAQ》。• 超 大 帧文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-1


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考当 待 解 码 图 像 中 的 一 帧 码 流 过 大 ( 目 前 取 值 是 用 户 设 置 码 流 Buffer 的 1/2), 超 出解 码 器 的 处 理 能 力 时 , 即 认 为 其 是 超 大 帧 。超 大 帧 会 被 丢 弃 , 从 而 导 致 解 码 图 像 出 现 问 题 。 在 某 些 极 特 殊 场 景 ( 如 噪 声 测 试序 列 等 ) 中 才 可 能 出 现 超 大 帧 , 自 然 视 频 极 少 出 现 。可 适 当 加 大 码 流 Buffer 来 处 理 超 大 帧 。8.3 API 参 考视 频 解 码 模 块 实 现 创 建 解 码 通 道 、 绑 定 到 视 频 输 出 、 发 送 视 频 码 流 、 获 取 解 码 后 图 像等 功 能 。该 功 能 模 块 提 供 以 下 MPI:HI_MPI_VDEC_CreateChn• HI_MPI_VDEC_CreateChn: 创 建 视 频 解 码 通 道 。• HI_MPI_VDEC_DestroyChn: 销 毁 视 频 解 码 通 道 。• HI_MPI_VDEC_StartRecvStream: 解 码 器 开 始 接 收 用 户 发 送 的 码 流 。• HI_MPI_VDEC_StopRecvStream: 解 码 器 停 止 接 收 用 户 发 送 的 码 流 。• HI_MPI_VDEC_Query: 查 询 解 码 通 道 状 态 。• HI_MPI_VDEC_BindOutput: 绑 定 视 频 解 码 通 道 到 视 频 输 出 。• HI_MPI_VDEC_UnbindOutput: 解 绑 定 视 频 解 码 通 道 到 视 频 输 出 。• HI_MPI_VDEC_SetChnAttr: 设 置 视 频 解 码 通 道 属 性 。• HI_MPI_VDEC_GetChnAttr: 获 取 视 频 解 码 通 道 属 性 。• HI_MPI_VDEC_SendStream: 向 视 频 解 码 通 道 发 送 码 流 数 据 。• HI_MPI_VDEC_GetData: 获 取 视 频 解 码 通 道 的 解 码 数 据 。• HI_MPI_VDEC_ReleaseData: 释 放 视 频 解 码 通 道 的 图 像 缓 存 。• HI_MPI_VDEC_GetCapability: 获 取 视 频 解 码 能 力 集 。• HI_MPI_VDEC_GetFd: 获 取 视 频 解 码 通 道 的 设 备 文 件 句 柄 。• HI_MPI_VDEC_ResetChn: 复 位 解 码 通 道 。• HI_MPI_VDEC_UnbindOutputChn: 解 除 某 视 频 输 出 通 道 与 解 码 通 道 的 绑 定 。• HI_MPI_VDEC_QueryData: 查 询 是 否 有 解 码 数 据 。• HI_MPI_VDEC_SetChnParam: 设 置 解 码 通 道 参 数 。• HI_MPI_VDEC_GetChnParam: 获 取 解 码 通 道 参 数 。【 描 述 】创 建 视 频 解 码 通 道 。【 语 法 】HI_S32 HI_MPI_VDEC_CreateChn(VDEC_CHN VdChn, const VDEC_CHN_ATTR_S*pstAttr, const VDEC_WM_ATTR_S *pstWm);8-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstAttr 解 码 属 性 指 针 。 输 入pstWm数 字 水 印 属 性 指 针 ( 暂 不 支 持 该 功 能 , 必 须 置 为 空 指针 )。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY系 统 没 有 初 始 化 或 者 相 关 依 赖 的 模 块 没有 加 载 ( 如 进 行 jpeg 解 码 时Hi3520_jpegd.ko 未 加 载 )。HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_ILLEGAL_PARAM 参 数 错 或 超 出 合 法 范 围 。HI_ERR_VDEC_NOT_SUPPORTHI_ERR_VDEC_EXIST不 支 持 的 参 数 或 者 功 能 。 解 码 协 议 不 支持 , 或 者 数 字 水 印 不 支 持 。试 图 申 请 或 者 创 建 已 经 存 在 的 设 备 、 通道 或 者 资 源 。HI_ERR_VDEC_NOMEM 分 配 内 存 失 败 ( 如 系 统 内 存 不 足 )。HI_ERR_VDEC_NOBUF分 配 缓 存 失 败 ( 如 申 请 的 数 据 缓 冲 区 太大 )。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-3


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 库 文 件 :libmpi.a【 注 意 】• 如 果 参 数 pstAttr 错 误 或 者 为 空 会 返 回 错 误 码 HI_ERR_VDEC_ILLEGAL_PARAM或 HI_ERR_VDEC_NULL_PTR。 参 数 pstAttr 主 要 包 括 如 下 内 容 :−−−协 议 类 型码 流 buffer 大 小修 改 码 流 buffer 允 许 设 置 的 最 小 值 为 宽 高 乘 积 的 3/4, 而 不 是 宽 高 乘 积 的 1.5倍 。各 个 协 议 属 性各 个 协 议 的 属 性 由 各 个 协 议 指 定 , 目 前 H.264 和 JPEG 协 议 属 性 包 括 优 先 级 、最 大 解 码 图 像 大 小 、 参 考 图 像 个 数 等 ,H.264 还 需 要 设 置 码 流 发 送 方 式 ( 按 帧发 送 或 流 式 发 送 )。• 在 创 建 视 频 解 码 通 道 之 前 必 须 保 证 通 道 未 创 建 ( 或 者 已 经 销 毁 ), 否 则 会 直 接 返 回通 道 已 存 在 错 误 。• 目 前 版 本 不 支 持 获 取 数 字 水 印 解 码 , 因 此 参 数 pstWm 必 须 置 为 空 , 否 则 返 回 错 误码 HI_ERR_VDEC_NOT_SUPPORT。【 举 例 】• H.264 解 码HI_S32 s32ret;VDEC_CHN VdChn = 0;VDEC_ATTR_H264_S stH264Attr;VDEC_CHN_ATTR_S stAttr;VDEC_STREAM_S stStream;VDEC_DATA_S stVdecData;stH264Attr.u32Priority = 0;stH264Attr.u32PicHeight = 576;stH264Attr.u32PicWidth = 720;stH264Attr.u32RefFrameNum = 3;stH264Attr.enMode = H264D_MODE_STREAM;stAttr.enType = PT_H264;stAttr.u32BufSize = (((stH264Attr.u32PicWidth) *(stH264Attr.u32PicHeight))


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码}/*start recv stream*/s32ret = HI_MPI_VDEC_StartRecvStream(VdChn);if (HI_SUCCESS != s32ret){printf("start recv stream failed, errno 0x%x \n", s32ret);return s32ret;}/* send stream to vdec chn*/s32ret = HI_MPI_VDEC_SendStream(VdChn, &stStream, HI_IO_BLOCK);if (HI_SUCCESS != s32ret){printf("send stream to vdec chn fail,errno 0x%x \n", s32ret);return s32ret;}/* get video frame from vdec chn*/s32ret = HI_MPI_VDEC_GetData(VdChn, &stVdecData, HI_IO_BLOCK);if (HI_SUCCESS != s32ret){printf("get video frame from vdec chn fail,errno 0x%x \n", s32ret);return s32ret;}/* deal with video frame ,send to vo chn for example ... *//* release video frame*/s32ret = HI_MPI_VDEC_ReleaseData(VdChn, &stVdecData);if (HI_SUCCESS != s32ret){return s32ret;}/* ...*//*stop recv stream*/s32ret = HI_MPI_VDEC_StopRecvStream(VdChn);if (HI_SUCCESS != s32ret){printf("stop recv stream failed errno 0x%x \n", s32ret);return s32ret;}/* destroy vdec chn*/s32ret = HI_MPI_VDEC_DestroyChn(VdChn);文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-5


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考if (HI_SUCCESS != s32ret){printf("destroy vdec chn failed errno 0x%x \n", s32ret);return s32ret;}• JPEG 解 码HI_S32 s32ret;VDEC_CHN VdChn = 0;VDEC_ATTR_H264_S stJpegAttr;VDEC_CHN_ATTR_S stAttr;VDEC_STREAM_S stStream;VDEC_DATA_S stVdecData;stJpegAttr.u32Priority = 0;stJpegAttr.u32PicHeight = 576;stJpegAttr.u32PicWidth = 720;stAttr.enType = PT_JPEG;stAttr.u32BufSize = stJpegAttr.u32PicHeight * stJpegAttr.u32PicWidth * 2;stAttr.pValue = (void*)&stJpegAttr;/* create vdec chn*/s32ret = HI_MPI_VDEC_CreateChn(VdChn, &stAttr, NULL);if (HI_SUCCESS != s32ret){printf("create vdec chn failed, errno 0x%x \n", s32ret);return s32ret;}/*start recv stream*/s32ret = HI_MPI_VDEC_StartRecvStream(VdChn);if (HI_SUCCESS != s32ret){printf("start recv stream failed, errno 0x%x \n", s32ret);return s32ret;}/* send stream to vdec chn*/s32ret = HI_MPI_VDEC_SendStream(VdChn, &stStream, HI_IO_BLOCK);if (HI_SUCCESS != s32ret){printf("send stream to vdec chn fail,errno 0x%x \n", s32ret);return s32ret;}8-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码/* get video frame from vdec chn*/s32ret = HI_MPI_VDEC_GetData(VdChn, &stVdecData, HI_IO_BLOCK);if (HI_SUCCESS != s32ret){printf("get video frame from vdec chn fail,errno 0x%x \n", s32ret);return s32ret;}/* release video frame*/s32ret = HI_MPI_VDEC_ReleaseData(VdChn, &stVdecData);if (HI_SUCCESS != s32ret){return s32ret;}/*stop recv stream*/s32ret = HI_MPI_VDEC_StopRecvStream(VdChn);if (HI_SUCCESS != s32ret){printf("stop recv stream failed errno 0x%x \n", s32ret);return s32ret;}/* destroy vdec chn*/s32ret = HI_MPI_VDEC_DestroyChn(VdChn);if (HI_SUCCESS != s32ret){printf("destroy vdec chn failed errno 0x%x \n", s32ret);return s32ret;}【 相 关 主 题 】无 。HI_MPI_VDEC_DestroyChn【 描 述 】销 毁 视 频 解 码 通 道 。【 语 法 】HI_S32 HI_MPI_VDEC_DestroyChn(VDEC_CHN VdChn);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-7


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_NOT_PERM操 作 不 允 许 , 在 进 行 此 操 作 前 必 须 停 止接 收 码 流 。HI_ERR_VDEC_UNEXIST 通 道 已 经 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 销 毁 前 必 须 保 证 通 道 已 创 建 , 否 则 会 返 回 通 道 未 创 建 的 错 误 。• 销 毁 前 必 须 停 止 接 收 码 流 ( 或 者 尚 未 开 始 接 收 码 流 ), 否 则 返 回 错 误 码HI_ERR_VDEC_NOT_PERM。【 举 例 】请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。8-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码HI_MPI_VDEC_StartRecvStream【 描 述 】解 码 器 开 始 接 收 用 户 发 送 的 码 流 。【 语 法 】HI_S32 HI_MPI_VDEC_StartRecvStream(VDEC_CHN VdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 尚 未 创 建 或 者 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 启 动 接 收 码 流 前 必 须 保 证 通 道 已 创 建 , 否 则 会 返 回 通 道 未 创 建 的 错 误 。• 启 动 接 收 码 流 之 后 , 才 能 调 用 HI_MPI_VDEC_SendStream 发 送 码 流 成 功 。【 举 例 】请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-9


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】无 。HI_MPI_VDEC_StopRecvStream【 描 述 】解 码 器 停 止 接 收 用 户 发 送 的 码 流 。【 语 法 】HI_S32 HI_MPI_VDEC_StopRecvStream(VDEC_CHN VdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 尚 未 创 建 或 者 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 停 止 接 收 码 流 前 必 须 保 证 通 道 已 创 建 , 否 则 会 返 回 通 道 未 创 建 的 错 误 。• 调 用 此 接 口 后 , 调 用 发 送 码 流 接 口 HI_MPI_VDEC_SendStream 会 返 回 失 败 。8-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码HI_MPI_VDEC_Query【 举 例 】请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。【 描 述 】查 询 解 码 通 道 状 态 。【 语 法 】HI_S32 HI_MPI_VDEC_Query(VDEC_CHN VdChn,VDEC_CHN_STAT_S *pstStat);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstStat 视 频 解 码 通 道 状 态 结 构 体 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 尚 未 创 建 或 者 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。HI_ERR_VDEC_NULL_PTR 视 频 解 码 通 道 状 态 结 构 体 指 针 为 空 。【 需 求 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-11


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】查 询 通 道 状 态 前 必 须 保 证 通 道 已 创 建 , 否 则 会 返 回 通 道 未 创 建 的 错 误 。【 举 例 】请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VDEC_BindOutput【 描 述 】绑 定 视 频 解 码 通 道 到 视 频 输 出 通 道 。【 语 法 】HI_S32 HI_MPI_VDEC_BindOutput(VDEC_CHN VdChn, VO_DEV VoDev, VO_CHN VoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM]。VoChn 视 频 输 出 VO 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。8-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码接 口 返 回 值HI_ERR_VDEC_INVALID_CHNID含 义解 码 通 道 ID 或 者 VO 通 道 ID 超 出 合 法范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。HI_ERR_VDEC_NOT_PERM 操 作 不 允 许 。HI_ERR_VDEC_INVALID_DEVID VO 设 备 号 超 出 合 法 范 围 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 绑 定 指 将 视 频 解 码 通 道 和 显 示 输 出 通 道 做 关 联 , 并 不 关 心 实 际 的 解 码 或 者 显 示 输出 通 道 是 否 已 经 创 建 。 用 户 需 保 证 VO 设 备 与 VO 通 道 是 可 用 的 。• 绑 定 之 后 , 相 应 的 视 频 解 码 通 道 的 数 据 将 直 接 通 过 相 应 的 显 示 输 出 通 道 输 出 , 输出 帧 率 由 VO 决 定 , 请 参 见 HI_MPI_VO_SetChnFrameRate。• 可 以 将 一 个 解 码 通 道 绑 定 到 多 个 VO 通 道 , 最 多 支 持 32 个 , 若 超 过 , 则 返 回HI_ERR_VDEC_NOT_PERM。• 如 果 重 复 绑 定 VO 通 道 , 则 返 回 HI_ERR_VDEC_NOT_PERM。【 举 例 】HI_S32 s32ret;VDEC_CHN VdChn = 0;VO_CHN VoChn = 0;VO_DEV VoDev = 0;/* first create vdec chn*//* bind to vo chn */s32ret = HI_MPI_VDEC_BindOutput(VdChn, VoDev, VoChn);if (HI_SUCCESS != s32ret){printf("bind vdec output to vo failed!");return s32ret;}/* ... ... *//* unbind vo chn*/s32ret = HI_MPI_VDEC_UnbindOutput(VdChn);文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-13


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考if (HI_SUCCESS != s32ret){printf("unbind vdec output to vo failed!");return s32ret;}【 相 关 主 题 】无 。HI_MPI_VDEC_UnbindOutput【 描 述 】解 绑 定 视 频 解 码 通 道 。【 语 法 】HI_S32 HI_MPI_VDEC_UnbindOutput(VDEC_CHN VdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a8-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码【 注 意 】• 解 绑 定 所 有 的 VO 通 道 。 如 果 需 要 解 绑 定 某 VO 通 道 , 请 使 用HI_MPI_VDEC_UnbindOutputChn。• 可 以 重 复 解 绑 定 所 有 通 道 , 不 返 回 错 误 。【 举 例 】请 参 见 HI_MPI_VDEC_BindOutput 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VDEC_SetChnAttr【 描 述 】设 置 视 频 解 码 通 道 属 性 。【 语 法 】HI_S32 HI_MPI_VDEC_SetChnAttr(VDEC_CHN VdChn, const VDEC_CHN_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstAttr 解 码 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-15


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_NOT_PERM该 操 作 不 允 许 ( 如 试 图 修 改 静 态 配 置 参数 )。HI_ERR_VDEC_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 先 创 建 完 通 道 , 再 设 置 属 性 。 如 果 通 道 未 被 创 建 , 则 返 回 失 败 。• 该 接 口 仅 用 于 设 置 通 道 动 态 属 性 , 不 支 持 对 静 态 属 性 的 修 改 , 如 试 图 修 改 静 态 属性 , 将 返 回 操 作 不 允 许 的 错 误 码 。 由 于 目 前 版 本 没 有 动 态 属 性 , 所 以 此 接 口 无 实际 意 义 , 仅 为 了 兼 容 可 能 存 在 的 动 态 属 性 。【 举 例 】• 设 置 H.264 通 道 属 性HI_S32s32ret;VDEC_CHN VdChn = 0;VDEC_ATTR_H264_S stH264Attr;VDEC_CHN_ATTR_S stAttr;stH264Attr.u32Priority = 0;stH264Attr.u32PicHeight = 576;stH264Attr.u32PicWidth = 720;stH264Attr.u32RefFrameNum = 16;stAttr.enType = PT_H264;stAttr.u32BufSize = (((stH264Attr.u32PicWidth) *(stH264Attr.u32PicHeight))


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码HI_S32s32ret;VDEC_CHN VdChn = 0;VDEC_ATTR_JPEG_S stJpegAttr;VDEC_CHN_ATTR_S stAttr;stJpegAttr.u32Priority = 0;stJpegAttr.u32PicHeight = 576;stJpegAttr.u32PicWidth = 720;stAttr.enType = PT_JPEG;stAttr.u32BufSize = stJpegAttr.u32PicHeight * stJpegAttr.u32PicWidth * 2;stAttr.pValue = (void*)&stJpegAttr;s32ret = HI_MPI_VDEC_SetChnAttr(VdChn, &stAttr);if (HI_SUCCESS != s32ret){printf("set vdec chn atrr failed \n");return s32ret;}【 相 关 主 题 】无 。HI_MPI_VDEC_GetChnAttr【 描 述 】获 取 视 频 解 码 通 道 属 性 。【 语 法 】HI_S32 HI_MPI_VDEC_GetChnAttr(VDEC_CHN VdChn, VDEC_CHN_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstAttr 解 码 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-17


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_UNEXIST 试 图 使 用 不 存 在 的 通 道 。HI_ERR_VDEC_NOT_PERM操 作 不 允 许 ( 如 reset 操 作 执 行 期 间 , 不允 许 获 取 通 道 属 性 )【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】获 取 属 性 前 必 须 保 证 通 道 已 创 建 , 否 则 会 返 回 通 道 未 创 建 的 错 误 。【 举 例 】VDEC_CHN VdChn = 0;VDEC_CHN_ATTR_S stAttr;if (HI_SUCCESS != HI_MPI_VDEC_GetChnAttr (VdChn, &stAttr) ){printf("get vdec chn attr failed!);return -1;}【 相 关 主 题 】无 。HI_MPI_VDEC_SendStream【 描 述 】向 视 频 解 码 通 道 发 送 码 流 数 据 。【 语 法 】8-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码HI_S32 HI_MPI_VDEC_SendStream(VDEC_CHN VdChn, const VDEC_STREAM_S*pstStream, HI_U32 u32BlockFlag);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstStream 解 码 码 流 数 据 指 针 。 输 入u32BlockFlag 阻 塞 非 阻 塞 标 志 。取 值 范 围 :• HI_IO_BLOCK: 阻 塞 。• HI_IO_NOBLOCK: 非 阻 塞 。动 态 属 性 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_ILLEGAL_PARAM 参 数 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXISTHI_ERR_VDEC_NOT_PERMHI_ERR_VDEC_BUF_FULL试 图 使 用 或 者 销 毁 不 存 在 的 设 备 、 通 道或 者 资 源 。操 作 不 允 许 , 在 通 道 未 准 备 好 接 收 码 流的 情 况 下 向 此 通 道 发 送 码 流 。缓 冲 区 满 , 非 阻 塞 接 口 如 果 发 送 失 败 则返 回 此 错 误 。HI_ERR_VDEC_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-19


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 此 接 口 通 过 改 变 Flag 值 支 持 阻 塞 方 式 和 非 阻 塞 方 式 工 作 。• 发 送 数 据 前 必 须 保 证 通 道 已 经 启 动 接 收 码 流 , 否 则 直 接 返 回HI_ERR_VDEC_NOT_PERM。 如 果 在 发 送 数 据 过 程 中 停 止 接 收 码 流 , 就 会 立 刻 返回 HI_ERR_VDEC_NOT_PERM。• 发 送 数 据 前 必 须 保 证 通 道 已 经 被 创 建 , 否 则 直 接 返 回 HI_ERR_VDEC_UNEXIST。如 果 在 发 送 数 据 过 程 中 销 毁 通 道 , 就 会 立 刻 返 回 HI_ERR_VDEC_UNEXIST。• 发 送 码 流 时 需 要 按 照 创 建 解 码 通 道 时 设 置 的 发 送 方 式 ( 按 帧 发 送 或 流 式 发 送 ) 进行 发 送 。 按 帧 发 送 时 , 调 用 此 接 口 一 次 , 必 须 发 送 完 整 的 一 帧 码 流 , 否 则 , 解 码会 出 现 错 误 。 流 式 发 送 则 无 此 限 制 。• 若 发 现 码 流 中 有 超 大 帧 时 , 会 立 即 返 回 HI_ERR_VDEC_NOT_SUPPORT。【 举 例 】请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VDEC_GetData【 描 述 】获 取 视 频 解 码 通 道 的 解 码 数 据 。【 语 法 】HI_S32 HI_MPI_VDEC_GetData(VDEC_CHN VdChn, VDEC_DATA_S *pstData, HI_U32u32BlockFlag);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。u32BlockFlag 阻 塞 非 阻 塞 标 志 。取 值 范 围 :• HI_IO_BLOCK: 阻 塞 。• HI_IO_NOBLOCK: 非 阻 塞 。动 态 属 性 。输 入输 入8-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码参 数 名 称 描 述 输 入 / 输 出pstData获 取 的 解 码 数 据 , 包 括 解 码 后 的 图 像 信 息 和 用 户 数据 。输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_UNEXIST试 图 使 用 或 者 销 毁 不 存 在 的 设 备 、 通 道或 者 资 源 。HI_ERR_VDEC_BUF_EMPTY 非 阻 塞 获 取 时 , 缓 冲 区 中 无 数 据 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 解 码 数 据 包 括 图 像 信 息 和 用 户 数 据 。• 此 接 口 支 持 阻 塞 方 式 和 非 阻 塞 方 式 工 作 。• 如 果 获 取 成 功 返 回 , 要 根 据 图 像 信 息 和 用 户 数 据 结 构 体 中 的 判 断 位 来 判 断 , 判 断获 取 的 数 据 是 图 像 信 息 , 还 是 用 户 数 据 中 的 一 项 或 者 多 项 。• 通 过 HI_MPI_VDEC_GetData 获 取 解 码 图 像 数 据 后 , 需 要 通 过HI_MPI_VDEC_ReleaseData 来 释 放 。• 获 取 解 码 后 数 据 时 必 须 保 证 通 道 已 经 被 创 建 , 否 则 直 接 返 回 失 败 , 如 果 在 获 取 解码 后 数 据 的 过 程 中 销 毁 通 道 , 则 会 立 刻 返 回 失 败 。【 举 例 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-21


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VDEC_ReleaseData【 描 述 】释 放 视 频 解 码 通 道 的 图 像 缓 存 。【 语 法 】HI_S32 HI_MPI_VDEC_ReleaseData(VDEC_CHN VdChn, VDEC_DATA_S *pstData);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstData解 码 后 的 图 像 信 息 指 针 , 由 HI_MPI_VDEC_GetData 接口 获 取 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_SYS_NOTREADY 系 统 未 初 始 化 。HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_UNEXIST试 图 使 用 或 者 销 毁 不 存 在 的 设 备 、 通 道或 者 资 源 。HI_ERR_VDEC_ILLEGAL_PARAM 参 数 超 出 合 法 范 围 。8-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 此 接 口 需 与 HI_MPI_VDEC_GetData 配 对 使 用 , 获 取 的 数 据 应 当 在 使 用 完 之 后 立即 释 放 , 如 果 不 及 时 释 放 , 会 导 致 解 码 过 程 阻 塞 等 待 资 源 。• 释 放 的 数 据 必 须 是 HI_MPI_VDEC_GetData 从 该 通 道 获 取 的 数 据 , 不 得 对 数 据 信息 结 构 体 进 行 任 何 修 改 , 也 不 允 许 释 放 从 其 他 的 通 道 获 取 的 数 据 , 否 则 会 导 致 数据 不 能 释 放 , 使 此 数 据 buffer 丢 失 , 甚 至 导 致 程 序 异 常 。• 释 放 数 据 时 必 须 保 证 通 道 已 经 被 创 建 , 否 则 直 接 返 回 HI_ERR_VDEC_UNEXIST。如 果 在 释 放 数 据 过 程 中 销 毁 通 道 , 则 会 立 即 返 回 HI_ERR_VDEC_UNEXIST。【 举 例 】请 参 见 HI_MPI_VDEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_VDEC_GetCapability【 描 述 】获 取 视 频 解 码 能 力 集 。【 语 法 】HI_S32 HI_MPI_VDEC_GetCapability (VDEC_CAPABILITY_S*pstCap);【 参 数 】参 数 名 称 描 述 输 入 / 输 出pstCap 解 码 能 力 集 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-23


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_NULL_PTR 参 数 中 有 空 指 针 。HI_ERR_VDEC_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能 。HI_ERR_VDEC_SYS_NOTREADY 系 统 未 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 无 需 创 建 通 道 即 可 获 取 解 码 能 力 集 。• 各 个 协 议 编 码 能 力 集 不 同 。【 举 例 】VDEC_CAPABILITY_S scapability;H264_VDEC_CAPABILITY_S sh264dcapability;HI_MPI_VDEC_GetFdscapability.enType = PT_H264;scapability.pCapability = &sh264dcapability;if (HI_MPI_VDEC_GetCapability(&scapability) != HI_SUCCESS ){printf("get vdec capability failed!\n”);}【 相 关 主 题 】无 。【 描 述 】获 取 视 频 解 码 通 道 的 设 备 文 件 句 柄 。【 语 法 】HI_S32 HI_MPI_VDEC_GetFd(VDEC_CHN VdChn);【 参 数 】8-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】int fd;VDEC_CHN VdChn = 0;HI_MPI_VDEC_ResetChnfd = HI_MPI_VDEC_GetFd(VdChn);if (fd


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_S32 HI_MPI_VDEC_ResetChn(VDEC_CHN VdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 不 存 在 。HI_ERR_VDEC_NOT_PERM操 作 不 允 许 。 在 进 行 此 操 作 前 必 须 停 止接 收 码 流 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 复 位 前 必 须 保 证 通 道 已 创 建 , 否 则 会 返 回 错 误 码 HI_ERR_VDEC_UNEXIST。• 复 位 前 必 须 停 止 接 收 码 流 , 否 则 返 回 错 误 码 HI_ERR_VDEC_NOT_PERM。• 复 位 操 作 未 完 成 前 , 不 响 应 用 户 的 任 何 操 作 , 如 发 送 码 流 、 销 毁 通 道 等 , 均 会 返回 错 误 码 HI_ERR_VDEC_NOT_PERM。• JPEG/MJPEG 不 支 持 reset 功 能 。【 举 例 】/* stop recv stream */s32ret = HI_MPI_VDEC_StopRecvStream (VdChn);if (HI_SUCCESS != s32ret){8-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码}printf("stop recv stream failed errno 0x%x \n", s32ret);return s32ret;/* reset vdec chn*/s32ret = HI_MPI_VDEC_ResetChn(VdChn);if (HI_SUCCESS != s32ret){printf("reset vdec chn failed errno 0x%x \n", s32ret);return s32ret;}/* re-start vdec to receive stream */s32ret = HI_MPI_VDEC_StartRecvStream(VdChn);if (HI_SUCCESS != s32ret){printf("start recv stream failed, errno 0x%x \n", s32ret);return s32ret;}【 相 关 主 题 】无 。HI_MPI_VDEC_UnbindOutputChn【 描 述 】解 除 视 频 输 出 与 某 解 码 通 道 的 绑 定 关 系 。【 语 法 】HI_S32 HI_MPI_VDEC_UnbindOutputChn(VDEC_CHN VdChn, VO_DEV VoDev, VO_CHNVoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。VoDev 视 频 输 出 设 备 号 。取 值 范 围 :[0, VO_MAX_DEV_NUM)。VoChn 视 频 输 出 VO 通 道 号 。取 值 范 围 :[0, VO_MAX_CHN_NUM)。输 入输 入输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-27


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_INVALID_DEVID VO 设 备 号 超 出 范 围 。HI_ERR_VDEC_UNEXIST 通 道 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。HI_ERR_VDEC_NOT_PERM 操 作 不 允 许 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 解 绑 定 某 VO 通 道 。 如 果 需 要 解 绑 定 所 有 VO 通 道 , 建 议 使 用HI_MPI_VDEC_UnbindOutput。• 如 果 重 复 解 绑 定 , 则 返 回 HI_ERR_VDEC_NOT_PERM。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VDEC_QueryData【 描 述 】查 询 是 否 有 解 码 数 据 。【 语 法 】8-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码HI_S32 HI_MPI_VDEC_QueryData(VDEC_CHN VdChn,HI_BOOL *pbIsData);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pbIsData是 否 有 解 码 数 据 。 解 码 数 据 包 括 解 码 图 像 、 用 户 数 据等 。取 值 范 围 :{HI_TRUE, HI_FALSE}。输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】如 果 有 解 码 图 像 或 者 用 户 数 据 , 则 输 出 HI_TRUE, 否 则 输 出 HI_FALSE。【 举 例 】无 。【 相 关 主 题 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-29


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_VDEC_SetChnParam【 描 述 】设 置 解 码 通 道 参 数 。【 语 法 】HI_S32 HI_MPI_VDEC_SetChnParam(VDEC_CHN VdChn, VDEC_CHN_PARAM_S*pstChnParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstChnParam 通 道 参 数 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 不 存 在 。HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】• 一 般 情 况 下 , 不 需 要 调 用 该 接 口 。• 必 须 停 止 接 收 码 流 , 且 码 流 Buffer 中 的 码 流 全 部 解 完 之 后 , 才 能 调 用 该 接 口 。8-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码• 若 发 现 超 大 帧 , 建 议 增 大 码 流 Buffer 来 解 决 。 用 户 也 可 以 利 用 该 接 口 增 加 帧 最 大值 来 尝 试 解 决 。• 只 有 在 某 些 极 特 殊 场 景 ( 如 噪 声 测 试 序 列 等 ) 中 才 可 能 出 现 超 大 帧 , 自 然 视 频 极少 出 现 。 若 码 流 Buffer 足 够 大 , 如 设 为 ( 图 像 宽 % 图 像 高 %3), 也 不 会 出 现 超 大 帧的 情 况 。【 举 例 】无 。【 相 关 主 题 】无 。HI_MPI_VDEC_GetChnParam【 描 述 】获 取 解 码 通 道 参 数 。【 语 法 】HI_S32 HI_MPI_VDEC_GetChnParam(VDEC_CHN VdChn, VDEC_CHN_PARAM_S*pstChnParam);【 参 数 】参 数 名 称 描 述 输 入 / 输 出VdChn 视 频 解 码 通 道 号 。取 值 范 围 :[0, VDEC_MAX_CHN_NUM)。输 入pstChnParam 通 道 参 数 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围 。HI_ERR_VDEC_UNEXIST 通 道 不 存 在 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-31


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_VDEC_SYS_NOTREADY 系 统 没 有 初 始 化 或 者 已 经 去 初 始 化 。【 需 求 】• 头 文 件 :mpi_vdec.h、hi_comm_vdec.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 相 关 主 题 】无 。8.4 数 据 类 型VDEC_CHN_ATTR_S视 频 解 码 相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• VDEC_CHN_ATTR_S: 定 义 视 频 解 码 通 道 属 性 。• VDEC_ATTR_JPEG_S: 定 义 使 用 JPEG 解 码 协 议 的 视 频 解 码 通 道 属 性 结 构 体 。• VDEC_ATTR_H264_S: 定 义 使 用 H.264 解 码 协 议 的 视 频 解 码 通 道 属 性 结 构 体 。• VDEC_STREAM_S: 定 义 解 码 码 流 结 构 体 。• VDEC_USERDATA_S: 定 义 用 户 私 有 数 据 结 构 体 。• VDEC_CHN_STAT_S: 定 义 通 道 状 态 结 构 体 。• VDEC_FRAME_INFO_S: 定 义 解 码 帧 信 息 结 构 体 。• VDEC_DATA_S: 定 义 解 码 数 据 结 构 体 。• VDEC_WM_ATTR_S: 定 义 解 码 数 字 水 印 设 置 结 构 体 。• H264_VDEC_CAPABILITY_S: 定 义 H.264 解 码 私 有 能 力 集 描 述 结 构 体 。• JPEG_VDEC_CAPABILITY_S: 定 义 JPEG 解 码 私 有 能 力 集 描 述 结 构 体 。• VDEC_CAPABILITY_S: 定 义 解 码 通 道 能 力 集 。• H264D_MODE_E: 定 义 码 流 发 送 方 式 。• VDEC_CHN_PARAM_S: 定 义 解 码 通 道 参 数 。【 说 明 】定 义 视 频 解 码 通 道 属 性 结 构 体 。8-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码【 定 义 】typedef struct hiVDEC_CHN_ATTR_S{PAYLOAD_TYPE_E enType;HI_U32u32BufSize;HI_VOID*pValue;}VDEC_CHN_ATTR_S;【 成 员 】成 员 名 称enType描 述解 码 协 议 类 型 枚 举 值 。 目 前 仅 支 持 JPEG 和 H.264。静 态 属 性 。u32BufSize 码 流 缓 存 的 大 小 。取 值 范 围 : 大 于 等 于 解 码 通 道 大 小 ( 宽 % 高 ) 的 3/4 倍 , 即 420 图象 大 小 的 一 半 ( 宽 % 高 ×3/2×1/2), 以 byte 为 单 位 。推 荐 值 : 一 幅 YUV420 解 码 图 像 大 小 。 即 : 宽 × 高 ×1.5。静 态 属 性 。pValue void* 类 型 , 指 向 解 码 协 议 的 属 性 的 指 针 。VDEC_ATTR_JPEG_S【 描 述 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VDEC_CreateChn【 说 明 】定 义 使 用 JPEG 解 码 协 议 的 视 频 解 码 通 道 属 性 。【 定 义 】typedef struct hiVDEC_ATTR_JPEG_S{HI_U32 u32Priority;HI_U32 u32PicWidth;HI_U32 u32PicHeight;}VDEC_ATTR_JPEG_S;【 成 员 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-33


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述u32Priority 通 道 优 先 级 。该 属 性 项 目 前 无 用 , 且 无 取 值 范 围 限 制 。静 态 属 性 。u32PicWidth 解 码 图 像 宽 度 。取 值 范 围 :[64, 4096]。静 态 属 性 。u32PicHeight 解 码 图 像 高 度 。取 值 范 围 :[32, 4096]。静 态 属 性 。VDEC_ATTR_H264_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VDEC_CreateChn【 说 明 】定 义 使 用 H.264 解 码 协 议 的 视 频 解 码 通 道 属 性 。【 定 义 】typedef struct hiVDEC_ATTR_H264_S{HI_U32 u32Priority;HI_U32 u32PicWidth;HI_U32 u32PicHeight;HI_U32 u32RefFrameNum;H264D_MODE_E enMode;}VDEC_ATTR_H264_S;【 成 员 】成 员 名 称描 述u32Priority 通 道 优 先 级 。该 属 性 项 目 前 无 用 , 且 无 取 值 范 围 限 制 。静 态 属 性 。8-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码成 员 名 称描 述u32PicWidth 解 码 图 像 宽 度 。取 值 范 围 :[64,4096]。静 态 属 性 。u32PicHeight 解 码 图 像 高 度 。取 值 范 围 :[64,4096]。静 态 属 性 。u32RefFrameNum 参 考 帧 的 数 目 。取 值 范 围 :[1, 16], 以 帧 为 单 位 。参 考 帧 的 数 目 决 定 解 码 时 需 要 的 参 考 帧 个 数 , 会 较 大 的 影 响 内 存占 用 , 根 据 实 际 情 况 设 置 合 适 的 值 。• 海 思 自 编 码 流 : 推 荐 设 为 3。• 其 他 监 控 码 流 : 推 荐 设 为 5。• 测 试 码 流 : 推 荐 设 为 16。静 态 属 性 。enMode 码 流 发 送 方 式 。支 持 按 帧 或 者 按 流 。静 态 属 性 。VDEC_STREAM_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VDEC_CreateChn【 说 明 】定 义 视 频 解 码 的 码 流 结 构 体 。【 定 义 】typedef struct hiVDEC_STREAM_S{HI_U8* pu8Addr;HI_U32 u32Len;HI_U64 u64PTS;}VDEC_STREAM_S;【 成 员 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-35


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述pu8Addr 码 流 包 的 地 址 。u32Len 码 流 包 的 长 度 。以 byte 为 单 位 。u64PTS 码 流 包 的 时 间 戳 。以 μs 为 单 位 。VDEC_USERDATA_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 用 户 私 有 数 据 结 构 体 。【 定 义 】typedef struct hiVDEC_PRIDATA_S{HI_U8* pu8Addr;HI_U32 u32Len;HI_BOOL bValid;}VDEC_USERDATA_S;【 成 员 】成 员 名 称描 述pu8Addr 私 有 数 据 的 地 址 。u32BufSize 私 有 数 据 的 长 度 。以 byte 为 单 位 。bValid 当 前 私 有 数 据 的 有 效 标 识 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 有 效 。• HI_FALSE: 无 效 。【 注 意 事 项 】8-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码VDEC_CHN_STAT_S无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 通 道 状 态 结 构 体 。【 定 义 】typedef struct hiVDEC_CHN_STAT_S{HI_U32 u32LeftStreamBytes; /* 待 解 码 byte 数 */HI_U32 u32LeftStreamFrames; /* 待 解 码 的 frame 数 */HI_U32 u32LeftPics; /* 待 获 取 的 pic 数 */HI_BOOL bStartRecvStream; /* 是 否 允 许 接 收 码 流 */HI_U32 u32RecvStreamFrames; /* 已 接 收 的 frame 数 */HI_U32 u32DecodeStreamFrames; /* 已 解 码 的 frame 数 */}VDEC_CHN_STAT_S;【 成 员 】成 员 名 称描 述u32LeftStreamBytes 码 流 buffer 中 待 解 码 的 byte 数 。u32LeftStreamFrames 码 流 buffer 中 待 解 码 的 帧 数 。–1 表 示 无 效 。仅 H.264 解 码 且 按 帧 发 送 时 有 效 。u32LeftPics 图 像 buffer 中 剩 余 的 pic 数 目 。bStartRecvStream 解 码 器 是 否 已 经 启 动 接 收 码 流 。u32RecvStreamFrames 码 流 buffer 中 已 接 收 帧 数 。-1 表 示 无 效 。仅 H.264 解 码 且 按 帧 发 送 时 有 效 。u32DecodeStreamFrames 码 流 buffer 中 已 解 码 帧 数 。-1 表 示 无 效 。仅 H.264 解 码 且 按 帧 发 送 时 有 效 。u32RecvStreamFrames = u32DecodeStreamFrames +u32LeftStreamFrames。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-37


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。VDEC_FRAME_INFO_S【 说 明 】定 义 视 频 解 码 帧 信 息 结 构 体 。【 定 义 】typedef struct hiVDEC_FRAME_S{VIDEO_FRAME_INFO_S stVideoFrameInfo;HI_BOOLbValid;}VDEC_FRAME_INFO_S;【 成 员 】成 员 名 称描 述stVideoFrameInfo 解 码 视 频 帧 信 息 结 构 体 。bValid 当 前 解 码 视 频 帧 的 有 效 标 识 。取 值 范 围 :{HI_TRUE, HI_FALSE}。• HI_TRUE: 有 效 。• HI_FALSE: 无 效 。VDEC_DATA_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 视 频 解 码 数 据 结 构 体 。【 定 义 】typedef struct hiVDEC_DATA_S{VDEC_FRAME_INFO_S stFrameInfo;8-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码VDEC_WATERMARK_SVDEC_USERDATA_S} VDEC_DATA_S;stWaterMark;stUserData;【 成 员 】成 员 名 称描 述stFrameInfo 视 频 解 码 帧 信 息 。stWaterMark 数 字 水 印 ( 本 版 本 不 支 持 )。stUserData 用 户 私 有 数 据 。VDEC_WM_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 解 码 数 字 水 印 设 置 结 构 体 。【 定 义 】typedef struct hiVDEC_WM_ATTR_S{HI_U8 u8Key[DWM_KEY_LEN];}VDEC_WM_ATTR_S;【 成 员 】成 员 名 称描 述u8Key[DWM_KEY_LEN] 数 字 水 印 字 符 串 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_VDEC_CreateChnH264_VDEC_CAPABILITY_S【 说 明 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-39


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考定 义 H.264 解 码 私 有 能 力 集 描 述 结 构 体 。【 定 义 】typedef struct hiH264_VDEC_CAPABILITY_S{HI_U8 profile;HI_U8 level;HI_U8 FMO;HI_U8 ASO;HI_U8 MBAFF;HI_U8 PAFF;HI_U8 BSlice;HI_U8 subqcif;HI_U8 qcif;HI_U8 cif;HI_U8 fourcif;HI_U8 sixteencif;HI_U8 lostpacket;HI_U16 upperbandwidth;HI_U16 lowerbandwidth;HI_U8 palfps;HI_U8 ntscfps;}H264_VDEC_CAPABILITY_S;;【 成 员 】成 员 名 称profile描 述0:baseline。1:mainprofilelevel 4:4, 高 4 位 表 示 整 数 位 , 低 4 位 表 示 小 数 位 。例 如 0x22 表 示 level2.2。FMOASOMBAFFFlexible Macroblock Ordering。0: 不 支 持 。1: 支 持 。Arbitrary Slice Ordering。0: 不 支 持 。1: 支 持 。macroblock-adaptive frame/field。0: 不 支 持 。1: 支 持 。8-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码成 员 名 称PAFFBSlice描 述picture-adaptive frame/field。0: 不 支 持 。1: 支 持 。B slice。0: 不 支 持 。1: 支 持 。subqcif SubQCIF 图 像 。0: 不 支 持 。1: 支 持 。qcif QCIF 图 像 。0: 不 支 持 。1: 支 持 。cif CIF 图 像 。0: 不 支 持 。1: 支 持 。fourcif 4CIF 图 像 。0: 不 支 持 。1: 支 持 。sixteencif 16CIF 图 像 。0: 不 支 持 。1: 支 持 。lostpacket 丢 包 。0: 不 支 持 。1: 支 持 。upperbandwidth 带 宽 上 限 。以 kbit/s 为 单 位 。lowerbandwidth 带 宽 下 限 。以 kbit/s 为 单 位 。palfps pal 制 式 帧 率 。以 帧 / 秒 单 位 。ntscfps ntsc 制 式 帧 率 。以 帧 / 秒 单 位 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-41


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。JPEG_VDEC_CAPABILITY_S【 说 明 】定 义 JPEG 解 码 私 有 能 力 集 描 述 结 构 体 。【 定 义 】typedef struct hiJPEG_VDEC_CAPABILITY_S{HI_U32 enProcess; /* 支 持 的 JPEG 编 码 过 程 0:baseline 1:extenedprofile 2:loseless profile 3:hierarchical profile*/HI_U32 u32ComponentNum; /* 支 持 的 分 量 个 数 */HI_U32 u32QTNum; /* 支 持 的 量 化 表 数 目 */HI_BOOL bYUV420; /* 是 否 支 持 4:2:0 采 样 格 式 */HI_BOOL bYUV422; /* 是 否 支 持 4:2:2 采 样 格 式 */HI_BOOL bYUV444; /* 是 否 支 持 4:4:4 采 样 格 式 */HI_U8 lostpacket; /* 丢 包 :1 支 持 ;0 不 支 持 */HI_U16 upperbandwidth; /* 带 宽 上 限 单 位 kbps*/HI_U16 lowerbandwidth; /* 带 宽 下 限 单 位 kbps*/HI_U8 palfps; /*pal 制 式 fps 单 位 帧 / 秒 */HI_U8 ntscfps; /*ntsc 制 式 fps 单 位 帧 / 秒 */}JPEG_VDEC_CAPABILITY_S;【 成 员 】成 员 名 称描 述enProcess 支 持 的 JPEG 编 码 过 程 。0:baseline。1:extened profile。2:loseless profile。3:hierarchical profile。u32ComponentNum 支 持 的 分 量 个 数 。u32QTNum 支 持 的 量 化 表 数 目 。bYUV420 是 否 支 持 4:2:0 采 样 格 式 。8-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码成 员 名 称描 述bYUV422 是 否 支 持 4:2:2 采 样 格 式 。bYUV444 是 否 支 持 4:4:4 采 样 格 式 。lostpacket 丢 包 。0: 不 支 持 。1: 支 持 。upperbandwidth 带 宽 上 限 。以 kbit/s 为 单 位 。lowerbandwidth 带 宽 下 限 。以 kbit/s 为 单 位 。palfps pal 制 式 帧 率 。以 帧 / 秒 单 位 。ntscfps ntsc 制 式 帧 率 。以 帧 / 秒 单 位 。VDEC_CAPABILITY_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 解 码 通 道 能 力 集 结 构 体 。【 定 义 】typedef struct hiVDEC_CAPABILITY_S{PAYLOAD_TYPE_E enType;HI_VOID *pCapability;} VDEC_CAPABILITY_S;【 成 员 】成 员 名 称描 述enType 解 码 协 议 类 型 。pCapability 能 力 集 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-43


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考H264D_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 码 流 发 送 方 式 。【 定 义 】typedef enum hiH264D_MODE_E{H264D_MODE_STREAM = 0,H264D_MODE_FRAME,H264D_MODE_BUTT}H264D_MODE_E;【 成 员 】成 员 名 称描 述H264D_MODE_STREAM 按 流 方 式 发 送 码 流 。H264D_MODE_FRAME 发 送 码 流 。以 帧 为 单 位 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。VDEC_CHN_PARAM_S【 说 明 】定 义 解 码 通 道 参 数 。【 定 义 】typedef struct hiVDEC_CHN_PARAM_S{HI_U32 u32FrameSizeMax;8-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考8 视 频 解 码HI_BOOL bDirectOut;} VDEC_CHN_PARAM_S;【 成 员 】成 员 名 称描 述u32FrameSizeMax 帧 最 大 值 。取 值 范 围 :[u32BufSize / 2, u32BufSize %3 / 4]。目 前 , 仅 对 H.264 解 码 通 道 有 效 。bDirectOut0: 普 通 输 出 模 式 。 当 码 流 的 解 码 顺 序 与 输 出 顺 序 不 一 致时 , 请 使 用 该 方 式 。1: 直 接 输 出 模 式 。 默 认 值 。仅 对 H.264 解 码 通 道 有 效 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。8.5 错 误 码错 误 代 码 宏 定 义 描 述0xA00C8001 HI_ERR_VDEC_INVALID_DEVID 设 备 ID 超 出 合 法 范 围0xA00C8002 HI_ERR_VDEC_INVALID_CHNID 通 道 ID 超 出 合 法 范 围0xA00C8003 HI_ERR_VDEC_ILLEGAL_PARAM 参 数 超 出 合 法 范 围0xA00C8004 HI_ERR_VDEC_EXIST 试 图 申 请 或 者 创 建 已 经 存在 的 设 备 、 通 道 或 者 资 源0xA00C8005 HI_ERR_VDEC_UNEXIST 试 图 使 用 或 者 销 毁 不 存 在的 设 备 、 通 道 或 者 资 源0xA00C8006 HI_ERR_VDEC_NULL_PTR 函 数 参 数 中 有 空 指 针0xA00C8007 HI_ERR_VDEC_NOT_CONFIG 使 用 前 未 配 置0xA00C8008 HI_ERR_VDEC_NOT_SUPPORT 不 支 持 的 参 数 或 者 功 能0xA00C8009 HI_ERR_VDEC_NOT_PERM 该 操 作 不 允 许 , 如 试 图 修改 静 态 配 置 参 数文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司8-45


8 视 频 解 码Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考错 误 代 码 宏 定 义 描 述0xA00C800C HI_ERR_VDEC_NOMEM 分 配 内 存 失 败 , 如 系 统 内存 不 足0xA00C800D HI_ERR_VDEC_NOBUF 分 配 缓 存 失 败 , 如 申 请 的数 据 缓 冲 区 太 大0xA00C800E HI_ERR_VDEC_BUF_EMPTY 缓 冲 区 中 无 数 据0xA00C800F HI_ERR_VDEC_BUF_FULL 缓 冲 区 中 数 据 满0xA00C8010 HI_ERR_VDEC_SYS_NOTREADY 系 统 未 初 始 化8-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录9 音 频 ...............................................................................................................................................9-19.1 概 述 ..............................................................................................................................................................9-19.2 重 要 概 念 ......................................................................................................................................................9-19.3 API 参 考 .......................................................................................................................................................9-69.3.1 音 频 输 入 ............................................................................................................................................9-69.3.2 音 频 输 出 ..........................................................................................................................................9-239.3.3 音 频 编 码 ..........................................................................................................................................9-449.3.4 音 频 解 码 ..........................................................................................................................................9-509.4 数 据 类 型 ....................................................................................................................................................9-579.4.1 音 频 输 入 输 出 ...................................................................................................................................9-579.4.2 音 频 编 码 ..........................................................................................................................................9-719.4.3 音 频 解 码 ..........................................................................................................................................9-759.5 错 误 码 ........................................................................................................................................................9-80文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考插 图 目 录插 图 目 录图 9-1 Hi3520 SIO 与 AI、AO 关 系 示 意 .........................................................................................................9-2图 9-2 I 2 S 2/4/8/16 路 接 收 .................................................................................................................................9-3文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-1


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考表 格 目 录表 格 目 录表 9-1 音 频 编 解 码 协 议 说 明 .............................................................................................................................9-3表 9-2 AAC Encoder 各 协 议 情 况 下 支 持 的 码 率 设 置 ( 码 率 单 位 为 kbps) ..................................................9-5表 9-3 AAC Encoder 各 协 议 情 况 下 推 荐 的 码 率 设 置 ( 码 率 单 位 为 kbps) ..................................................9-5表 9-4 海 思 语 音 帧 结 构 ....................................................................................................................................9-6表 9-5 音 频 输 入 API 错 误 码 ..........................................................................................................................9-80表 9-6 音 频 输 出 API 错 误 码 ..........................................................................................................................9-81表 9-7 音 频 编 码 API 错 误 码 ..........................................................................................................................9-81表 9-8 音 频 解 码 API 错 误 码 ..........................................................................................................................9-82文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-1


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频9 音 频9.1 概 述AUDIO 模 块 包 括 音 频 输 入 、 音 频 输 出 、 音 频 编 码 、 音 频 解 码 四 个 子 模 块 。 音 频 输 入 和输 出 模 块 通 过 对 Hi3520/Hi3515 芯 片 SIO 设 备 的 控 制 实 现 相 应 的 音 频 输 入 输 出 功 能 ;音 频 编 码 和 解 码 模 块 则 提 供 对 ADPCM、G726、G711、AMR 格 式 的 音 频 编 解 码 功 能9.2 重 要 概 念• SIO 及 AI、AO 设 备音 频 输 入 输 出 接 口 SIO(Sonic Input/Output), 用 于 和 片 外 Audio CODEC 芯 片 连接 , 完 成 音 乐 ( 语 音 ) 的 播 放 及 录 制 。Hi3520 芯 片 提 供 3 个 SIO 接 口 ,Hi3515 芯片 提 供 2 个 SIO 接 口 , 依 次 标 示 为 SIO0、SIO1、SIO2。 每 个 SIO 接 口 都 能 同 时提 供 音 频 输 入 和 音 频 输 出 功 能 ( 但 由 于 芯 片 管 脚 的 限 制 , 各 个 SIO 支 持 的 情 况 是不 一 样 的 )。SIO0 能 同 时 提 供 音 频 输 入 和 输 出 功 能 ,SIO1 能 提 供 音 频 输 入 功 能 ; Hi3520 相 对Hi3515 而 言 , 增 加 了 SIO1 的 输 出 功 能 和 SIO2 的 输 入 功 能 , 但 这 两 者 是 复 用 关系 , 即 只 能 选 择 其 中 一 种 功 能 , 并 且 芯 片 管 脚 也 是 复 用 的 。软 件 SDK 将 音 频 输 入 和 输 出 功 能 分 别 用 AI 和 AO 两 个 模 块 来 管 理 ,AI 和 AO 又按 照 SIO 序 号 来 区 分 不 同 的 SIO 接 口 。 例 如 SIO0 的 输 入 接 口 称 为 AI0 设 备 ,SIO0 的 输 出 接 口 称 为 AO0 设 备 ,SIO1 的 输 入 接 口 称 为 AI1 设 备 , 如 图 9-1 所示 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-1


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考图 9-1 Hi3520 SIO 与 AI、AO 关 系 示 意SIO0SIO1SIO2AiDev0AoDev0AiDev1AoDev1/AiDev2注 :Hi3515 没 有 AoDev1/AiDev2• 音 频 接 口 时 序SIO 接 口 支 持 标 准 的 I 2 S 接 口 时 序 模 式 , 并 提 供 灵 活 的 配 置 以 支 持 与 多 种 AUDIOCODEC 对 接 。 详 细 的 时 序 支 持 情 况 请 参 考 《Hi3520/Hi3515 H.264 编 解 码 处 理 器用 户 指 南 》。用 户 需 要 对 I 2 S 协 议 以 及 对 接 的 CODEC 时 序 支 持 情 况 有 足 够 了 解 , 这 里 只 简 单 介绍 下 Hi3520/Hi3515 I 2 S 接 口 时 序 的 几 个 特 性 :−−−按 照 标 准 I 2 S 协 议 , 总 是 先 传 送 MSB, 后 传 送 LSB, 即 按 照 从 高 位 到 低 位 的 顺序 传 输 串 行 数 据 。Hi3520/Hi3515 SIO 支 持 扩 展 的 多 路 接 收 的 I 2 S 接 口 时 序 , 对 接 CODEC 的 时 序支 持 情 况 、 时 钟 、 位 宽 等 配 置 必 须 与 Hi3520/Hi3515 的 配 置 保 持 一 致 , 否 则 可能 采 集 不 到 正 确 的 数 据 。Hi3520/Hi3515 SIO 支 持 I 2 S 主 模 式 和 I 2 S 从 模 式 , 主 模 式 即 SIO 提 供 时 钟 , 从模 式 即 CODEC 提 供 时 钟 ; 主 模 式 时 SIO 提 供 的 时 钟 供 输 入 和 输 出 共 同 使 用 ,而 从 模 式 时 的 输 入 输 出 可 以 分 别 由 外 围 CODEC 提 供 时 钟 。• AI、AO 通 道标 准 的 I 2 S 协 议 只 有 左 右 声 道 这 两 个 通 道 的 概 念 ,Hi3520/Hi3515 SIO 同 时 能 够 支持 多 路 复 用 的 接 收 模 式 , 最 大 支 持 16bit 16 通 道 的 I 2 S 数 据 接 收 。SIO 本 身 并 不 关心 具 体 的 通 道 分 布 , 通 道 由 软 件 SDK 来 管 理 ; 根 据 输 入 和 输 出 的 不 同 , 分 为 AI通 道 和 AO 通 道 , 通 道 又 隶 属 于 设 备 , 例 如 AiDev0 下 可 支 持 多 个 通 道 AiChn0、AiChn1、…、AiChn15, 具 体 支 持 的 通 道 个 数 由 用 户 根 据 对 接 时 序 要 求 来 做 相 应的 配 置 。• AI、AO 通 道 排 列必 须 理 解 对 接 CODEC 通 道 和 AI、AO 通 道 的 对 应 关 系 , 才 能 从 正 确 的 通 道 获 取数 据 。Hi3520/Hi3515 SIO 在 一 个 帧 同 步 时 钟 内 , 最 大 能 接 收 16bit%16chn=256bit 的 音 频串 行 数 据 ; 如 图 9-2 所 示 , 通 道 的 排 列 顺 序 与 SIO 取 数 据 的 顺 序 一 致 , 即 从 高 位到 低 位 排 列 ;SIO 实 际 取 的 数 据 多 少 由 配 置 的 通 道 路 数 和 采 样 精 度 决 定 。9-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频图 9-2 I 2 S 2/4/8/16 路 接 收1/fsASYNRACLKR16 路0 1 2 3 4 5 6 7 8 9 A B C D E F8 路012 3 4 5 6 74 路012 32 路01MSBLSB8/16bit表 9-1 音 频 编 解 码 协 议 说 明• 音 频 编 解 码 协 议Hi3520、Hi3515 SDK 音 频 部 分 的 编 解 码 功 能 基 于 独 立 封 装 的 海 思 音 频 编 解 码 库 ,核 心 编 解 码 器 工 作 在 用 户 态 , 使 用 CPU 软 件 编 解 码 。Hi3520、Hi3515 支 持 的 音 频 编 解 码 协 议 说 明 如 表 9-1 所 示 。协 议 采 样 率 帧 长( 采 样点 )码 率(kbps)压 缩 率 CPU 消 耗 描 述G711 8kHz 80/160/240/320/48064 2 1/1 MHz 优 点 : 语 音 质 量 最 好 ;CPU 消 耗小 ; 支 持 广 泛 , 协 议 免 费 。缺 点 : 压 缩 效 率 低 。G.711 提 供 A 律 与 µ 律 压 缩 编码 , 适 用 于 综 合 业 务 网 和 大 多 数数 字 电 话 链 路 。 北 美 与 日 本 通 常采 用 µ 律 编 码 , 欧 洲 和 其 他 地 区大 都 采 用 A 律 编 码 。G726 8kHz 80/160/240/320/48016 、24 、32、408~3.2 5/5 MHz 优 点 : 算 法 简 单 ; 语 音 质 量 高 ,多 次 转 换 后 语 音 质 量 有 保 证 , 能够 在 低 码 率 上 达 到 网 络 等 级 的 话音 质 量 。缺 点 : 压 缩 效 率 较 低 。G726_16KBPS与MEDIA_G726_16KBPS 两 种 编 码文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-3


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考协 议 采 样 率 帧 长( 采 样点 )码 率(kbps)压 缩 率 CPU 消 耗 描 述器 区 别 在 于 编 码 输 出 的 打 包 格式 。G726_16KBPS 适 用 于 网 络 传输 ;MEDIA_G726_16KBPS 适 用于 ASF 存 储 。 请 参 考RFC3551.pdf。ADPCM 8kHz 80/160/240/320/48032 4 2/2 MHz 优 点 : 算 法 简 单 ; 语 音 质 量 高 ,多 次 转 换 后 语 音 质 量 有 保 证 , 能够 在 低 码 率 上 达 到 网 络 等 级 的 话音 质 量 。缺 点 : 压 缩 效 率 较 低 。ADPCM_IMA 编 码 器 需 要 多 输 入一 个 样 点 作 为 每 帧 编 码 的 参 考 电平 ,IMA 编 码 每 帧 输 入 样 点 个 数为 81/161/241/321/481。DVI 编 码每 帧 输 入 样 点 个 数 为80/160/240/320/480。AMR-NB 8kHz 160 4.75 、5.15 、5.9 、6.7 、7.4 、7.95 、10.2 、12.226.9~10.540/9MHz(VAD1)优 点 : 语 音 质 量 好 ; 压 缩 率 高 ;支 持 广 泛 。缺 点 : 运 算 复 杂 ,CPU 消 耗 大 ;需 要 收 专 利 费 。打 开 DTX, 在 静 音 情 况 下 , 可 进一 步 降 低 采 样 率 。AACEncoderAACLC支 持1024 ;EAAC 和EAACPLUS 支 持20481024 、2048- - 50 MHz AAC 有 两 次 突 破 性 的 技 术 升 级 :• aacPlus1 ( 即 EAAC ), 增 加SBR( 带 宽 扩 展 ) 技 术 , 使 得 编解 码 器 可 以 在 比 原 来 少 一 半 的码 率 的 条 件 下 达 到 相 同 的 音质 。• aacPlus2( 即 EAACPLUS),增 加 PS( 参 数 立 体 声 ) 技 术 , 在低 码 率 情 况 下 得 到 极 佳 的 音 质效 果 ,aacPlus2 可 以 在 48kbit/s的 速 率 下 得 到 CD 音 质 。推 荐 码 率 设 置 如 表 9-3 所 示 。AACDecoderAACLC支 持 :8,11.025,12,16,22.05,24,32,44.1,48,64,81024 、2048- - 25 MHz 后 向 兼 容 。 传 统 AAC 解 码 器 , 仅解 码 aac Plus v1 码 流 低 频 信 息 ,而 aacPlus 解 码 器 则 可 以 同 时 还 原高 频 信 息 。 不 支 持 PS 的 AAC 解码 器 , 解 码 aac Plus v2 码 流 时 ,9-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频协 议 采 样 率 帧 长8.2,96kHzaacPlusv1 支持 :16,22.05,24,32,44.1,48kHzaacPlusv2 支持 :16,22.05,24,32,44.1,48kHz( 采 样点 )码 率(kbps)压 缩 率 CPU 消 耗 描 述仅 能 得 到 单 声 道 信 息 , 而aacPlus2 解 码 器 则 可 以 得 到 立 体声 声 音 。AEC 8KHz 80、160 - - 50 MHz 2 路 语 音 输 入 , 分 别 为 远 端 语 音和 本 地 MIC 采 集 语 音 , 经 过 处 理后 可 消 除 本 地 语 音 里 的 回 声 。最 大 尾 长 为 960 个 样 点(120ms), 推 荐 打 开 NLP 开 关 。注 :“cpu 消 耗 ” 的 结 果 值 基 于 ARM9 288MHz 环 境 ,2/2 MHz 表 示 编 码 和 解 码 分 别 占 有 2M 和 2M CPU。表 9-2 AAC Encoder 各 协 议 情 况 下 支 持 的 码 率 设 置 ( 码 率 单 位 为 kbps)采 样 率 LC BitRate Plus v1 BitRate Plus v2 BitRate16kHz 16~96 Not supported Not supported22.05kHz 16~128 Not supported Not supported24kHz 16~128 Not supported Not supported32kHz 24~256 18~23 10~1744.1kHz 32~320 24~51 12~3548kHz 32~320 24~51 12~35表 9-3 AAC Encoder 各 协 议 情 况 下 推 荐 的 码 率 设 置 ( 码 率 单 位 为 kbps)采 样 率 LC BitRate Plus v1 BitRate Plus v2 BitRate16kHz 48 Not supported Not supported22.05kHz 64 Not supported Not supported文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-5


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考采 样 率 LC BitRate Plus v1 BitRate Plus v2 BitRate24kHz 64 Not supported Not supported32kHz 96 22 1644.1kHz 128 48 24、3248kHz 128 48 24、32• 海 思 语 音 帧 结 构使 用 海 思 语 音 编 解 码 库 进 行 G711、G726、ADPCM 格 式 的 编 码 , 编 码 后 的 码 流 遵循 以 下 表 格 中 描 述 的 帧 结 构 , 即 在 每 帧 码 流 数 据 的 净 荷 数 据 之 前 填 充 有 4 个 字 节的 帧 头 ; 使 用 语 音 编 解 码 库 进 行 以 上 格 式 的 解 码 时 , 需 要 读 取 相 应 的 帧 头 信 息 。表 9-4 海 思 语 音 帧 结 构参 数 位 置 ( 单 位 :HI_S16) 参 数 比 特 位 说 明 参 数 含 义0[15:8] 数 据 帧 类 型 标 志 位 。01: 语 音 帧 ;其 他 : 保 留 。[7:0] 保 留 。1[15:8] 帧 循 环 计 数 器 :0~255。[7:0] 数 据 净 荷 长 度 ( 单 位 :HI_S16)。2 [15:0] 净 荷 数 据 。3 [15:0] 净 荷 数 据 。…… [15:0] 净 荷 数 据 。2+n-1 [15:0] 净 荷 数 据 。2+n [15:0] 净 荷 数 据 。9.3 API 参 考9.3.1 音 频 输 入音 频 输 入 (AI) 主 要 实 现 配 置 及 启 用 音 频 输 入 设 备 、 获 取 音 频 帧 数 据 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_AI_SetPubAttr: 设 置 AI 设 备 属 性 。9-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频HI_MPI_AI_SetPubAttr• HI_MPI_AI_GetPubAttr: 获 取 AI 设 备 属 性 。• HI_MPI_AI_Enable: 启 用 AI 设 备 。• HI_MPI_AI_Disable: 禁 用 AI 设 备 。• HI_MPI_AI_EnableChn: 启 用 AI 通 道 。• HI_MPI_AI_DisableChn: 禁 用 AI 通 道 。• HI_MPI_AI_EnableAec: 启 用 回 声 抵 消 功 能 。• HI_MPI_AI_DisableAec: 禁 用 回 声 抵 消 功 能 。• HI_MPI_AI_EnableReSmp: 启 用 AI 重 采 样 。• HI_MPI_AI_DisableReSmp: 禁 用 AI 重 采 样 。• HI_MPI_AI_GetFd: 获 取 AI 通 道 对 应 设 备 文 件 句 柄 。【 描 述 】设 置 AI 设 备 属 性 。【 语 法 】HI_S32 HI_MPI_AI_SetPubAttr(AUDIO_DEV AudioDevId,const AIO_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入pstAttr AI 设 备 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-7


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_AI_ILLEGAL_PARAM 输 入 参 数 无 效 。HI_ERR_AI_NULL_PTR 空 指 针 错 误 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_NOT_PERM 操 作 非 法 。HI_ERR_AI_NOT_SUPPORT 操 作 不 支 持 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• 音 频 输 入 设 备 的 属 性 决 定 了 输 入 数 据 的 格 式 , 输 入 设 备 属 性 包 括 SIO 工 作 模 式 、采 样 率 、 采 样 精 度 、buffer 大 小 、 每 帧 的 采 样 点 数 、 扩 展 标 志 、 时 钟 选 择 和 通 道 数目 。−−−−−−−工 作 模 式SIO 输 入 输 出 目 前 支 持 I 2 S 主 模 式 和 I 2 S 从 模 式 。采 样 率采 样 率 指 一 秒 中 内 的 采 样 点 数 , 采 样 率 越 高 表 明 失 真 度 越 小 , 处 理 的 数 据 量 也就 随 之 增 加 。 主 模 式 下 目 前 支 持 8k、16k 以 及 32k 的 采 样 率 配 置 , 一 般 来 说 语音 使 用 8k 采 样 率 , 音 频 使 用 32k 或 以 上 的 采 样 率 ; 在 从 模 式 下 , 采 样 率 由codec 芯 片 决 定 。采 样 精 度采 样 精 度 指 某 个 通 道 的 采 样 点 数 据 宽 度 , 同 时 决 定 整 个 设 备 的 通 道 分 布 。 采 样位 宽 可 以 设 置 为 8bit、16bit 和 32bit。buffer 大 小AIO_ATTR_S 中 的 u32FrmNum 项 用 于 配 置 AI 音 频 帧 Buffer 的 大 小 , 以 帧 个 数为 单 位 , 建 议 配 置 为 5 以 上 , 否 则 可 能 出 现 采 集 丢 帧 等 异 常 。扩 展 标 志扩 展 标 志 表 明 在 8bit 采 样 精 度 的 条 件 下 是 否 需 要 对 8bit 数 据 进 行 8bit 到 16bit带 符 号 扩 展 , 扩 展 后 获 取 的 数 据 就 为 16bit, 以 满 足 编 码 器 需 求 。 在 设 置 非 8bit采 样 精 度 的 情 况 下 , 此 标 志 是 无 效 的 。通 道 数 目通 道 数 目 指 当 前 SIO 设 备 的 AI 功 能 支 持 的 最 大 通 道 数 目 , 需 与 对 接 的 AUDIOCODEC 的 配 置 保 持 一 致 ; 支 持 2 路 、4 路 、8 路 和 16 路 。时 钟 选 择此 项 在 I 2 S 从 模 式 和 I 2 S 主 模 式 时 的 意 义 不 同 。AUDIO CODEC 提 供 时 钟 ( 即I 2 S 从 模 式 ) 时 , 如 果 能 提 供 独 立 的 AD 和 DA 功 能 信 号 ( 即RCK/RFS/XCK/XFS), 那 么 将 此 项 配 置 为 0, 否 则 配 置 为 1;Hi3520/Hi3515 提9-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频供 时 钟 ( 即 I 2 S 主 模 式 ) 时 , 如 果 ACKOUT 时 钟 来 自 于 SIO 0, 则 将 此 项 配 置为 0, 如 果 ACKOUT 时 钟 来 自 于 SIO 1 或 2, 则 将 此 项 配 置 为 1。• 在 设 置 属 性 之 前 需 要 保 证 AI 处 于 非 启 用 状 态 , 如 果 处 于 启 用 状 态 则 需 要 首 先 禁 用AI 设 备 。• 同 一 SIO 下 的 AI 和 AO 设 备 的 主 从 模 式 、 时 钟 选 择 应 该 一 致 , 否 则 设 置 属 性 时 会返 回 错 误 。• 在 从 模 式 下 , 采 样 率 的 设 置 不 起 作 用 。• I 2 S 主 模 式 时 , 决 定 SIO 输 出 时 钟 的 关 键 配 置 项 是 采 样 率 、 采 样 精 度 以 及 通 道 数目 , 采 样 精 度 乘 以 通 道 数 目 即 为 I 2 S 时 序 一 次 采 样 的 位 宽 ;• I 2 S 主 模 式 时 , 同 一 SIO 下 的 AI 和 AO 设 备 的 时 钟 配 置 必 须 相 同 。• AI 必 须 和 AD 配 合 起 来 才 能 正 常 工 作 , 用 户 必 须 清 楚 AD 采 集 的 数 据 分 布 和 通 道的 关 系 才 能 从 正 确 的 通 道 取 得 数 据 。【 举 例 】下 面 的 代 码 实 现 设 置 AI 设 备 属 性 及 启 用 AI 设 备 。HI_S32 s32ret;AIO_ATTR_S stAttr;AUDIO_DEV AiDevId = 1;stAttr.enBitwidth = AUDIO_BIT_WIDTH_16;stAttr.enSamplerate = AUDIO_SAMPLE_RATE_8000;stAttr.enSoundmode = AUDIO_SOUND_MODE_MOMO;stAttr.enWorkmode = AIO_MODE_I2S_SLAVE;stAttr.u32EXFlag = 0;stAttr.u32FrmNum = 5;stAttr.u32PtNumPerFrm = 160;stAttr.u32ChnCnt = 16;stAttr.u32ClkSel = 0;/* set public attribute of AI device*/s32ret = HI_MPI_AI_SetPubAttr(AiDevId, &stAttr);if(HI_SUCCESS != s32ret){printf("set ai %d attr err:0x%x\n", AiDevId,s32ret);return s32ret;}/* enable AI device */s32ret = HI_MPI_AI_Enable(AiDevId);if(HI_SUCCESS != s32ret){printf("enable ai dev %d err:0x%x\n", AiDevId, s32ret);return s32ret;}文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-9


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 相 关 主 题 】无 。HI_MPI_AI_GetPubAttr【 描 述 】获 取 AI 设 备 属 性 。【 语 法 】HI_S32 HI_MPI_AI_GetPubAttr(AUDIO_DEV AudioDevId, AIO_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入pstAttr AI 设 备 公 共 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_NOT_CONFIG 音 频 输 入 设 备 属 性 未 配 置 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】9-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频• 获 取 的 属 性 为 前 一 次 配 置 的 属 性 。• 如 果 从 来 没 有 配 置 过 属 性 , 则 返 回 属 性 未 配 置 的 错 误 。【 举 例 】HI_S32 s32ret;AUDIO_DEV AiDevId = 1;AIO_ATTR_S stAttr;HI_MPI_AI_Enables32ret = HI_MPI_AI_GetPubAttr(AiDevId, &stAttr);if(HI_SUCCESS != s32ret){printf("get ai %d attr err:0x%x\n", AiDevId,s32ret);return s32ret;}【 相 关 主 题 】无 。【 描 述 】启 用 AI 设 备 。【 语 法 】HI_S32 HI_MPI_AI_Enable(AUDIO_DEV AudioDevId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-11


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_NOT_PERM 操 作 非 法 。HI_MPI_AI_Disable【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• 必 须 在 启 用 前 配 置 AI 设 备 属 性 , 否 则 返 回 属 性 未 配 置 错 误 。• 如 果 AI 设 备 已 经 处 于 运 行 状 态 , 则 直 接 返 回 成 功 。【 举 例 】请 参 见 HI_MPI_AI_SetPubAttr 的 举 例 。【 相 关 主 题 】无 。【 描 述 】禁 用 AI 设 备 。【 语 法 】HI_S32 HI_MPI_AI_Disable(AUDIO_DEV AudioDevId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。9-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 AI 设 备 已 经 处 于 非 运 行 状 态 , 则 直 接 返 回 成 功 。• 禁 用 AI 设 备 前 必 须 先 禁 用 该 设 备 下 已 启 用 的 所 有 AI 通 道 。【 举 例 】HI_S32 s32ret;AUDIO_DEV AiDevId = 1;HI_MPI_AI_EnableChns32ret = HI_MPI_AI_Disable(AiDevId);if(HI_SUCCESS != s32ret){printf("disable ai %d err:0x%x\n", AiDevId);return s32ret;}【 相 关 主 题 】无 。【 描 述 】启 用 AI 通 道 。【 语 法 】HI_S32 HI_MPI_AI_EnableChn(AUDIO_DEV AudioDevId, AI_CHN AiChn);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-13


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn 音 频 输 入 通 道 号 。支 持 的 通 道 范 围 由 AI 设 备 属 性 中 的 最 大 通 道 个 数u32ChnCnt 决 定 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_NOT_ENABLED 音 频 设 备 未 启 用 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】启 用 AI 通 道 前 , 必 须 先 启 用 其 所 属 的 AI 设 备 , 否 则 返 回 设 备 未 启 动 的 错 误 码 。【 举 例 】无 。【 相 关 主 题 】无 。9-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频HI_MPI_AI_DisableChn【 描 述 】禁 用 AI 通 道 。【 语 法 】HI_S32 HI_MPI_AI_DisableChn(AUDIO_DEV AudioDevId, AI_CHN AiChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn 音 频 输 入 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-15


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 举 例 】无 。HI_MPI_AI_EnableAec【 描 述 】启 用 指 定 AI 及 AO 的 回 声 抵 消 功 能 。【 语 法 】HI_S32 HI_MPI_AI_EnableAec(AUDIO_DEV AiDevId,AI_CHN AiChn, AUDIO_DEV AoDevId, AO_CHN AoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AiDevId 需 要 进 行 回 声 抵 消 的 AI 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn 需 要 进 行 回 声 抵 消 的 AI 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。AoDevId 用 于 回 声 抵 消 的 AO 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 用 于 回 声 抵 消 的 AO 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效 。HI_ERR_AI_NOT_PERM 操 作 非 法 。9-16海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频接 口 返 回 值含 义HI_ERR_AI_NOT_SUPPORT 操 作 不 支 持 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• 启 用 回 声 抵 消 前 必 须 先 启 用 相 对 应 的 AI 设 备 。• 成 功 启 用 回 声 抵 消 需 要 具 备 一 定 条 件 : 单 声 道 模 式 , 采 样 率 为 8kHz, 采 样 精 度 为16bit, 帧 长 为 80 或 160 个 采 样 点 , 且 AI 和 AO 帧 长 必 须 相 同 。 以 上 条 件 AI 和AO 都 必 须 满 足 ( 但 实 际 上 本 接 口 只 检 查 AI 的 属 性 )。• 多 次 启 用 相 同 AI、AO 的 回 声 抵 消 , 则 返 回 成 功 。【 举 例 】HI_S32 s32ret;AUDIO_DEV AiDevId = 1;AI_CHN AiChn = 0;AUDIO_DEV AoDevId = 0;AO_CHN AoChn = 0;s32ret = HI_MPI_AI_EnableAec(AiDevId, AiChn,AUDIO_DEV AoDevId,AO_CHNAoChn);if(HI_SUCCESS != s32ret){printf("enable aec err:0x%x\n", s32ret);return s32ret;}s32ret = HI_MPI_AI_DisableAec(AiDevId, AiChn)if(HI_SUCCESS != s32ret){printf("disable aec err:0x%x\n", s32ret);return s32ret;}【 相 关 主 题 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-17


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_AI_DisableAec【 描 述 】禁 用 回 声 抵 消 功 能 。【 语 法 】HI_S32 HI_MPI_AI_DisableAec(AUDIO_DEV AiDevId, AI_CHN AiChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AiDevId AI 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn AI 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h• 库 文 件 :libmpi.a【 注 意 】重 复 调 用 本 接 口 则 返 回 成 功 。9-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 举 例 】参 考 HI_MPI_AI_EnableAec 的 举 例 。【 相 关 主 题 】无 。HI_MPI_AI_EnableReSmp【 描 述 】启 用 AI 重 采 样 。【 语 法 】HI_S32 HI_MPI_AI_EnableReSmp(AUDIO_DEV AudioDevId, AI_CHN AiChn,AUDIO_RESAMPLE_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn 音 频 输 入 通 道 号 。实 际 支 持 的 通 道 范 围 由 采 样 精 度 决 定 。输 入输 入pstAttr 音 频 重 采 样 属 性 结 构 体 指 针 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AI_ILLEGAL_PARAM 输 入 参 数 非 法 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-19


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_AI_NOMEM 内 存 不 足 。HI_ERR_AI_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a libresample.a【 注 意 】• 在 启 用 AI 通 道 之 后 , 绑 定 AI 通 道 之 前 , 调 用 此 接 口 启 用 重 采 样 功 能 。• 如 果 启 用 AI 重 采 样 功 能 , 则 在 AI 通 道 输 出 音 频 原 始 数 据 之 前 , 内 部 将 会 先 执 行重 采 样 处 理 , 处 理 完 后 的 数 据 再 输 出 给 绑 定 的 AO 或 AENC。• 音 频 重 采 样 属 性 包 含 以 下 项 :− u32InPointNum: 输 入 音 频 帧 的 每 帧 采 样 点 个 数 。− enInSampleRate: 输 入 音 频 帧 的 采 样 率 。−enReSampleType: 重 采 样 类 型 , 支 持 2 到 1 倍 、4 到 1 倍 的 重 采 样 , 例 如32kHz 降 采 样 到 8kHz 或 16kHz 降 采 样 到 8kHz。• 重 采 样 处 理 后 音 频 帧 的 每 帧 采 样 点 数 目 会 发 生 变 化 , 调 用 HI_MPI_AI_SetPubAttr接 口 时 , 音 频 公 共 属 性 中 的 32PtNumPerFrm 项 应 该 配 置 为 重 采 样 之 前 的 值 , 本 接口 中 重 采 样 属 性 中 的 u32InPointNum 项 也 配 置 为 重 采 样 之 前 的 值 。例 如 AI 从 32K 到 8K 重 采 样 , 重 采 样 完 成 后 输 出 给 AO 或 AENC 的 每 帧 采 样 点 个数 将 会 是 重 采 样 前 的 四 分 之 一 , 如 果 期 望 输 出 的 采 样 点 数 为 320, 那 么 公 共 属 性 中的 u32PtNumPerFrm 项 则 应 配 置 为 320%4=1280, 重 采 样 属 性 中 的 u32InPointNum项 也 配 置 成 相 同 值 。• 不 允 许 重 复 启 用 重 采 样 功 能 , 即 在 再 次 启 用 之 前 需 要 先 将 其 禁 用 。【 举 例 】以 AI 从 32K 到 8K 的 重 采 样 为 例 , 配 置 如 下 :/* dev attr of ai */stAioAttr.u32ChnCnt = 2;stAioAttr.enBitwidth = AUDIO_BIT_WIDTH_16;stAioAttr.enSamplerate = AUDIO_SAMPLE_RATE_32000;stAioAttr.enSoundmode = AUDIO_SOUND_MODE_MOMO;stAioAttr.u32EXFlag = 1;stAioAttr.u32FrmNum = 30;stAioAttr.u32PtNumPerFrm = 320*4;/* attr of resample */stReSampleAttr.u32InPointNum = 320 * 4;stReSampleAttr.enInSampleRate = AUDIO_SAMPLE_RATE_32000;stReSampleAttr.enReSampleType = AUDIO_RESAMPLE_4X1;9-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频HI_MPI_AI_DisableReSmp【 描 述 】禁 用 AI 重 采 样 。【 语 法 】HI_S32 HI_MPI_AI_DisableReSmp(AUDIO_DEV AudioDevId, AI_CHN AiChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入AiChn 音 频 输 入 通 道 号 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效 。HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效 。HI_ERR_AI_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h、hi_comm_aio.h• 库 文 件 :libmpi.a libresample.a【 注 意 】不 再 使 用 AI 重 采 样 功 能 的 话 , 应 该 调 用 此 接 口 将 其 禁 用 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-21


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_AI_GetFd【 描 述 】获 取 音 频 输 入 通 道 号 对 应 的 设 备 文 件 句 柄 。【 语 法 】HI_S32 HI_MPI_AI_GetFd(AUDIO_DEV AudioDevId ,AI_CHN AiChn)【 参 数 】参 数 名 称 描 述 输 入 / 输 出AiDevId AI 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn AI 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ai.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】HI_S32 s32AiFd;HI_S32 s32ret;AUDIO_DEV AiDevId = 1;AI_CHN AiChn = 0;s32AiFd = HI_MPI_AI_GetFd(AiDevId, AiChn);if(s32AiFd


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频}return HI_FAILURE;9.3.2 音 频 输 出【 相 关 主 题 】无 。HI_MPI_AO_SetPubAttr音 频 输 出 (AO) 主 要 实 现 启 用 音 频 输 出 设 备 、 发 送 音 频 帧 到 输 出 通 道 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_AO_SetPubAttr: 设 置 AO 设 备 属 性 。• HI_MPI_AO_GetPubAttr: 获 取 AO 设 备 属 性 。• HI_MPI_AO_Enable: 启 用 AO 设 备 。• HI_MPI_AO_Disable: 禁 用 AO 设 备 。• HI_MPI_AO_EnableChn: 启 用 AO 通 道 。• HI_MPI_AO_DisableChn: 禁 用 AO 通 道 。• HI_MPI_AO_EnableReSmp: 启 用 AO 重 采 样 。• HI_MPI_AO_DisableReSmp: 禁 用 AO 重 采 样 。• HI_MPI_AO_BindAdec: 绑 定 AO 通 道 和 ADEC 通 道 。• HI_MPI_AO_UnBindAdec: 解 绑 定 AO 通 道 和 ADEC 通 道 。• HI_MPI_AO_BindAi: 绑 定 AO 通 道 和 AI 通 道 。• HI_MPI_AO_UnBindAi: 解 绑 定 AO 通 道 和 AI 通 道 。• HI_MPI_AO_PauseChn: 暂 停 AO 通 道 。• HI_MPI_AO_ResumeChn: 恢 复 AO 通 道 。• HI_MPI_AO_ClearChnBuf: 清 除 ADEC 通 道 中 当 前 的 音 频 数 据 缓 存 。• HI_MPI_AO_GetFd: 获 取 AO 通 道 对 应 的 设 备 文 件 句 柄 。【 描 述 】设 置 AO 设 备 属 性 。【 语 法 】HI_S32 HI_MPI_AO_SetPubAttr(AUDIO_DEV AudioDevId ,const AIO_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-23


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出pstAttr 音 频 输 出 设 备 属 性 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_ILLEGAL_PARAM 输 出 参 数 无 效 。HI_ERR_AO_NULL_PTR 空 指 针 错 误 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h• 库 文 件 :libmpi.a【 注 意 】• 在 设 置 属 性 之 前 需 要 保 证 AO 处 于 非 启 用 状 态 , 如 果 处 于 启 用 状 态 则 需 要 首 先 禁用 AO 设 备 。• 同 一 SIO 下 的 AI 和 AO 设 备 的 主 从 模 式 、 时 钟 选 择 应 该 一 致 , 否 则 设 置 属 性 时 会返 回 错 误 。• 扩 展 标 志 对 AO 设 备 无 效 。• 在 从 模 式 下 , 采 样 率 由 codec 决 定 , 采 样 率 的 设 置 不 起 作 用 。• I 2 S 主 模 式 时 , 决 定 SIO 输 出 时 钟 的 关 键 配 置 项 是 采 样 率 、 采 样 精 度 以 及 通 道 数目 , 采 样 精 度 乘 以 通 道 数 目 即 为 I 2 S 时 序 一 次 采 样 的 位 宽 。• I 2 S 主 模 式 时 , 同 一 SIO 下 的 AI 和 AO 设 备 的 时 钟 选 择 配 置 ( 即 AIO_ATTR_S 中的 u32ClkSel 项 ) 必 须 相 同 。• AO 必 须 和 DA 配 合 起 来 才 能 正 常 工 作 , 用 户 必 须 清 楚 DA 发 送 的 数 据 分 布 和 通 道的 关 系 才 能 从 正 确 的 通 道 发 送 数 据 。9-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频• AO 设 备 属 性 结 构 体 中 其 他 项 请 参 见 AI 模 块 中 相 关 接 口 的 描 述 。【 举 例 】HI_S32 s32ret;AIO_ATTR_S stAttr;AUDIO_DEV AoDevId = 0;stAttr.enBitwidth = AUDIO_BIT_WIDTH_16;stAttr.enSamplerate = AUDIO_SAMPLE_RATE_8000;stAttr.enSoundmode = AUDIO_SOUND_MODE_MOMO;stAttr.enWorkmode = AIO_MODE_I2S_SLAVE;stAttr.u32EXFlag = 0;stAttr.u32FrmNum = 5;stAttr.u32PtNumPerFrm = 160;stAttr.u32ChnCnt = 2;stAttr.u32ClkSel = 0;HI_MPI_AO_GetPubAttr/* set ao public attr*/s32ret = HI_MPI_AO_SetPubAttr(AoDevId, &stAttr);if(HI_SUCCESS != s32ret){printf("set ao %d attr err:0x%x\n", AoDevId,s32ret);return s32ret;}/* enable ao device*/s32ret = HI_MPI_AO_Enable(AoDevId);if(HI_SUCCESS != s32ret){printf("enable ao dev %d err:0x%x\n", AoDevId, s32ret);return s32ret;}【 相 关 主 题 】无 。【 描 述 】获 取 AO 设 备 属 性 。【 语 法 】HI_S32 HI_MPI_AO_GetPubAttr(AUDIO_DEV AudioDevId , AIO_ATTR_S *pstAttr);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-25


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入pstAttr 音 频 输 出 设 备 属 性 指 针 。 输 出【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_NOT_CONFIG 音 频 输 出 设 备 属 性 未 配 置 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h• 库 文 件 :libmpi.a【 注 意 】• 获 取 的 属 性 为 前 一 次 配 置 的 属 性 。• 如 果 从 未 配 置 过 属 性 , 则 返 回 属 性 未 配 置 的 错 误 。【 举 例 】HI_S32 s32ret;AUDIO_DEV AoDevId = 0;AIO_ATTR_S stAttr;/* first enable ao device*/s32ret = HI_MPI_AO_GetPubAttr(AoDevId, &stAttr);if(HI_SUCCESS != s32ret){9-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频}printf("get ao %d attr err:0x%x\n", AoDevId,s32ret);return s32ret;【 相 关 主 题 】无 。HI_MPI_AO_Enable【 描 述 】启 用 AO 设 备 。【 语 法 】HI_S32 HI_MPI_AO_Enable(AUDIO_DEV AudioDevId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-27


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_MPI_AO_Disable【 注 意 】• 要 求 在 启 用 前 配 置 AO 设 备 属 性 , 否 则 会 返 回 属 性 未 配 置 的 错 误 。• 如 果 AO 设 备 已 经 处 于 运 行 状 态 , 则 直 接 返 回 成 功 。【 举 例 】请 参 见 HI_MPI_AO_SetPubAttr 的 举 例 。【 相 关 主 题 】无 。【 描 述 】禁 用 AO 设 备 。【 语 法 】HI_S32 HI_MPI_AO_Disable(AUDIO_DEV AudioDevId);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】9-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频HI_MPI_AO_EnableChn• 头 文 件 :hi_comm_aio.h、mpi_ao.h• 库 文 件 :libmpi.a【 注 意 】• 如 果 AO 设 备 已 经 处 于 非 运 行 状 态 , 则 直 接 返 回 成 功 。• 禁 用 AO 设 备 前 必 须 先 禁 用 设 备 下 所 有 AO 通 道 。【 举 例 】无 。【 相 关 主 题 】无 。【 描 述 】启 用 AO 通 道 。【 语 法 】HI_S32 HI_MPI_AO_EnableChn(AUDIO_DEV AudioDevId, AI_CHN AoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。支 持 的 通 道 范 围 由 AO 设 备 属 性 中 的 最 大 通 道 个 数u32ChnCnt 决 定 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-29


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_ENABLED 音 频 输 出 设 备 未 启 用 。HI_MPI_AO_DisableChn【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】启 用 AO 通 道 前 , 必 须 先 启 用 其 所 属 的 AO 设 备 , 否 则 返 回 设 备 未 启 动 的 错 误 码 。【 举 例 】请 参 见 HI_MPI_AI_SetPubAttr 的 举 例 。【 相 关 主 题 】无 。【 描 述 】禁 用 AO 通 道 。【 语 法 】HI_S32 HI_MPI_AO_DisableChn(AUDIO_DEV AudioDevId, AI_CHN AoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。实 际 支 持 的 通 道 范 围 由 采 样 精 度 决 定 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。9-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。HI_MPI_AO_EnableReSmp【 描 述 】启 用 AO 重 采 样 。【 语 法 】HI_S32 HI_MPI_AO_EnableReSmp(AUDIO_DEV AudioDevId, AO_CHN AoChn,AUDIO_RESAMPLE_ATTR_S *pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。实 际 支 持 的 通 道 范 围 由 采 样 精 度 决 定 。输 入输 入文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-31


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出pstAttr 音 频 重 采 样 属 性 结 构 体 指 针 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_ILLEGAL_PARAM 输 入 参 数 非 法 。HI_ERR_AO_NOMEM 内 存 不 足 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a libresample.a【 注 意 】• 应 该 在 启 用 AO 通 道 之 后 , 绑 定 AO 通 道 之 前 , 调 用 此 接 口 启 用 重 采 样 功 能 。• 如 果 启 用 了 AO 重 采 样 功 能 , 则 音 频 数 据 在 发 送 给 AO 之 前 , 内 部 先 执 行 重 采 样处 理 , 处 理 完 成 后 再 发 送 给 AO 通 道 进 行 播 放 。• 音 频 重 采 样 属 性 包 含 以 下 项 :−−−u32InPointNum: 输 入 音 频 帧 的 每 帧 采 样 点 个 数enInSampleRate: 输 入 音 频 帧 的 采 样 率enReSampleType: 重 采 样 类 型 , 支 持 1 到 2 倍 、1 到 4 倍 的 重 采 样• 重 采 样 处 理 会 使 音 频 数 据 的 帧 长 ( 即 每 帧 采 样 点 个 数 ) 发 生 变 化 , 音 频 重 采 样 属性 中 的 u32InPointNum 项 应 该 配 置 为 重 采 样 前 的 值 , 而 音 频 公 共 属 性 中 的u32PtNumPerFrm 项 应 该 配 置 为 重 采 样 后 的 值 ; 例 如 绑 定 的 ADEC 通 道 中 的 解 码9-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频码 流 的 帧 长 为 320,4X 重 采 样 后 帧 长 则 为 320*4=1280, 所 以 公 共 属 性 中 的u32PtNumPerFrm 项 配 置 为 320*4, 而 重 采 样 属 性 中 的 u32InPointNum 项 配 置 为320。• 不 允 许 重 复 启 用 重 采 样 功 能 , 即 在 再 次 启 用 之 前 需 要 先 将 其 禁 用 。【 举 例 】以 ADEC 到 AO 的 解 码 回 放 8K 到 32K 重 采 样 为 例 , 配 置 如 下 :/* dev attr of ao */stAioAttr.u32ChnCnt = 2;stAioAttr.enBitwidth = AUDIO_BIT_WIDTH_16;stAioAttr.enSamplerate = AUDIO_SAMPLE_RATE_32000;stAioAttr.enSoundmode = AUDIO_SOUND_MODE_MOMO;stAioAttr.u32EXFlag = 1;stAioAttr.u32FrmNum = 30;stAioAttr.u32PtNumPerFrm = 320*4;/* attr of resample */stReSampleAttr.u32InPointNum = 320;stReSampleAttr.enInSampleRate = AUDIO_SAMPLE_RATE_8000;stReSampleAttr.enReSampleType = AUDIO_RESAMPLE_1X4;HI_MPI_AO_DisableReSmp【 描 述 】禁 用 AO 重 采 样 。【 语 法 】HI_S32 HI_MPI_AO_DisableReSmp(AUDIO_DEV AudioDevId, AO_CHN AoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。实 际 支 持 的 通 道 范 围 由 采 样 精 度 决 定 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-33


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_MPI_AO_BindAdec【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a libresample.a【 注 意 】• 不 再 使 用 AO 重 采 样 功 能 的 话 , 应 该 调 用 此 接 口 将 其 禁 用 。【 描 述 】绑 定 AO 通 道 和 ADEC 通 道 。【 语 法 】HI_S32 HI_MPI_AO_BindAdec(AUDIO_DEV AoDev, AO_CHN AoChn, ADEC_CHN AdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AoDev 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。AdChn 音 频 解 码 通 道 号 。取 值 范 围 :[0, ADEC_MAX_CHN_NUM)。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。9-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频返 回 值描 述非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• 绑 定 ADEC 和 AO 后 ,ADEC 的 解 码 音 频 帧 数 据 将 自 动 发 送 到 绑 定 的 AO 通 道 进行 播 放 ( 当 然 前 提 是 ADEC 和 AO 通 道 都 已 经 启 用 , 并 向 ADEC 通 道 送 音 频 码 流解 码 )。• 一 个 AO 通 道 只 能 绑 定 一 个 ADEC 通 道 , 并 且 一 个 ADEC 通 道 也 只 能 绑 定 一 个AO 通 道 。• AO 通 道 既 可 以 与 ADEC 通 道 绑 定 , 也 可 以 与 AI 通 道 绑 定 , 但 同 一 时 刻 只 能 绑 定其 中 一 个 。【 举 例 】无 。HI_MPI_AO_UnBindAdec【 描 述 】解 绑 定 AO 通 道 和 ADEC 通 道 。【 语 法 】HI_S32 HI_MPI_AO_UnBindAdec(AUDIO_DEV AoDev, AO_CHN AoChn, ADEC_CHNAdChn);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-35


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出AoDev 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。AdChn 音 频 解 码 通 道 号 。取 值 范 围 :[0, ADEC_MAX_CHN_NUM)。输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。HI_MPI_AO_BindAi【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 描 述 】9-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频绑 定 AO 通 道 和 AI 通 道 。【 语 法 】HI_S32 HI_MPI_AO_BindAi(AUDIO_DEV AoDev, AO_CHN AoChn, AUDIO_DEV AiDev,AI_CHN AiChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AoDev 音 频 输 出 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。AiDev 音 频 输 入 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn 音 频 输 入 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-37


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 】• 绑 定 AI 和 AO 后 ,AI 中 采 集 的 音 频 帧 数 据 将 自 动 发 送 到 绑 定 的 AO 通 道 进 行 播 放( 当 然 前 提 是 AI 和 AO 通 道 都 已 经 启 用 并 正 常 工 作 )。• 一 个 AO 通 道 只 能 绑 定 一 个 AI 通 道 , 并 且 一 个 AI 通 道 也 只 能 绑 定 一 个 AO 通道 。• AO 通 道 既 可 以 与 ADEC 通 道 绑 定 , 也 可 以 与 AI 通 道 绑 定 , 但 同 一 时 刻 只 能 绑 定其 中 一 个 。【 举 例 】无 。HI_MPI_AO_UnBindAi【 描 述 】解 绑 定 AO 通 道 和 AI 通 道 。【 语 法 】HI_S32 HI_MPI_AO_UnBindAi(AUDIO_DEV AoDev, AO_CHN AoChn, AUDIO_DEV AiDev,AI_CHN AiChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AoDev 音 频 输 出 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。AiDev 音 频 输 入 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AiChn 音 频 输 入 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】9-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。HI_MPI_AO_PauseChn【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】无 。【 描 述 】暂 停 AO 通 道 。【 语 法 】HI_S32 HI_MPI_AO_PauseChn(AUDIO_DEV AudioDevId, AI_CHN AoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。实 际 支 持 的 通 道 范 围 由 采 样 精 度 决 定 。输 入输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-39


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_ENABLED 音 频 输 出 设 备 未 启 用 。HI_MPI_AO_ResumeChn【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• AO 通 道 暂 停 后 , 如 果 继 续 向 此 通 道 发 送 音 频 帧 数 据 , 将 会 被 阻 塞 。• AO 通 道 为 禁 用 状 态 时 , 不 允 许 调 用 此 接 口 暂 停 AO 通 道 。【 举 例 】无 。【 相 关 主 题 】无 。【 描 述 】恢 复 AO 通 道 。【 语 法 】HI_S32 HI_MPI_AO_ResumeChn(AUDIO_DEV AudioDevId, AI_CHN AoChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn 音 频 输 出 通 道 号 。实 际 支 持 的 通 道 范 围 由 采 样 精 度 决 定 。输 入输 入9-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_PERM 操 作 非 法 。HI_MPI_AO_ClearChnBuf【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• AO 通 道 暂 停 后 可 以 通 过 调 用 此 接 口 重 新 恢 复 ,• AO 通 道 为 非 暂 停 状 态 时 不 应 该 调 用 此 接 口 。【 举 例 】无 。【 描 述 】清 除 ADEC 通 道 中 当 前 的 音 频 数 据 缓 存 。【 语 法 】HI_S32 HI_MPI_AO_ClearChnBuf(AUDIO_DEV AudioDevId ,AO_CHN AoChn);【 参 数 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-41


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数 名 称 描 述 输 入 / 输 出AudioDevId 音 频 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。输 入AoChn 音 频 输 出 通 道 号 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效 。HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效 。HI_ERR_AO_SYS_NOTREADY 系 统 未 初 始 化 成 功 。HI_ERR_AO_NOT_ENABLED 音 频 输 出 通 道 未 启 用 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h、hi_comm_aio.h• 库 文 件 :libmpi.a【 注 意 】• 在 AO 通 道 成 功 启 用 后 再 调 用 此 接 口 。• 为 完 全 清 除 解 码 回 放 通 路 上 所 有 缓 存 数 据 , 此 接 口 还 应 该 与HI_MPI_ADEC_ClearChnBuf 接 口 配 合 使 用 。【 举 例 】无 。HI_MPI_AO_GetFd【 描 述 】获 取 音 频 输 出 通 道 号 对 应 的 设 备 文 件 句 柄 。9-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 语 法 】HI_S32 HI_MPI_AO_GetFd(AUDIO_DEV AudioDevId ,AO_CHN AoChn)【 参 数 】参 数 名 称 描 述 输 入 / 输 出AudioDevId AO 设 备 号 。取 值 范 围 :[0, SIO_MAX_NUM)。AoChn AO 通 道 号 。取 值 范 围 :[0, AIO_MAX_CHN_NUM)。输 入输 入【 返 回 值 】返 回 值描 述正 数 值 有 效 返 回 值 。非 正 数 值 无 效 返 回 值 。【 错 误 码 】无 。【 需 求 】• 头 文 件 :hi_comm_aio.h、mpi_ao.h• 库 文 件 :libmpi.a【 注 意 】无 。【 举 例 】HI_S32 s32AoFd;HI_S32 s32ret;AUDIO_DEV AoDevId = 0;AO_CHN AoChn = 0;/* first enable ao device */s32AoFd = HI_MPI_AO_GetFd(AoDevId, AoChn);if(s32AoFd


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9.3.3 音 频 编 码【 相 关 主 题 】无 。HI_MPI_AENC_CreateChn音 频 编 码 主 要 实 现 创 建 编 码 通 道 、 发 送 音 频 帧 编 码 及 获 取 编 码 码 流 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:• HI_MPI_AENC_CreateChn: 创 建 音 频 编 码 通 道 。• HI_MPI_AENC_DestroyChn: 销 毁 音 频 编 码 通 道 。• HI_MPI_AENC_GetStream: 获 取 音 频 编 码 码 流 。• HI_MPI_AENC_ReleaseStream: 释 放 音 频 编 码 码 流 。【 描 述 】创 建 音 频 编 码 通 道 。【 语 法 】HI_S32 HI_MPI_AENC_CreateChn(AENC_CHN AeChn, const AENC_CHN_ATTR_S*pstAttr);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AeChn 通 道 号 。取 值 范 围 :[0, AENC_MAX_CHN_NUM)。输 入pstAttr 音 频 编 码 通 道 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AENC_INVALID_CHNID 音 频 编 码 通 道 号 无 效 。HI_ERR_AENC_NULL_PTR 空 指 针 错 误 。9-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频接 口 返 回 值含 义HI_ERR_AENC_NOT_SUPPORT 不 支 持 的 属 性 设 置 或 操 作 。HI_ERR_AENC_EXIST 音 频 编 码 通 道 已 经 创 建 。HI_ERR_AENC_NOMEM 系 统 内 存 不 足 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_aenc.h、mpi_aenc.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 协 议 类 型 指 定 该 通 道 的 编 码 协 议 , 目 前 支 持 G711、G726、ADPCM 和 AMR 和AAC, 具 体 内 容 如 表 9-1 所 示 。• 表 9-1 中 列 举 的 编 解 码 协 议 只 支 持 16bit 线 性 PCM 音 频 数 据 处 理 , 如 果 输 入 的 是8bit 采 样 精 度 的 数 据 ,AENC 内 部 会 将 其 扩 展 为 16bit; 另 外 , 使 用 Hi3520 AI时 , 建 议 将 扩 展 标 志 置 为 1, 使 得 AI 数 据 由 8bit 自 动 扩 展 到 16bit。• 海 思 语 音 帧 结 构 如 表 9-4 所 示 。• 音 频 编 码 的 部 分 属 性 需 要 与 输 入 的 音 频 数 据 属 性 相 匹 配 , 例 如 采 样 率 、 帧 长 ( 每帧 采 样 点 数 目 ) 等 。• buffer 大 小 以 帧 为 单 位 , 取 值 范 围 是 [1, MAX_AUDIO_FRAME_NUM], 建 议 配 置为 10 以 上 , 过 小 的 buffer 配 置 可 能 导 致 丢 帧 等 异 常 。• 在 通 道 闲 置 时 才 能 使 用 此 接 口 , 如 果 通 道 已 经 被 创 建 , 则 返 回 通 道 已 经 创 建 的 错误 。【 举 例 】HI_S32 s32ret;AENC_CHN_ATTR_S stAencAttr;ADEC_ATTR_ADPCM_S stAdpcmAenc;AENC_CHN AencChn = 0;AUDIO_FRAME_S stAudioFrm;AUDIO_STREAM_S stAudioStream;stAencAttr.enType = PT_ADPCMA;/* ADPCM */stAencAttr.u32BufSize = 8;stAencAttr.pValue = &stAdpcmAenc;stAdpcmAenc.enADPCMType = ADPCM_TYPE_DVI4;/* create aenc chn*/s32ret = HI_MPI_AENC_CreateChn(AencChn, &stAencAttr);if (HI_SUCCESS != s32ret){printf("create aenc chn %d err:0x%x\n", AencChn,s32ret);文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-45


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考}return s32ret;/* bind AENC to AI channel */s32Ret = HI_MPI_AENC_BindAi(AencChn, AiDev, AiChn);if (s32Ret != HI_SUCCESS){return s32Ret;}/* get stream from aenc chn */s32ret = HI_MPI_AENC_GetStream(AencChn, &stAudioStream);if (HI_SUCCESS != s32ret ){printf("get stream from aenc chn %d fail \n", AencChn);return s32ret;}/* deal with audio stream *//* release audio stream */s32ret = HI_MPI_AENC_ReleaseStream(AencChn, &stAudioStream);if (HI_SUCCESS != s32ret ){return s32ret;}/* destroy aenc chn */s32ret = HI_MPI_AENC_DestroyChn(AencChn);if (HI_SUCCESS != s32ret ){return s32ret;}【 相 关 主 题 】无 。HI_MPI_AENC_DestroyChn【 描 述 】销 毁 音 频 编 码 通 道 。【 语 法 】HI_S32 HI_MPI_AENC_DestroyChn(AENC_CHN AeChn);9-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 参 数 】参 数 名 称 描 述 输 入 / 输 出AeChn 通 道 号 。取 值 范 围 :[0, AENC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AENC_INVALID_CHNID 音 频 编 码 通 道 号 无 效 。HI_ERR_AENC_UNEXIST 编 码 通 道 不 存 在 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_aenc.h、mpi_aenc.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 先 创 建 完 编 码 通 道 , 再 调 用 此 接 口 , 否 则 返 回 通 道 未 创 建 。• 如 果 正 在 获 取 / 释 放 码 流 或 者 发 送 帧 时 销 毁 该 通 道 , 则 会 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_AENC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_AENC_GetStream【 描 述 】获 取 编 码 后 码 流 。【 语 法 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-47


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_S32 HI_MPI_AENC_GetStream(AENC_CHN AeChn, AUDIO_STREAM_S*pstStream ,HI_U32 u32BlockFlag);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AeChn 通 道 号 。取 值 范 围 :[0, AENC_MAX_CHN_NUM)。输 入pstStream 获 取 的 音 频 码 流 。 输 出u32BlockFlag 阻 塞 标 识 。取 值 范 围 :HI_IO_BLOCK: 阻 塞 。HI_IO_NOBLOCK: 非 阻 塞 。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AENC_INVALID_CHNID 音 频 编 码 通 道 号 无 效 。HI_ERR_AENC_UNEXIST 音 频 编 码 通 道 不 存 在 。HI_ERR_AENC_NULL_PTR 空 指 针 错 误 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_aenc.h、mpi_aenc.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 必 须 创 建 通 道 后 才 可 能 获 取 码 流 , 否 则 直 接 返 回 失 败 , 如 果 在 获 取 码 流 过 程 中 销毁 通 道 则 会 立 刻 返 回 失 败 。• 支 持 阻 塞 或 非 阻 塞 方 式 获 取 码 流 , 并 且 支 持 标 准 的 select 系 统 调 用 。9-48海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频• 当 阻 塞 方 式 获 取 码 流 时 , 如 果 音 频 数 据 Buffer 空 则 此 接 口 调 用 会 被 阻 塞 , 直 至Buffer 中 有 新 的 数 据 或 销 毁 AENC 通 道 。• 直 接 获 取 AI 原 始 音 频 数 据 的 方 法创 建 一 路 AENC 通 道 , 编 码 协 议 类 型 设 置 为 PT_LPCM, 绑 定 AI 通 道 后 , 从 此AENC 通 道 获 取 的 音 频 数 据 即 AI 原 始 数 据 。【 举 例 】请 参 见 HI_MPI_AENC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_AENC_ReleaseStream【 描 述 】释 放 从 音 频 编 码 通 道 获 取 的 码 流 。【 语 法 】HI_S32 HI_MPI_AENC_ReleaseStream(AENC_CHN AeChn, const AUDIO_STREAM_S*pstStream);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AeChn 通 道 号 。取 值 范 围 :[0, AENC_MAX_CHN_NUM)。输 入pstStream 获 取 的 码 流 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_AENC_INVALID_CHNID 音 频 编 码 通 道 号 无 效 。HI_ERR_AENC_UNEXIST 音 频 编 码 通 道 不 存 在 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-49


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_AENC_NULL_PTR 空 指 针 错 误 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_aenc.h、mpi_aenc.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 码 流 最 好 能 够 在 使 用 完 之 后 立 即 释 放 , 如 果 不 及 时 释 放 , 会 导 致 编 码 过 程 阻 塞 等待 码 流 释 放 。• 释 放 的 码 流 必 须 是 从 该 通 道 获 取 的 码 流 , 不 得 对 码 流 信 息 结 构 体 进 行 任 何 修 改 ,否 则 会 导 致 码 流 不 能 释 放 , 使 此 码 流 buffer 丢 失 , 甚 至 导 致 程 序 异 常 。• 释 放 码 流 时 必 须 保 证 通 道 已 经 被 创 建 , 否 则 直 接 返 回 失 败 , 如 果 在 释 放 码 流 过 程中 销 毁 通 道 则 会 立 刻 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_AENC_CreateChn 的 举 例 。【 相 关 主 题 】无 。9.3.4 音 频 解 码音 频 解 码 主 要 实 现 创 建 解 码 通 道 、 发 送 音 频 码 流 解 码 及 获 取 解 码 后 音 频 帧 等 功 能 。该 功 能 模 块 提 供 以 下 MPI:HI_MPI_ADEC_CreateChn• HI_MPI_ADEC_CreateChn: 创 建 音 频 解 码 通 道 。• HI_MPI_ADEC_DestroyChn: 销 毁 音 频 解 码 通 道 。• HI_MPI_ADEC_SendStream: 发 送 音 频 码 流 到 音 频 解 码 通 道 。• HI_MPI_ADEC_ClearChnBuf: 清 除 ADEC 通 道 中 当 前 的 音 频 数 据 缓 存 。【 描 述 】创 建 音 频 解 码 通 道 。【 语 法 】HI_S32 HI_MPI_ADEC_CreateChn(ADEC_CHN AdChn, ADEC_CHN_ATTR_S *pstAttr);【 参 数 】9-50海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频参 数 名 称 描 述 输 入 / 输 出AdChn 通 道 号 。取 值 范 围 :[0, ADEC_MAX_CHN_NUM)。输 入pstAttr 通 道 属 性 指 针 。 输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_ADEC_INVALID_CHNID 音 频 解 码 通 道 号 无 效 。HI_ERR_ADEC_NULL_PTR 空 指 针 错 误 。HI_ERR_ADEC_NOT_SUPPORT 不 支 持 的 属 性 设 置 或 操 作 。HI_ERR_ADEC_EXIST 音 频 解 码 通 道 已 经 创 建 。HI_ERR_ADEC_NOMEM 系 统 内 存 不 足 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_adec.h、mpi_adec.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 协 议 类 型 指 定 了 该 通 道 的 解 码 协 议 , 目 前 支 持 G711、G726、ADPCM 和 AMR 和AAC。• 音 频 解 码 的 部 分 属 性 需 要 与 输 出 设 备 属 性 相 匹 配 , 例 如 采 样 率 、 帧 长 ( 每 帧 采 样点 数 目 ) 等 。• buffer 大 小 以 帧 为 单 位 , 取 值 范 围 是 [0, MAX_AUDIO_FRAME_NUM], 建 议 配 置为 10 以 上 , 过 小 的 buffer 配 置 可 能 导 致 丢 帧 等 异 常 。• 在 通 道 未 创 建 前 ( 或 销 毁 后 ) 才 能 使 用 此 接 口 , 如 果 通 道 已 经 被 创 建 , 则 返 回 通道 已 经 创 建 。【 举 例 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-51


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考HI_S32 s32ret;ADEC_CHN_ATTR_S stAdecAttr;ADEC_ATTR_ADPCM_S stAdpcm;ADEC_CHN AdChn = 0;AUDIO_STREAM_S stAudioStream;AUDIO_FRAME_INFO_S stAudioFrameInfo;stAdecAttr.enType = PT_ADPCMA;stAdecAttr.u32BufSize = 8;stAdecAttr.enMode = ADEC_MODE_STREAM;stAdecAttr.pValue = &stAdpcm;stAdpcm.enADPCMType = ADPCM_TYPE_DVI4;/* create adec chn*/s32ret = HI_MPI_ADEC_CreateChn(AdChn, &stAdecAttr);if (s32ret){printf("create adnc chn %d err:0x%x\n", AdChn,s32ret);return s32ret;}/* get audio stream from network or file*//* send audio stream to adec chn */s32ret = HI_MPI_ADEC_SendStream(AdChn, &stAudioStream);if (s32ret){printf("send stream to adec fail\n");return s32ret;}/* get audio frame from adec */s32ret = HI_MPI_ADEC_GetData(AdChn, &stAudioFrameInfo);if (HI_SUCCESS != s32ret){printf("adec get data err\n");return s32ret;}/* send audio frame to AO or others *//* release audio frame */s32ret = HI_MPI_ADEC_ReleaseData(AdChn, &stAudioFrameInfo);if (HI_SUCCESS != s32ret)9-52海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频{}printf("adec release data err\n");return s32ret;/* destroy adec chn */s32ret = HI_MPI_ADEC_DestroyChn(AdChn);if (HI_SUCCESS != s32ret ){return s32ret;}【 相 关 主 题 】无 。HI_MPI_ADEC_DestroyChn【 描 述 】销 毁 音 频 解 码 通 道 。【 语 法 】HI_S32 HI_MPI_ADEC_DestroyChn(ADEC_CHN AdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AdChn 通 道 号 。取 值 范 围 :[0, ADEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_ADEC_INVALID_CHNID 音 频 解 码 通 道 号 无 效 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-53


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考接 口 返 回 值含 义HI_ERR_ADEC_UNEXIST 音 频 解 码 通 道 不 存 在 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_adec.h、mpi_adec.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 要 求 解 码 通 道 已 经 被 创 建 , 如 果 通 道 未 被 创 建 则 返 回 通 道 未 创 建 。• 如 果 正 在 获 取 / 释 放 码 流 或 者 发 送 帧 , 销 毁 该 通 道 则 这 些 操 作 都 会 立 即 返 回 失 败 。【 举 例 】请 参 见 HI_MPI_ADEC_CreateChn 的 举 例 。【 相 关 主 题 】无 。HI_MPI_ADEC_SendStream【 描 述 】向 音 频 解 码 通 道 发 送 码 流 。【 语 法 】HI_S32 HI_MPI_ADEC_SendStream(ADEC_CHN AdChn,const AUDIO_STREAM_S *pstStream, HI_U32 u32BlockFlag);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AdChn 通 道 号 。取 值 范 围 :[0, ADEC_MAX_CHN_NUM)。输 入pstStream 音 频 码 流 。 输 入u32BlockFlag 阻 塞 标 识 。取 值 范 围 :HI_IO_BLOCK: 阻 塞 。HI_IO_NOBLOCK: 非 阻 塞 。输 入【 返 回 值 】9-54海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_ADEC_INVALID_CHNID 音 频 解 码 通 道 号 无 效 。HI_ERR_ADEC_UNEXIST 音 频 解 码 通 道 号 不 存 在 。HI_ERR_ADEC_NULL_PTR 空 指 针 错 误 。HI_ERR_ADEC_ILLEGAL_PARAM 输 入 参 数 无 效 。HI_ERR_ADEC_DECODER_ERR 音 频 解 码 数 据 错 误 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_adec.h、mpi_adec.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 创 建 解 码 通 道 时 可 以 指 定 解 码 方 式 为 pack 方 式 或 stream 方 式 。−pack 方 式 用 于 确 定 码 流 包 为 一 帧 的 情 况 下 , 比 如 从 AENC 直 接 获 取 的 码 流 , 从文 件 读 取 确 切 知 道 一 帧 边 界 ( 语 音 编 码 码 流 长 度 固 定 , 很 容 易 确 定 边 界 ) 的 码流 , 效 率 较 高 。− stream 方 式 用 于 不 确 定 码 流 包 为 一 帧 的 情 况 下 , 效 率 较 低 , 且 可 能 会 有 延 迟 。• AAC 解 码 只 支 持 stream 方 式 ;LPCM 解 码 只 支 持 pack 方 式 ; 其 他 音 频 格 式 的 解码 两 种 方 式 都 支 持 , 但 正 式 应 用 中 建 议 只 使 用 pack 方 式 。• 发 送 数 据 时 必 须 保 证 通 道 已 经 被 创 建 , 否 则 直 接 返 回 失 败 , 如 果 在 送 数 据 过 程 中销 毁 通 道 则 会 立 刻 返 回 失 败 。• 支 持 阻 塞 或 非 阻 塞 方 式 发 送 码 流 。• 当 阻 塞 方 式 发 送 码 流 时 , 如 果 音 频 数 据 Buffer 满 则 此 接 口 调 用 会 被 阻 塞 , 直 至 取走 音 频 数 据 或 销 毁 ADEC 通 道 。• 确 保 发 送 给 ADEC 通 道 的 码 流 数 据 的 正 确 性 , 否 则 可 能 引 起 解 码 器 异 常 退 出 。【 举 例 】请 参 见 HI_MPI_ADEC_CreateChn 的 举 例 。【 相 关 主 题 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-55


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考无 。HI_MPI_ADEC_ClearChnBuf【 描 述 】清 除 ADEC 通 道 中 当 前 的 音 频 数 据 缓 存 。【 语 法 】HI_S32 HI_MPI_ADEC_ClearChnBuf(ADEC_CHN AdChn);【 参 数 】参 数 名 称 描 述 输 入 / 输 出AdChn 通 道 号 。取 值 范 围 :[0, ADEC_MAX_CHN_NUM)。输 入【 返 回 值 】返 回 值描 述0 成 功 。非 0 失 败 , 其 值 为 错 误 码 。【 错 误 码 】接 口 返 回 值含 义HI_SUCCESS 成 功 。HI_ERR_ADEC_INVALID_CHNID 音 频 解 码 通 道 号 无 效 。HI_ERR_ADEC_UNEXIST 音 频 解 码 通 道 不 存 在 。【 需 求 】• 头 文 件 :hi_comm_aio.h、hi_comm_adec.h、mpi_adec.h• 库 文 件 :libmpi.a lib_VoiceEngine.a lib_amr_spc.a lib_amr_fipop.a lib_aec.a【 注 意 】• 要 求 解 码 通 道 已 经 被 创 建 , 如 果 通 道 未 被 创 建 则 返 回 通 道 不 存 在 错 误 码 。• 使 用 本 接 口 时 , 不 建 议 使 用 流 式 解 码 。 使 用 流 式 解 码 进 行 清 除 缓 存 操 作 时 , 用 户需 要 确 保 清 除 完 缓 存 后 , 发 送 给 解 码 器 的 数 据 必 须 是 完 整 的 一 帧 码 流 , 否 则 可 能导 致 解 码 器 不 能 正 常 工 作 。9-56海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频• 无 论 是 否 使 用 流 式 解 码 , 都 要 确 保 送 数 据 解 码 的 操 作 和 清 除 缓 存 的 操 作 之 间 的 同步 。【 举 例 】无 。【 相 关 主 题 】无 。9.4 数 据 类 型9.4.1 音 频 输 入 输 出AUDIO_SAMPLE_RATE_E音 频 输 入 输 出 相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• AUDIO_SAMPLE_RATE_E: 定 义 音 频 采 样 率 。• AUDIO_BIT_WIDTH_E: 定 义 音 频 采 样 精 度 。• AIO_MODE_E: 定 义 音 频 输 入 输 出 工 作 模 式 。• AUDIO_SOUND_MODE_E: 定 义 音 频 声 道 模 式 。• AIO_ATTR_S: 定 义 音 频 输 入 输 出 设 备 属 性 结 构 体 。• AUDIO_FRAME_S: 定 义 音 频 帧 数 据 结 构 体 。• AEC_FRAME_S: 定 义 回 声 抵 消 参 考 帧 信 息 结 构 体 。• AUDIO_FRAME_INFO_S: 定 义 音 频 帧 信 息 结 构 体 。• AUDIO_STREAM_S: 定 义 音 频 码 流 结 构 体 。• AUDIO_RESAMPLE_TYPE_E: 定 义 音 频 重 采 样 类 型 。• AUDIO_RESAMPLE_ATTR_S: 定 义 音 频 重 采 样 属 性 配 置 结 构 体 。• AMR_MODE_E: 定 义 AMR 编 解 码 速 率 模 式 。• AMR_FORMAT_E: 定 义 AMR 编 解 码 格 式 。• G726_BPS_E: 定 义 G.726 编 解 码 协 议 速 率 。• ADPCM_TYPE_E: 定 义 ADPCM 编 解 码 协 议 类 型 。• AAC_TYPE_E: 定 义 AAC 音 频 编 解 码 协 议 类 型 。• AAC_BPS_E: 定 义 AAC 音 频 编 码 码 率 。【 说 明 】定 义 音 频 采 样 率 。【 定 义 】typedef enum hiAUDIO_SAMPLE_RATE_E{AUDIO_SAMPLE_RATE_8000 =8000, /* 8kHz sampling rate */文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-57


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考AUDIO_SAMPLE_RATE_11025 =11025, /* 11.025kHz sampling rate */AUDIO_SAMPLE_RATE_16000 =16000, /* 16kHz sampling rate */AUDIO_SAMPLE_RATE_22050 =22050, /* 22.050kHz sampling rate */AUDIO_SAMPLE_RATE_24000 =24000, /* 24kHz sampling rate */AUDIO_SAMPLE_RATE_32000 =32000, /* 32kHz sampling rate */AUDIO_SAMPLE_RATE_44100 =44100, /* 44.1kHz sampling rate */AUDIO_SAMPLE_RATE_48000 =48000, /* 48kHz sampling rate */}AUDIO_SAMPLE_RATE_E;【 成 员 】成 员 名 称描 述AUDIO_SAMPLE_RATE_8000 8kHz 采 样 率 。AUDIO_SAMPLE_RATE_11025 11.025kHz 采 样 率 。AUDIO_SAMPLE_RATE_16000 16kHz 采 样 率 。AUDIO_SAMPLE_RATE_22050 22.050kHz 采 样 率 。AUDIO_SAMPLE_RATE_24000 24kHz 采 样 率 。AUDIO_SAMPLE_RATE_32000 32kHz 采 样 率 。AUDIO_SAMPLE_RATE_44100 44.1kHz 采 样 率 。AUDIO_SAMPLE_RATE_48000 48kHz 采 样 率 。AUDIO_BIT_WIDTH_E【 注 意 事 项 】这 里 枚 举 值 不 是 从 0 开 始 , 而 是 与 实 际 的 采 样 率 值 相 同 。【 相 关 数 据 类 型 及 接 口 】AIO_ATTR_S【 说 明 】定 义 音 频 采 样 精 度 。【 定 义 】typedef enum hiAUDIO_BIT_WIDTH_E{AUDIO_BIT_WIDTH_8 =0, /* 8bit/sample */AUDIO_BIT_WIDTH_16 =1, /* 16bit/sample */AUDIO_BIT_WIDTH_32 =2, /* 32bit/sample */AUDIO_BIT_WIDTH_BUTT,}AUDIO_BIT_WIDTH_E;9-58海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 成 员 】成 员 名 称描 述AUDIO_BIT_WIDTH_8 采 样 精 度 为 8bit 位 宽 。AUDIO_BIT_WIDTH_16 采 样 精 度 为 16bit 位 宽 。AUDIO_BIT_WIDTH_32 采 样 精 度 为 32bit 位 宽 。AIO_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】AIO_ATTR_S【 说 明 】定 义 音 频 输 入 输 出 设 备 工 作 模 式 。【 定 义 】typedef enum hiAIO_MODE_E{AIO_MODE_I2S_MASTER = 0, /* I2S master mode */AIO_MODE_I2S_SLAVE = 1, /* I2S slave mode */AIO_MODE_PCM_SLAVE_STD, /* SIO PCM slave standard mode */AIO_MODE_PCM_SLAVE_NSTD, /* SIO PCM slave non-standard mode */AIO_MODE_BUTT}AIO_MODE_E;【 成 员 】成 员 名 称描 述AIO_MODE_I2S_MASTER I 2 S 主 模 式 。AIO_MODE_I2S_SLAVE I 2 S 从 模 式 。AIO_MODE_PCM_SLAVE_STD PCM 从 模 式 ( 标 准 协 议 )AIO_MODE_PCM_SLAVE_NSTD PCM 从 模 式 ( 非 标 准 协 议 )【 注 意 事 项 】目 前 只 支 持 I 2 S 从 模 式 。【 相 关 数 据 类 型 及 接 口 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-59


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考AIO_ATTR_SAUDIO_SOUND_MODE_E【 说 明 】定 义 音 频 声 道 模 式 。【 定 义 】typedef enum hiAIO_SOUND_MODE_E{AUDIO_SOUND_MODE_MOMO =0, /*momo*/AUDIO_SOUND_MODE_STEREO =1, /*stereo*/AUDIO_SOUND_MODE_BUTT}AUDIO_SOUND_MODE_E;【 成 员 】成 员 名 称描 述AUDIO_SOUND_MODE_MOMO 单 声 道 。AUDIO_SOUND_MODE_STEREO 双 声 道 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】AIO_ATTR_SAIO_ATTR_S【 说 明 】定 义 音 频 输 入 输 出 设 备 属 性 结 构 体 。【 定 义 】typedef struct hiAIO_ATTR_S{AUDIO_SAMPLE_RATE_E enSamplerate; /*sample rate*/AUDIO_BIT_WIDTH_E enBitwidth; /*bitwidth*/AIO_MODE_E enWorkmode; /*master or slave mode*/AUDIO_SOUND_MODE_E enSoundmode; /*momo or steror*/HI_U32 u32EXFlag; /*expand 8bit to 16bit */HI_U32 u32FrmNum; /*frame num in buffer*/HI_U32 u32PtNumPerFrm; /*number of samples*/HI_U32u32ChnCnt;9-60海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频HI_U32}AIO_ATTR_S;u32ClkSel;【 成 员 】成 员 名 称描 述enSamplerate 音 频 采 样 率 ( 从 模 式 下 , 此 参 数 不 起 作 用 )。静 态 属 性 。enBitwidth音 频 采 样 精 度 ( 从 模 式 下 , 此 参 数 必 须 和 音 频 AD/DA 的 采 样 精度 匹 配 )。静 态 属 性 。enWorkmode 音 频 输 入 输 出 工 作 模 式 。静 态 属 性 。enSoundmode 音 频 声 道 模 式 。静 态 属 性 。u32EXFlag 8bit 到 16bit 扩 展 标 志 (8bit 精 度 时 有 效 )。取 值 范 围 :{0, 1}。• 0: 不 扩 展 。• 1: 扩 展 。静 态 属 性 。u32FrmNum 缓 存 帧 数 目 。取 值 范 围 :[1, MAX_AUDIO_FRAME_NUM]。静 态 属 性 。u32PtNumPerFrm 每 帧 的 采 样 点 个 数 。取 值 范 围 :G711、G726、ADPCM_DVI4 编 码 时 取 值 为 80、160、240、320、480;ADPCM_IMA 编 码 时 取 值 为 81、161、241、321、481;AMR 编 码 时 只 支 持 160。静 态 属 性 。u32ChnCnt 支 持 的 最 大 通 道 数 目 。取 值 :2、4、8、16。u32ClkSel 时 钟 选 择 。取 值 :0、1。SIO 主 模 式 时 和 从 模 式 时 , 配 置 方 法 不 同 , 请 参 考HI_MPI_AI_SetPubAttr 接 口 描 述 中 的 说 明 。【 注 意 事 项 】无 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-61


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考AUDIO_FRAME_S【 相 关 数 据 类 型 及 接 口 】HI_MPI_AI_SetPubAttr【 说 明 】定 义 音 频 帧 结 构 体 。【 定 义 】typedef struct hiAUDIO_FRAME_S{AUDIO_BIT_WIDTH_E enBitwidth; /*audio frame bitwidth*/AUDIO_SOUND_MODE_E enSoundmode; /*audio frame momo or stereo mode*/HI_U8aData[MAX_AUDIO_FRAME_LEN*2];HI_U64u64TimeStamp;/*audio frame timestamp*/HI_U32 u32Seq; /*audio frame seq*/HI_U32 u32Len; /*data lenth per channel in frame*/}AUDIO_FRAME_S;【 成 员 】成 员 名 称描 述enBitwidth 音 频 采 样 精 度 。enSoundmode 音 频 声 道 模 式 。aData[MAX_AUDIO_FRAME_LEN*2] 实 际 音 频 帧 数 据 。u64TimeStamp 音 频 帧 时 间 戳 。以 μs 为 单 位 。u32Seq 音 频 帧 序 号 。u32Len 音 频 帧 长 度 。以 byte 为 单 位 。【 注 意 事 项 】• u32Len( 音 频 帧 长 度 ) 指 单 个 声 道 的 数 据 长 度 。• 单 声 道 数 据 直 接 存 放 , 采 样 点 数 为 ptnum, 长 度 为 len; 立 体 声 数 据 按 左 右 声 道 分开 存 放 , 先 存 放 采 样 点 为 ptnum、 长 度 为 len 的 左 声 道 数 据 , 然 后 存 放 采 样 点 为ptnum, 长 度 为 len 的 右 声 道 数 据 。【 相 关 数 据 类 型 及 接 口 】无 。9-62海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频AEC_FRAME_S【 说 明 】定 义 音 频 回 声 抵 消 参 考 帧 信 息 结 构 体 。【 定 义 】typedef struct hiAEC_FRAME_S{AUDIO_FRAME_S stRefFrame; /* aec reference audio frame */HI_BOOL bValid; /* whether frame is valid */}AEC_FRAME_S;【 成 员 】成 员 名 称描 述stRefFrame 回 声 抵 消 参 考 帧 结 构 体 。bValid 参 考 帧 有 效 的 标 志 。取 值 范 围 :HI_TRUE: 参 考 帧 有 效 。HI_FALSE: 参 考 帧 无 效 , 无 效 时 不 能 使 用 此 参 考 帧 进 行 回 声 抵消 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。AUDIO_FRAME_INFO_S【 说 明 】定 义 音 频 帧 信 息 结 构 体 。【 定 义 】typedef struct hiAUDIO_FRAME_INFO_S{AUDIO_FRAME_S *pstFrame; /*frame ptr*/HI_U32 u32Id; /*frame id*/}AUDIO_FRAME_INFO_S;【 成 员 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-63


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述pstFrame 音 频 帧 数 据 结 构 体 指 针 。u32Id 音 频 帧 序 号 。内 部 保 留 字 , 不 能 更 改 。AUDIO_STREAM_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】无 。【 说 明 】定 义 音 频 码 流 结 构 体 。【 定 义 】typedef struct hiAUDIO_STREAM_S{HI_U8 *pStream; /*stream buffer */HI_U32 u32Len; /*stream lenth*/HI_U64 u64TimeStamp; /*frame time stamp*/HI_U32 u32Seq;/*frame seq,if stream is not a valid frame,u32Seq is 0*/}AUDIO_STREAM_S;【 成 员 】成 员 名 称描 述pStream 音 频 码 流 数 据 指 针 。u32Len 音 频 码 流 长 度 。 以 byte 为 单 位 。u64TimeStamp 音 频 码 流 时 间 戳 。u32Seq 音 频 码 流 序 号 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】HI_MPI_AENC_GetStream9-64海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频AUDIO_RESAMPLE_TYPE_E【 说 明 】定 义 音 频 重 采 样 类 型 。【 定 义 】typedef enum hiAUDIO_RESAMPLE_TYPE_E{AUDIO_RESAMPLE_1X2 = 0x1,AUDIO_RESAMPLE_2X1 = 0x2,AUDIO_RESAMPLE_1X4 = 0x3,AUDIO_RESAMPLE_4X1 = 0x4,AUDIO_RESAMPLE_BUTT} AUDIO_RESAMPLE_TYPE_E;【 成 员 】成 员 名 称描 述AUDIO_RESAMPLE_1X2 2 倍 重 采 样 。AUDIO_RESAMPLE_2X1 1/2 重 采 样 。AUDIO_RESAMPLE_1X4 4 倍 重 采 样 。AUDIO_RESAMPLE_4X1 1/4 重 采 样 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】AUDIO_RESAMPLE_ATTR_SHI_MPI_AO_EnableReSmpAUDIO_RESAMPLE_ATTR_S【 说 明 】定 义 音 频 重 采 样 属 性 配 置 结 构 体 。【 定 义 】typedef struct hiAUDIO_RESAMPLE_ATTR_S{HI_U32u32InPointNum;AUDIO_SAMPLE_RATE_E enInSampleRate;AUDIO_RESAMPLE_TYPE_E enReSampleType;} AUDIO_RESAMPLE_ATTR_S;文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-65


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 成 员 】成 员 名 称描 述u32InPointNum 输 入 的 每 帧 采 样 点 个 数 。enInSampleRate 输 入 的 采 样 率 。enReSampleType 重 采 样 类 型 。AMR_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】AUDIO_SAMPLE_RATE_EAUDIO_RESAMPLE_TYPE_E【 说 明 】定 义 AMR 编 解 码 速 率 模 式 。【 定 义 】typedef enum hiAMR_MODE_E{AMR_MODE_MR475 = 0,AMR_MODE_MR515,AMR_MODE_MR59,AMR_MODE_MR67,AMR_MODE_MR74,AMR_MODE_MR795,AMR_MODE_MR102,AMR_MODE_MR122,AMR_MODE_MRDTX,AMR_MODE_N_MODES,AMR_MODE_BUTT}AMR_MODE_E;【 成 员 】成 员 名 称AMR_MODE_MR475AMR_MODE_MR515描 述可 选 速 率 ,4.75 kbit/s。可 选 速 率 ,5.15 kbit/s。9-66海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频成 员 名 称AMR_MODE_MR59AMR_MODE_MR67AMR_MODE_MR74AMR_MODE_MR795AMR_MODE_MR102AMR_MODE_MR122描 述可 选 速 率 ,5.9 kbit/s。可 选 速 率 ,6.7 kbit/s。可 选 速 率 ,7.4 kbit/s。可 选 速 率 ,7.95 kbit/s。可 选 速 率 ,10.2 kbit/s。可 选 速 率 ,12.2 kbit/s。AMR_MODE_MRDTX 静 音 模 式 ( 内 部 模 式 , 不 可 选 )。AMR_MODE_N_MODES 基 本 速 率 数 目 ( 保 留 )。AMR_FORMAT_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 AMR 编 解 码 格 式 。【 定 义 】typedef enum hiAMR_FORMAT_E{AMR_FORMAT_MMS,AMR_FORMAT_IF1,AMR_FORMAT_IF2,AMR_FORMAT_BUTT}AMR_FORMAT_E;【 成 员 】成 员 名 称描 述AMR_FORMAT_MMS MMS 格 式 ( 推 荐 采 用 )。AMR_FORMAT_IF1 IF1 格 式 。AMR_FORMAT_IF2 IF2 格 式 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-67


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。G726_BPS_E【 说 明 】定 义 G.726 编 解 码 协 议 速 率 。【 定 义 】typedef enum hiG726_BPS_E{G726_16K = 0,G726_24K,G726_32K,G726_40K,MEDIA_G726_16K, /* G726 16kbit/s for ASF */MEDIA_G726_24K, /* G726 24kbit/s for ASF */MEDIA_G726_32K, /* G726 32kbit/s for ASF */MEDIA_G726_40K, /* G726 40kbit/s for ASF */G726_BUTT,}G726_BPS_E;【 成 员 】成 员 名 称G726_16KG726_24KG726_32KG726_40KMEDIA_G726_16KMEDIA_G726_24KMEDIA_G726_32KMEDIA_G726_40K描 述16kbit/s G.726, 请 参 见 “RFC3551 文 档 4.5.4 G72616”。24kbit/s G.726, 请 参 见 “RFC3551 文 档 4.5.4 G72624”。32kbit/s G.726, 请 参 见 “RFC3551 文 档 4.5.4 G72632”。40kbit/s G.726, 请 参 见 “RFC3551 文 档 4.5.4 G72640”。G726 16kbit/s for ASF。G726 24kbit/s for ASF。G726 32kbit/s for ASF。G726 40kbit/s for ASF。【 注 意 事 项 】无 。9-68海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频ADPCM_TYPE_E【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 ADPCM 编 解 码 协 议 类 型 。【 定 义 】typedef enum hiADPCM_TYPE_E{ADPCM_TYPE_DVI4 = 0,ADPCM_TYPE_IMA,ADPCM_TYPE_BUTT,}ADPCM_TYPE_E;【 成 员 】成 员 名 称ADPCM_TYPE_DVI4ADPCM_TYPE_IMA描 述32kbit/s ADPCM(DVI4)。32kbit/s ADPCM(IMA)。AAC_TYPE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 AAC 音 频 编 解 码 协 议 类 型 。【 定 义 】typedef enum hiAAC_TYPE_E{AAC_TYPE_AACLC = 0,AAC_TYPE_EAAC = 1,AAC_TYPE_EAACPLUS = 2,AAC_TYPE_BUTT,}AAC_TYPE_E;【 成 员 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-69


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述AAC_TYPE_AACLC AACLC 格 式 。AAC_TYPE_EAACAAC_TYPE_EAACPLUSeAAC 格 式 ( 也 称 为 HEAAC、AAC+ 或 aacPlusV1)。eAACPLUS 格 式 ( 也 称 为 AAC++ 或 aacPlusV2)。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。AAC_BPS_E【 说 明 】定 义 AAC 音 频 编 码 码 率 。【 定 义 】typedef enum hiAAC_BPS_E{AAC_BPS_16K = 16000,AAC_BPS_22K = 22000,AAC_BPS_24K = 24000,AAC_BPS_32K = 32000,AAC_BPS_48K = 48000,AAC_BPS_64K = 64000,AAC_BPS_96K = 96000,AAC_BPS_128K = 128000,AAC_BPS_BUTT}AAC_BPS_E;【 成 员 】成 员 名 称AAC_BPS_16KAAC_BPS_22KAAC_BPS_24KAAC_BPS_32KAAC_BPS_48KAAC_BPS_64K描 述16kbit/s。22kbit/s。24kbit/s。32kbit/s。48kbit/s。64kbit/s。9-70海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频成 员 名 称AAC_BPS_96KAAC_BPS_128K描 述96kbit/s。128kbit/s。9.4.2 音 频 编 码AENC_ATTR_AMR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。音 频 编 码 相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• AENC_ATTR_AMR_S: 定 义 AMR 编 码 协 议 属 性 结 构 体 。• AENC_ATTR_G711_S: 定 义 G.711 编 码 协 议 属 性 结 构 体 。• AENC_ATTR_G726_S: 定 义 G.726 编 码 协 议 属 性 结 构 体 。• AENC_ATTR_ADPCM_S: 定 义 ADPCM 编 码 协 议 属 性 结 构 体 。• AENC_ATTR_AAC_S: 定 义 AAC 编 码 协 议 属 性 结 构 体 。• AENC_CHN_ATTR_S: 定 义 音 频 编 码 通 道 属 性 结 构 体 。【 说 明 】定 义 AMR 编 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiAENC_ATTR_AMR_S{AMR_MODE_E enMode;AMR_FORMAT_E enFormat;HI_S32s32Dtx;}AENC_ATTR_AMR_S;【 成 员 】成 员 名 称描 述enMode AMR 编 码 模 式 。enFormat AMR 编 码 格 式 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-71


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述s32Dtx Dtx 启 用 标 志 。取 值 范 围 :{0, 1}0: 不 启 用 。1: 启 用 。AENC_ATTR_G711_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 G.711 编 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiAENC_ATTR_G711_S{HI_U32 resv;}AENC_ATTR_G711_S;【 成 员 】成 员 名 称描 述resv 待 扩 展 用 ( 目 前 暂 未 使 用 )。AENC_ATTR_G726_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 G.726 编 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiAENC_ATTR_G726_S9-72海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频{G726_BPS_E enG726bps;}AENC_ATTR_G726_S;【 成 员 】成 员 名 称描 述enG726bps G.726 协 议 码 率 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】G726_BPS_EAENC_ATTR_ADPCM_S【 说 明 】定 义 ADPCM 编 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiAENC_ATTR_ADPCM_S{ADPCM_TYPE_E enADPCMType;}AENC_ATTR_ADPCM_S;【 成 员 】成 员 名 称描 述enADPCMType ADPCM 类 型 。AENC_ATTR_AAC_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】ADPCM_TYPE_E【 说 明 】定 义 AAC 编 码 协 议 属 性 结 构 体 。【 定 义 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-73


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考typedef struct hiAENC_ATTR_AAC_S{AAC_TYPE_E enAACType;AAC_BPS_EenBitRate;AUDIO_SAMPLE_RATE_E enSmpRate;AUDIO_BIT_WIDTH_E enBitWidth;AUDIO_SOUND_MODE_E enSoundMode;}AENC_ATTR_AAC_S;;【 成 员 】成 员 名 称enAACType描 述AAC 编 码 类 型 (Profile)。enBitRate 编 码 码 率 。取 值 范 围 :LC:48~128;EAAC:22~48;EAAC+:16~32;以 kbit/s 为 单 位 。enSmpRate 音 频 数 据 的 采 样 率 。取 值 范 围 :LC:16~48;EAAC:32~48;EAAC+:32~48。以 kHz 为 单 位 。enBitWidth音 频 数 据 采 样 精 度 , 只 支 持 16bit。enSoundMode 输 入 数 据 的 声 道 模 式 。 支 持 输 入 为 单 声 道 或 双 声 道 。AENC_CHN_ATTR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 音 频 编 码 通 道 属 性 结 构 体 。【 定 义 】9-74海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频typedef struct hiAENC_CHN_ATTR_S{PAYLOAD_TYPE_E enType;HI_U32 u32BufSize; /*buffer size, 以 帧 为 单 位 ,[1~MAX_AUDIO_FRAME_NUM]*/HI_VOID *pValue;}AENC_CHN_ATTR_S;【 成 员 】成 员 名 称描 述enType 音 频 编 码 协 议 类 型 。静 态 属 性 。u32BufSize 音 频 编 码 缓 存 大 小 。取 值 范 围 :[1, MAX_AUDIO_FRAME_NUM], 以 帧 为 单 位 。静 态 属 性 。pValue 具 体 协 议 属 性 指 针 。静 态 属 性 。9.4.3 音 频 解 码ADEC_ATTR_AMR_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】AENC_ATTR_AMR_S音 频 解 码 相 关 数 据 类 型 、 数 据 结 构 定 义 如 下 :• ADEC_ATTR_AMR_S: 定 义 AMR 解 码 协 议 属 性 结 构 体 。• ADEC_ATTR_G711_S: 定 义 G.711 解 码 协 议 属 性 结 构 体 。• ADEC_ATTR_G726_S: 定 义 G.726 解 码 协 议 属 性 结 构 体 。• ADEC_ATTR_ADPCM_S: 定 义 ADPCM 编 码 协 议 属 性 结 构 体 。• ADEC_ATTR_AAC_S: 定 义 AAC 解 码 协 议 属 性 结 构 体 。• ADEC_MODE_E: 定 义 解 码 方 式 。• ADEC_CHN_ATTR_S: 定 义 解 码 通 道 属 性 结 构 体 。【 说 明 】定 义 AMR 解 码 协 议 属 性 结 构 体 。【 定 义 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-75


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考typedef struct hiADEC_ATTR_AMR_S{AMR_FORMAT_E enFormat;}ADEC_ATTR_AMR_S;【 成 员 】成 员 名 称描 述enFormat AMR 编 码 格 式 。ADEC_ATTR_G711_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 G.711 解 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiADEC_ATTR_G711_S{HI_U32 resv;}ADEC_ATTR_G711_S;【 成 员 】成 员 名 称描 述resv 待 扩 展 用 ( 目 前 暂 未 使 用 )。ADEC_ATTR_G726_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 G.726 解 码 协 议 属 性 结 构 体 。9-76海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频【 定 义 】typedef struct hiADEC_ATTR_G726_S{G726_BPS_E enG726bps;}ADEC_ATTR_G726_S;【 成 员 】成 员 名 称描 述enG726bps G.726 协 议 码 率 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】G726_BPS_EADEC_ATTR_ADPCM_S【 说 明 】定 义 ADPCM 编 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiADEC_ATTR_ADPCM_S{ADPCM_TYPE_E enADPCMType;}ADEC_ATTR_ADPCM_S;【 成 员 】成 员 名 称描 述enADPCMType ADPCM 类 型 。ADEC_ATTR_AAC_S【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】ADPCM_TYPE_E【 说 明 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-77


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考定 义 AAC 解 码 协 议 属 性 结 构 体 。【 定 义 】typedef struct hiADEC_ATTR_AAC_S{HI_U32 resv;}ADEC_ATTR_AAC_S;【 成 员 】成 员 名 称描 述resv 待 扩 展 用 ( 目 前 暂 未 使 用 )。ADEC_MODE_E【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。【 说 明 】定 义 解 码 方 式 。【 定 义 】typedef enum hiADEC_MODE_E{ADEC_MODE_PACK = 0,/*require input is valid dec pack(acomplete frame encode result),e.g.the stream get from AENC is avalid dec pack, the stream know actuallypack len from file is also a dec pack.this mode is high-performative*/ADEC_MODE_STREAM ,/*input is stream,low-performative,if you couldn't find out whether a stream isvaild dec pack,you could usethis mode*/ADEC_MODE_BUTT}ADEC_MODE_E;【 成 员 】9-78海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频成 员 名 称描 述ADEC_MODE_PACK pack 模 式 解 码 。ADEC_MODE_STREAM stream 模 式 解 码 。【 注 意 事 项 】• pack 模 式 用 于 用 户 确 认 当 前 码 流 包 为 一 帧 数 据 编 码 结 果 的 情 况 下 , 解 码 器 会 直 接进 行 对 其 解 码 , 如 果 不 是 一 帧 , 解 码 器 会 出 错 。 这 种 模 式 的 效 率 比 较 高 , 在 使 用AENC 模 块 编 码 的 码 流 包 如 果 没 有 破 坏 , 均 可 以 使 用 此 方 式 解 码 。• stream 模 式 用 于 用 户 不 能 确 认 当 前 码 流 包 是 不 是 一 帧 数 据 的 情 况 下 , 解 码 器 需 要对 码 流 进 行 判 断 并 缓 存 , 此 工 作 方 式 的 效 率 低 下 , 一 般 用 于 读 文 件 码 流 送 解 码 或者 不 确 定 码 流 包 边 界 的 情 况 。 当 然 由 于 语 音 编 码 码 流 长 度 固 定 , 很 容 易 确 定 在 码流 中 的 帧 边 界 , 推 荐 使 用 pack 模 式 解 码 。【 相 关 数 据 类 型 及 接 口 】略 。ADEC_CHN_ATTR_S【 说 明 】定 义 解 码 通 道 属 性 结 构 体 。【 定 义 】typedef struct hiADEC_CH_ATTR_S{PAYLOAD_TYPE_E enType;HI_U32u32BufSize;ADEC_MODE_EHI_VOID}ADEC_CHN_ATTR_S;【 成 员 】enMode;*pValue;成 员 名 称描 述enType 音 频 解 码 协 议 类 型 。静 态 属 性 。u32BufSize 音 频 解 码 缓 存 大 小 。取 值 范 围 :[1, MAX_AUDIO_FRAME_NUM], 以 帧 为 单 位 。静 态 属 性 。enMode 解 码 方 式 。静 态 属 性 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-79


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考成 员 名 称描 述pValue 具 体 协 议 属 性 指 针 。【 注 意 事 项 】无 。【 相 关 数 据 类 型 及 接 口 】略 。9.5 错 误 码音 频 输 入 错 误 码音 频 输 入 API 错 误 码 如 表 9-5 所 示 。表 9-5 音 频 输 入 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0158001 HI_ERR_AI_INVALID_DEVID 音 频 输 入 设 备 号 无 效0xA0158002 HI_ERR_AI_INVALID_CHNID 音 频 输 入 通 道 号 无 效0xA0158003 HI_ERR_AI_ILLEGAL_PARAM 音 频 输 入 参 数 设 置 无 效0xA0158006 HI_ERR_AI_NULL_PTR 输 入 参 数 空 指 针 错 误0xA0158007 HI_ERR_AI_NOT_CONFIG 音 频 输 入 设 备 属 性 未 设 置0xA0158008 HI_ERR_AI_NOT_SUPPORT 操 作 不 支 持0xA0158009 HI_ERR_AI_NOT_PERM 操 作 不 允 许0xA015800B HI_ERR_AI_NOT_ENABLED 音 频 输 入 设 备 或 通 道 未 启用0xA015800C HI_ERR_AI_NOMEM 分 配 内 存 失 败0xA015800D HI_ERR_AI_NOBUF 音 频 输 入 缓 存 不 足0xA015800E HI_ERR_AI_BUF_EMPTY 音 频 输 入 缓 存 为 空0xA015800F HI_ERR_AI_BUF_FULL 音 频 输 入 缓 存 为 满0xA0158010 HI_ERR_AI_SYS_NOTREADY 音 频 输 入 系 统 未 初 始 化0xA0158012 HI_ERR_AI_BUSY 音 频 输 入 系 统 忙9-80海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频音 频 输 出 错 误 码音 频 输 出 API 错 误 码 如 表 9-6 所 示 。表 9-6 音 频 输 出 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0168001 HI_ERR_AO_INVALID_DEVID 音 频 输 出 设 备 号 无 效0xA0168002 HI_ERR_AO_INVALID_CHNID 音 频 输 出 通 道 号 无 效0xA0168003 HI_ERR_AO_ILLEGAL_PARAM 音 频 输 出 参 数 设 置 无 效0xA0168006 HI_ERR_AO_NULL_PTR 输 出 空 指 针 错 误0xA0168007 HI_ERR_AO_NOT_CONFIG 音 频 输 出 设 备 属 性 未 设 置0xA0168008 HI_ERR_AO_NOT_SUPPORT 操 作 不 被 支 持0xA0168009 HI_ERR_AO_NOT_PERM 操 作 不 允 许0xA016800B HI_ERR_AO_NOT_ENABLED 音 频 输 出 设 备 未 启 用0xA016800C HI_ERR_AO_NOMEM 系 统 内 存 不 足0xA016800D HI_ERR_AO_NOBUF 音 频 输 出 缓 存 不 足0xA016800E HI_ERR_AO_BUF_EMPTY 音 频 输 出 缓 存 为 空0xA016800F HI_ERR_AO_BUF_FULL 音 频 输 出 缓 存 为 满0xA0168010 HI_ERR_AO_SYS_NOTREADY 音 频 输 出 系 统 未 初 始 化0xA0168012 HI_ERR_AO_BUSY 音 频 输 出 系 统 忙音 频 编 码 错 误 码音 频 编 码 API 错 误 码 如 表 9-7 所 示 。表 9-7 音 频 编 码 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0178001 HI_ERR_AENC_INVALID_DEVID 音 频 设 备 号 无 效0xA0178002 HI_ERR_AENC_INVALID_CHNID 音 频 编 码 通 道 号 无 效0xA0178003 HI_ERR_AENC_ILLEGAL_PARAM 音 频 编 码 参 数 设 置 无 效0xA0178004 HI_ERR_AENC_EXIST 音 频 编 码 通 道 已 经 创 建0xA0178005 HI_ERR_AENC_UNEXIST 音 频 编 码 通 道 未 创 建文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-81


9 音 频Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考错 误 代 码 宏 定 义 描 述0xA0178006 HI_ERR_AENC_NULL_PTR 输 入 参 数 空 指 针 错 误0xA0178007 HI_ERR_AENC_NOT_CONFIG 编 码 通 道 未 配 置0xA0178008 HI_ERR_AENC_NOT_SUPPORT 操 作 不 被 支 持0xA0178009 HI_ERR_AENC_NOT_PERM 操 作 不 允 许0xA017800C HI_ERR_AENC_NOMEM 系 统 内 存 不 足0xA017800D HI_ERR_AENC_NOBUF 编 码 通 道 缓 存 分 配 失 败0xA017800E HI_ERR_AENC_BUF_EMPTY 编 码 通 道 缓 存 空0xA017800F HI_ERR_AENC_BUF_FULL 编 码 通 道 缓 存 满0xA0178010 HI_ERR_AENC_SYS_NOTREADY 系 统 没 有 初 始 化0xA0178040 HI_ERR_AENC_ENCODER_ERR 音 频 编 码 数 据 错 误音 频 解 码 错 误 码音 频 解 码 API 错 误 码 如 表 9-8 所 示 。表 9-8 音 频 解 码 API 错 误 码错 误 代 码 宏 定 义 描 述0xA0188001 HI_ERR_ADEC_INVALID_DEVID 音 频 解 码 设 备 号 无 效0xA0188002 HI_ERR_ADEC_INVALID_CHNID 音 频 解 码 通 道 号 无 效0xA0188003 HI_ERR_ADEC_ILLEGAL_PARAM 音 频 解 码 参 数 设 置 无 效0xA0188004 HI_ERR_ADEC_EXIST 音 频 解 码 通 道 已 经 创 建0xA0188005 HI_ERR_ADEC_UNEXIST 音 频 解 码 通 道 未 创 建0xA0188006 HI_ERR_ADEC_NULL_PTR 输 入 参 数 空 指 针 错 误0xA0188007 HI_ERR_ADEC_NOT_CONFIG 解 码 通 道 属 性 未 配 置0xA0188008 HI_ERR_ADEC_NOT_SUPPORT 操 作 不 被 支 持0xA0188009 HI_ERR_ADEC_NOT_PERM 操 作 不 允 许0xA018800C HI_ERR_ADEC_NOMEM 系 统 内 存 不 足0xA018800D HI_ERR_ADEC_NOBUF 解 码 通 道 缓 存 分 配 失 败0xA018800E HI_ERR_ADEC_BUF_EMPTY 解 码 通 道 缓 存 空0xA018800F HI_ERR_ADEC_BUF_FULL 解 码 通 道 缓 存 满9-82海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考9 音 频错 误 代 码 宏 定 义 描 述0xA0188010 HI_ERR_ADEC_SYS_NOTREADY 系 统 没 有 初 始 化0xA0188040 HI_ERR_ADEC_DECODER_ERR 音 频 解 码 数 据 错 误文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司9-83


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考目 录目录10 Proc 调 试 信 息 说 明 ...................................................................................................................10-110.1 概 述 ..........................................................................................................................................................10-110.2 SYS ...........................................................................................................................................................10-210.3 VB .............................................................................................................................................................10-310.4 LOG ..........................................................................................................................................................10-410.5 VI ..............................................................................................................................................................10-610.6 VO...........................................................................................................................................................10-1010.7 DSU.........................................................................................................................................................10-1610.8 VENC......................................................................................................................................................10-2010.9 GROUP ...................................................................................................................................................10-2310.10 VPP .......................................................................................................................................................10-2610.11 MD ........................................................................................................................................................10-2810.12 VDEC....................................................................................................................................................10-3110.13 AI...........................................................................................................................................................10-3510.14 AO .........................................................................................................................................................10-3710.15 AENC....................................................................................................................................................10-3910.16 ADEC....................................................................................................................................................10-4010.17 CHNL....................................................................................................................................................10-4110.18 H264E ...................................................................................................................................................10-4310.19 H264D...................................................................................................................................................10-4910.20 JPEGE ...................................................................................................................................................10-55文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司i


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明10 Proc 调 试 信 息 说 明10.1 概 述调 试 信 息 采 用 了 Linux 下 的 proc 文 件 系 统 , 可 实 时 反 映 当 前 系 统 的 运 行 状 态 , 所 记 录的 信 息 可 供 问 题 定 位 及 分 析 时 使 用 。【 文 件 目 录 】/proc/umap【 文 件 清 单 】文 件 名 称描 述sys 记 录 当 前 SYS 模 块 的 使 用 情 况 。vb 记 录 当 前 VB 模 块 的 buffer 使 用 情 况 。ai 音 频 输 入 通 道 信 息 。ao 音 频 输 出 通 道 信 息 。log 记 录 当 前 各 个 模 块 的 调 试 级 别 。 内 部 调 试 用 。chnl CHNL 模 块 状 态 。dsu 专 用 缩 放 单 元 信 息 。vdec 视 频 解 码 器 信 息 。venc 视 频 编 码 器 信 息 。vi 视 频 输 入 模 块 信 息 。vo 视 频 输 出 模 块 信 息 。group 当 前 编 码 通 道 组 的 属 性 配 置 以 及 当 前 编 码 通 道 统 计 状 态 。vpp 当 前 所 用 的 遮 挡 区 域 和 叠 加 区 域 的 属 性 信 息 和 状 态 信 息 。md 当 前 开 启 MD 的 编 码 通 道 的 使 用 状 况 及 其 属 性 配 置 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-1


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考文 件 名 称描 述H264e H.264 编 码 过 程 中 , 各 通 道 的 编 码 属 性 、 状 态 以 及 历 史 信 息 统 计 。H264d H.264 解 码 过 程 中 , 各 通 道 的 解 码 属 性 、 状 态 以 及 历 史 信 息 统 计 。jpege JPEG 编 码 过 程 中 , 各 通 道 的 编 码 属 性 、 状 态 以 及 历 史 信 息 统 计 。【 信 息 查 看 方 法 】• 在 控 制 台 上 可 以 使 用 cat 命 令 查 看 信 息 , 例 如 cat /proc/umap/venc; 也 可 以 使 用 其他 常 用 的 文 件 操 作 命 令 , 例 如 cp /proc/umap/ ./ -rf, 将 所 有 umap 下 的 proc 文 件 拷贝 到 当 前 目 录 。• 在 应 用 程 序 中 可 以 将 上 述 文 件 当 作 普 通 只 读 文 件 进 行 读 操 作 , 例 如 fopen、fread等 。Hi3520 与 Hi3515 显 示 的 proc 信 息 格 式 不 同 ,Hi3520 部 分 模 块 会 额 外 地 显 示 主 ARM操 作 系 统 中 的 proc 信 息 ( 以 MASTER PROC 标 示 开 始 ), 而 其 从 ARM 操 作 系 统 中 的proc 信 息 格 式 则 与 Hi3515 一 致 。10.2 SYS~10.20 JPEGE 的 参 数 在 描 述 时 有 以 下 2 种 情 况 需 要 注 意 :• 取 值 为 {0, 1} 的 参 数 , 如 未 列 出 具 体 取 值 和 含 义 的 对 应 关 系 , 则 参 数 为 1 时 表 示 肯 定 , 为 0时 表 示 否 定 。• 取 值 为 {aaa, bbb, ccc} 的 参 数 , 未 列 出 具 体 取 值 和 含 义 的 对 应 关 系 , 但 可 直 接 根 据 取 值 aaa、bbb 或 ccc 判 断 参 数 含 义10.2 SYS【 调 试 信 息 】cat /proc/umap/sysSystem State: 0 (0: initialized; 1: exiting; 2: exited)MPP Configuration:Align = 64【 调 试 信 息 分 析 】记 录 当 前 SYS 模 块 的 使 用 情 况 。【 参 数 说 明 】参 数SystemState描 述initialized 初 始 化 状 态 。exiting 正 在 退 出 状 态 。exited 退 出 状 态 。10-2海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数MPPConfiguration描 述Align 内 存 对 齐 长 度 ( 以 字 节 为 单 位 )。10.3 VB【 调 试 信 息 】cat /proc/umap/vb............Configuration of Video buffer .........max count of pools: 128configuration of common pools:0 1size 884736 663552count 0 10..................common........................POOL_ID PHYS_ADDR VIRT_ADDR IS_COMM BLK_SZ BLK_CNT FREE1 0xe52e5000 0xc9c80000 1 165888 80 78BLK VIU VOU DSU VENC VDEC MD H264E JPEGE MPEGE H264D JPEGD MPEGD VPP GRP MPI43 0 0 0 0 0 0 1 0 0 0 0 0 0 0 022 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0..................kernel........................POOL_ID PHYS_ADDR VIRT_ADDR IS_COMM BLK_SZ BLK_CNT FREE3 0xe6409000 0xcb000000 0 884736 4 3(3)BLK VIU VOU DSU VENC VDEC MD H264E JPEGE MPEGE H264D JPEGD MPEGD VPP GRP MPI3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0【 调 试 信 息 分 析 】记 录 当 前 VB 模 块 的 buffer 使 用 情 况 。【 参 数 说 明 】参 数Configuration ofVideobuffer描 述max count of pools 最 大 的 缓 存 池 的 个 数 。configuration ofcommon pools:公 共 缓 存 池 的 配 置 。size 缓 存 池 内 块 的 大 小 。count 缓 存 池 内 块 的 个 数 。commonPOOL_ID 公 共 缓 存 池 的 句 柄 。PHYS_ADDR 公 共 缓 存 池 的 开 始 物 理 地 址 。VIRT_ADDR 公 共 缓 存 池 的 开 始 逻 辑 地 址 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-3


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述IS_COMM 是 否 公 共 缓 存 池 。取 值 :{0, 1}。BLK_SZ 公 共 缓 存 池 内 缓 存 块 的 大 小 。BLK_CNT 公 共 缓 存 池 内 缓 存 块 的 个 数 。FREE 公 共 缓 存 池 空 闲 缓 存 块 的 个 数 。BLK 公 共 缓 存 池 内 缓 存 块 的 句 柄 。VIU/VOU/DSU/VENC/VDEC/MD/H264E/JPEGE/MPEGE/H264D/JPEGD/MPEGD/VPP/GRP/MPI模 块 名 。下 面 对 应 的 数 字 0 或 1 表 示 是 否 占 用 相 对 应 的 公共 缓 存 池 内 的 该 缓 存 块 。0: 没 占 用 。1: 占 用 。kernelPOOL_ID 私 有 缓 存 池 的 句 柄 。PHYS_ADDR 私 有 缓 存 池 的 开 始 物 理 地 址 。VIRT_ADDR 私 有 缓 存 池 的 开 始 逻 辑 地 址 。IS_COMM 是 否 公 共 缓 存 池 。取 值 :{0, 1}。BLK_SZ 私 有 缓 存 池 内 缓 存 块 的 大 小 。BLK_CNT 私 有 缓 存 池 内 缓 存 块 的 个 数 。FREE 私 有 缓 存 池 空 闲 缓 存 块 的 个 数 。BLK 私 有 缓 存 池 内 缓 存 块 的 句 柄 。VIU/VOU/DSU/VENC/VDEC/MD/H264E/JPEGE/MPEGE/H264D/JPEGD/MPEGD/VPP/GRP/MPI模 块 名 。下 面 对 应 的 数 字 0 或 1 表 示 是 否 占 用 相 对 应 的 私有 缓 存 池 内 的 该 缓 存 块 。0: 没 占 用 。1: 占 用 。10.4 LOG【 调 试 信 息 】~ $ cat /proc/umap/logLog Buffer State: MaxLen ReadPos WritePos ButtPos64(KB) 0 7100 6553610-4海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明Current Log Level:cmpi : 3vb : 3sys : 3chnl : 3grp : 3venc : 3vpp : 3md : 3h264e : 3jpege : 3mpeg4e : 3vdec : 3h264d : 3jpegd : 3vo : 3vi : 3dsu : 3sio : 3ai : 3ao : 3aenc : 3adec : 3pciv : 3pcivfmw : 3【 调 试 信 息 分 析 】记 录 当 前 各 个 模 块 的 调 试 级 别 。cat /proc/umap/log 用 于 获 取 Hi3520 的 从 ARM 或 者 Hi3515 上 的 log 级 别 信 息 ;cat /proc/umap/mstlog 用 于 获 取 Hi3520 的 主 ARM 上 的 log 级 别 信 息 。【 参 数 说 明 】参 数CurrentLogLevel:描 述cmpi cmpi 模 块 名 。vb vb 模 块 名 。sys sys 模 块 名 。chnl chnl 模 块 名 。grp group 模 块 名 。venc venc 模 块 名 。vpp vpp 模 块 名 。md md 模 块 名 。h264e h264e 模 块 名 。JPEGe JPEGe 模 块 名 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-5


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述mpeg4e mpeg4e 模 块 名 。vdec vdec 模 块 名 。h264d h264d 模 块 名 。JPEGd JPEGd 模 块 名 。vo vo 模 块 名 。vi vi 模 块 名 。dsu dsu 模 块 名 。sio sio 模 块 名 。ai ai 模 块 名 。ao ao 模 块 名 。aenc aenc 模 块 名 。adec adec 模 块 名 。10.5 VI【 调 试 信 息 】~ $ cat /proc/umap/vi-----MODULE PARAM--------------------------------------------------------------drop_err_frame0-----VI DEV ATTR---------------------------------------------------------------DevId InptMod WorkMod ViNorm ChrmChn ChrmSwp0 BT656 4d11 BT656 4d12 BT656 4d13 BT656 4d1-----VI CHN ATTR---------------------------------------------------------------Dev Chn RectX RectY RectW RectH CapSel DownScl bHighP PixFom CrmRSmp0 0 8 0 704 288 both n n sp420 n0 1 8 0 704 288 both n n sp420 n0 2 8 0 704 288 both n n sp420 n0 3 8 0 704 288 both n n sp420 n-----VI CHN MINOR ATTR---------------------------------------------------------Dev Chn RectX RectY RectW RectH CapSel DownScl bHighP PixFom CrmRSmp0 0 8 0 704 288 bottom y n sp420 n0 1 8 0 704 288 bottom y n sp420 n0 2 8 0 704 288 bottom y n sp420 n10-6海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明0 3 8 0 704 288 bottom y n sp420 n-----FRAME RATE CONTROL INFO---------------------------------------------------Dev Chn SrcFrmR TarFrmR RelFrmR CapWid MinoEnFrmStat0 0 25 7 7 0 y0 1 25 7 7 0 y0 2 25 7 7 0 y0 3 25 7 7 0 y-----VI CHN STATUS-------------------------------------------------------------Dev Chn IntCnt SendCnt Width Height Field NoSend VBFail BindVo0 0 108 106 352 288 frm 2 0 (2,0)0 1 108 106 352 288 frm 2 0 (2,1)0 2 108 106 352 288 frm 2 0 (2,2)0 3 108 106 352 288 frm 2 0 (2,3)-----VI CHN OTHER INFO---------------------------------------------------------Dev Chn BufCnt FrmTime UPicID TopLost BotLost SendTim0 0 2 39999 -1 0 1 1650 1 2 39996 -1 0 2 1860 2 2 39995 -1 0 2 1330 3 2 39996 -1 0 2 140-----VI CHN OVERLAY INFO-------------------------------------------------------Dev Chn RgnCnt Failcnt RunTime-----VI CHN VBI INFO-----------------------------------------------------------Dev Chn Cascade Vbi0Loc Vbi0X Vbi0Y Vbi0L Vbi1Loc Vbi1X Vbi1Y Vbi1L【 调 试 信 息 分 析 】记 录 当 前 视 频 输 入 设 备 及 通 道 的 属 性 配 置 以 及 状 态 信 息 。【 参 数 说 明 】参 数VI DEV ATTR视 频 输 入 设 备 属性 ( 请 参 考 数 据结 构VI_PUB_ATTR_S)描 述DevId 设 备 号 。InptMod 输 入 模 式 。取 值 :{BT656, BT601, DC, 720p}。WorkMod 工 作 模 式 。取 值 :{1d1, 2d1, 4d1}。ViNorm 视 频 制 式 。取 值 :{PAL, NTSC}。ChrmChn 是 否 色 度 通 道 。取 值 :{Y, N}。ChrmSwp 是 否 色 度 翻 转 。取 值 :{Y, N}。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-7


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数VI CHN ATTR视 频 输 入 通 道 属性 ( 请 参 考 数 据结 构VI_CHN_ATTR_S)描 述Dev VI 设 备 号 。Chn VI 通 道 号 。RectX 捕 获 区 域 起 始 位 置 X 坐 标 。RectY 捕 获 区 域 起 始 位 置 Y 坐 标 。RectW 捕 获 区 域 宽 度 。RectH 捕 获 区 域 高 度 。CapSel 帧 场 选 择 。取 值 :{top, bottom, both}。DownScl 是 否 水 平 压 缩 。取 值 :{Y, N}。bHighP 是 否 高 优 先 级 。取 值 :{Y, N}。PixFom 像 素 格 式 。取 值 :{sp420, sp422}。CrmRSmp 是 否 色 度 重 采 样 。取 值 :{Y, N}。VI CHN STATUS视 频 输 入 通 道 基本 状 态Dev VI 设 备 号 。Chn VI 通 道 号 。IntCnt 中 断 次 数 。每 次 帧 中 断 中 取 值 增 加 1。如 果 VI 工 作 不 正 常 , 此 值 可 能 不 会 增 加 。SendCnt发 送 成 功 帧 数 。( 发 送 给 VENC、VO、PCIV)此 值 应 该 与 IntCnt 项 基 本 匹 配 , 否 则 说 明 有 丢帧 。Width 图 像 实 际 宽 度 。Height 图 像 实 际 高 度 。Field 图 像 帧 场 标 志 。Frm: 单 场 的 逐 行 图 像 。Intl: 两 场 间 插 的 隔 行 图 像 。NoSend 未 成 功 发 送 帧 数 。由 IntCnt 项 减 SendCnt 项 而 得 , 取 值 如 果 为 1 或2, 属 正 常 现 象 。10-8海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述VBFail 获 取 VideoBuffer 失 败 次 数 。VI 采 集 每 帧 图 像 前 先 获 取 通 道 图 像 大 小 的VideoBuffer, 如 果 失 败 , 此 值 加 1; 应 该 使 此 项取 值 为 0, 否 则 说 明 相 应 的 公 共 VideoBuffer 配 置不 当 。BindVo 绑 定 的 VO 设 备 和 通 道 。VI CHN OTHERINFO视 频 输 入 通 道 其他 信 息Dev VI 设 备 号 。Chn VI 通 道 号 。BufCnt 内 部 buffer 个 数 。( 内 部 调 试 用 )FrmTime视 频 帧 采 集 时 间 间 隔 ( 例 如 P 制 为 40000us)。以 微 秒 为 单 位 。可 以 通 过 此 项 获 知 前 端 AD 的 采 集 帧 率 。 例 如25fps PAL 制 时 , 此 值 显 示 为 40000us 左 右 。UPicID 当 前 通 道 使 用 的 用 户 图 片 序 号 。如 果 未 使 用 用 户 图 片 此 值 显 示 为 -1, 使 用 原 始 用户 图 片 则 显 示 为 0, 使 用 缩 放 后 的 内 部 用 户 图 片则 显 示 其 他 序 号 。TopLost 顶 场 中 断 丢 失 数 目 。此 值 应 该 为 0, 否 则 说 明 前 端 AD 的 对 接 有 问 题 。BotLost 顶 场 中 断 丢 失 数 目 。如 果 此 项 取 值 显 示 为 1 或 2, 属 正 常 现 象 , 否 则说 明 前 端 AD 的 对 接 有 问 题 。SendTim发 送 视 频 帧 的 时 间 统 计 ( 微 秒 为 单 位 , 内 部 调 试用 )。FRAME RATECONTROL INFO视 频 输 入 的 帧 率控 制 信 息Dev VI 设 备 号 。Chn VI 通 道 号 。SrcFrmR 源 帧 率 。取 值 由 接 口 HI_MPI_VI_SetSrcFrameRate 配 置 。TarFrmR 目 标 帧 率 。取 值 由 接 口 HI_MPI_VI_SetFrameRate 配 置 。MinoEn 是 否 启 用 Minor 属 性 。取 值 :{y, n}。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-9


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数USER PIC INFO用 户 图 片 信 息( 设 置 过 用 户 图 片才 会 显 示 )UPicID描 述图 片 ID。0: 用 户 设 置 的 原 始 图 片 ;其 他 : 内 部 根 据 通 道 图 像 大 小 自 动 缩 放 出 来 的 用户 图 片 序 号 , 取 值 从 1 到 7。Width 图 片 宽 度 。Height 图 片 高 度 。Stride图 片 stride。PixForm 图 片 像 素 格 式 。取 值 :{sp420, sp422}。PoolID图 片 物 理 地 址 所 在 PoolID。PhyAddr 图 片 物 理 地 址 。bUpdate 图 片 是 否 更 新 。取 值 :{Y, N}。10.6 VO【 调 试 信 息 】$ cat /proc/umap/vo[VOU] Version: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[May 21 2010, 11:18:38]-----MODULE PARAM--------------------------------------------------------------vo_power vo_2align0 0-----DEV CONFIG----------------------------------------------------------------DevId DevEn Mux OutMode PipMode BkClr DevFrt TgtFrt0 1 VGA 1280x1024@60 -1 0 60 25-----DEV STATUS----------------------------------------------------------------DevId VideoEn FreeBuf ScrnRpt PixFmt ResoH ResoV DispX DispY DispW DispH0 1 8 1 422 1280 1152 0 0 1280 1024-----DEV STATUS 2--------------------------------------------------------------DevId VideoEn EnChNum DsuJob LastBuf VResoH VResoV Luma Cont Hue Satu0 1 4 0 1 0 0 50 54 49 55-----CASCADE INFO--------------------------------------------------------------DevId CscdEn bSlave Pattern0 0 0 010-10海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明-----GRP STATUS----------------------------------------------------------------GrpId OnDev ChNum FulFr TgtFr Start Resrv GrpGap basePts-----CHN INFO------------------------------------------------------------------DevId ChnId Prio bZoom DeFlk Field Revrs ChnGap PrePts ScalePts0 0 1 1 0 both 0 40000 0 00 1 1 1 0 both 0 40000 0 00 2 1 1 0 both 0 40000 0 00 3 1 1 0 both 0 40000 0 0-----CHN INFO 2----------------------------------------------------------------DevId ChnId bShow bSybf bSnap bCscd bZoom ZmFld ZoomX ZoomY ZoomW ZoomH SrcW SrcHHFlt VlFlt VcFlt0 0 1 1 0 0 0 4 0 0 0 0 720 576 0 0 00 1 1 1 0 0 0 4 0 0 0 0 720 576 0 0 00 2 1 1 0 0 0 4 0 0 0 0 720 576 0 0 00 3 1 1 0 0 0 4 0 0 0 0 720 576 0 0 0-----CHN STATUS----------------------------------------------------------------DevId ChnId GetCnt FreeBuf NoBfCnt ChnRpt ChnFrt SndTyp StartX StartY Width Height0 0 82 6 0 2 25 both 0 0 640 5760 1 82 6 0 2 25 both 640 0 640 5760 2 82 6 0 2 25 both 0 576 640 5760 3 82 6 0 2 25 both 640 576 640 576【 调 试 信 息 分 析 】记 录 当 前 VO 的 使 用 状 况 及 其 属 性 配 置 , 包 含 设 备 状 态 , 视 频 层 状 态 , 同 步 组 状 态 以及 通 道 状 态 。 可 用 于 动 态 获 取 当 前 VO 的 使 用 状 态 以 便 于 调 试 或 测 试 。【 参 数 说 明 】参 数MODULEPARAM描 述vo_power 功 耗 参 数 。 调 试 使 用 。vo_2align 2 对 齐 开 关 。 调 试 使 用 。DEVCONFIGDevId设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)DevEn 设 备 是 否 使 能 。0: 禁 止 ;1: 使 能 。Mux 接 口 类 型 。取 值 范 围 :[0, VO_INTF_BUTT)OutMode 接 口 时 序 。取 值 范 围 :[0, VO_OUTPUT_BUTT)PipMode显 示 buffer 模 式 。 默 认 值 :VO_DEFAULT_CHN(-1)取 值 范 围 :[-1, VO_MAX_CHN_NUM)BkClr 设 备 背 景 色 。RGB888 格 式 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-11


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述DevFrt 设 备 帧 率 , 即 刷 新 率 , 与 时 序 相 关 。TgtFrt 目 标 显 示 帧 率 , 即 P<strong>IP</strong> 拼 接 帧 率 。取 值 范 围 :(0, DevFrt]DEVSTATUSDevId设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)VideoEn 视 频 层 是 否 使 能 。0: 禁 止 ;1: 使 能 。FreeBuf 通 道 使 能 计 数 。 显 示 buffer 结 点 空 闲 数 。ScrnRpt 屏 幕 重 复 次 数 。该 数 值 表 示 vo 获 取 显 示 图 像 失 败 的 次 数 。例 如 : 多 画 面 输 出 时 , 该 值 如 果 一 直 增 加 , 表 明 此 时DSU 输 出 较 慢 。 这 时 最 好 关 注 一 下 DSU 的 负 载 , 是 否 拼接 任 务 或 者 图 形 处 理 任 务 过 于 繁 重 。PixFmt 输 入 图 像 像 素 格 式 。只 支 持 PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_422 和PIXEL_FORMAT_YUV_SEM<strong>IP</strong>LANAR_420 两 种 。ResoH 图 像 水 平 分 辨 率 。 指 vo 的 输 入 图 像 宽 度 , 是 静 态 属 性 。如 果 用 户 使 用 PipMode 为 默 认 模 式 , 该 参 数 会 决 定 显 示buffer 的 宽 度 。ResoV 图 像 垂 直 分 辨 率 。 指 vo 的 输 入 图 像 高 度 , 是 静 态 属 性 。如 果 用 户 使 用 PipMode 为 默 认 模 式 , 该 参 数 会 决 定 显 示buffer 的 高 度 。DispX 显 示 区 域 起 始 点 横 坐 标 。DispY 显 示 区 域 起 始 点 纵 坐 标 。DispW 显 示 区 域 宽 度 。DispH 显 示 区 域 高 度 。DEVSTATUS2DevId 设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)VideoEn 视 频 层 是 否 使 能 。0: 禁 止 ;1: 使 能 。EnChNum 通 道 使 能 计 数 。 即 该 设 备 有 多 少 个 通 道 处 于 使 能 状 态 。取 值 范 围 :[0, VO_MAX_CHN_NUM)DsuJobDSU 中 任 务 计 数 。 该 数 值 表 明 DSU 目 前 正 在 处 理 的 P<strong>IP</strong>任 务 计 数 。10-12海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述LastBuf last 队 列 长 度 。 调 试 使 用 。VResoHVResoV图 像 有 效 水 平 显 示 分 辨 率 , 是 图 像 水 平 显 示 分 辨 率 的 子集 。 动 态 属 性 。 该 属 性 的 设 置 主 要 是 为 了 动 态 变 更 vo 的输 入 图 像 大 小 , 在 多 画 面 切 换 过 程 中 不 用 关 闭 视 频 层 。默 认 值 为 0。图 像 有 效 垂 直 显 示 分 辨 率 , 是 图 像 垂 直 显 示 分 辨 率 的 子集 。 动 态 属 性 。 该 属 性 的 设 置 主 要 是 为 了 动 态 变 更 vo 的输 入 图 像 大 小 , 在 多 画 面 切 换 过 程 中 不 用 关 闭 视 频 层 。默 认 值 为 0。Luma 亮 度 。取 值 范 围 :[0, 100]Cont 对 比 度 。取 值 范 围 :[0, 100]Hue 色 调 。取 值 范 围 :[0, 100]Satu 饱 和 度 。取 值 范 围 :[0, 100]CASCADE INFO( 只 有 设备 具 有 级联 能 力 的情 况 下 才显 示 该项 )DevId 设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)CscdEn 级 联 使 能 。0: 禁 止 ;1: 使 能 。bSlave 级 联 从 模 式 。0: 主 模 式 ;1: 从 模 式 。Pattern 级 联 布 局 。取 值 范 围 :[0, 128]。GRPSTATUSGrpId 同 步 组 组 号 。取 值 范 围 :[0, VO_SYNC_MAX_GRP)OnDev同 步 组 基 准 设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)ChNum 同 步 组 中 通 道 个 数 。取 值 范 围 :[0, VO_MAX_CHN_NUM)文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-13


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述FulFr 同 步 组 满 帧 率 。 和 设 备 帧 率 保 持 一 致 。 只 读 属 性 。TgtFr同 步 组 目 标 帧 率 。 同 步 组 的 快 进 、 慢 放 等 都 能 从 该 数 值 体现 出 来 。Start 同 步 组 是 否 启 动 。0: 禁 止 ;1: 使 能 。Resrv 同 步 组 是 否 反 向 播 放 。0: 禁 止 ;1: 使 能 。GrpGap 同 步 组 帧 间 隔 时 间 。 与 同 步 组 目 标 帧 率 成 反 比 。CHNINFOBasePtsDevIdChnId同 步 组 基 准 时 间 戳 。 控 制 同 步 组 的 同 步 起 点 , 一 旦 设 定后 , 同 步 组 就 从 该 时 刻 起 进 行 同 步 , 时 间 戳 比 它 大 的 图 像将 被 阻 塞 , 比 它 小 的 图 像 将 被 跳 过 或 显 示 。 该 值 一 般 设 置为 文 件 中 或 者 通 道 中 的 图 像 时 间 戳 。设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)通 道 ID。取 值 范 围 :[0, VO_MAX_CHN_NUM)Prio 通 道 优 先 级 。取 值 范 围 :[0, VO_MAX_CHN_NUM)bZoom 通 道 是 否 缩 放 。 目 前 该 值 无 效 。0: 禁 止 ;1: 使 能 。DeFlk通 道 是 否 抗 闪 。 隔 行 设 备 上 , 单 场 图 像 或 者 帧 图 像 缩 小 时一 般 需 要 使 能 抗 闪 , 否 则 都 应 设 置 为 关 闭 。 对 于 逐 行 输 出设 备 该 值 都 应 该 为 禁 止 状 态 。0: 禁 止 ;1: 使 能 。Field 显 示 帧 场 信 息 。 设 置 图 像 的 帧 场 标 识 。取 值 范 围 :[0, VO_FIELD_BUTT)bCscd 是 否 级 联 通 道 。0: 否 ;1: 是 。Revrs 是 否 反 向 播 放 。0: 禁 止 ;1: 使 能 。ChnGap 通 道 帧 间 隔 。 与 通 道 帧 率 成 反 比 。 单 位 微 秒 。PrePts 上 一 帧 时 间 戳 。 单 位 微 秒 。ScalePts 目 标 时 间 戳 。 下 一 帧 要 显 示 的 时 间 戳 。 单 位 微 秒 。10-14海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数CHNINFO 2DevIdChnId描 述设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)通 道 ID。取 值 范 围 :[0, VO_MAX_CHN_NUM)bShow 通 道 是 否 显 示 。0: 隐 藏 ;1: 显 示 。BzBufbusy 队 列 长 度 。 通 道 中 被 占 用 的 buffer 结 点 数 , 不 包 括LastBuf。取 值 范 围 :[0, 8]bSnap 是 否 通 道 抓 拍 。0: 否 ;1: 是 。bZoom 是 否 局 部 放 大 。0: 否 ;1: 是 。ZmFldZoomXZoomYZoomWZoomH局 部 放 大 帧 场 属 性 。 主 要 用 于 级 联 时 是 否 对 该 通 道 进 行DIE( 去 隔 行 ) 处 理 。取 值 范 围 :[0, VIDEO_FIELD_BUTT)局 部 放 大 区 域 起 始 横 坐 标 。 如 果 是 通 过 比 例 方 式 设 置 局 部放 大 区 域 , 那 么 该 值 为 按 比 例 处 理 、 对 齐 处 理 后 的 源 图 像坐 标 。局 部 放 大 区 域 起 始 纵 坐 标 。 如 果 是 通 过 比 例 方 式 设 置 局 部放 大 区 域 , 那 么 该 值 为 按 比 例 处 理 、 对 齐 处 理 后 的 源 图 像坐 标 。局 部 放 大 区 域 宽 度 。 如 果 是 通 过 比 例 方 式 设 置 局 部 放 大 区域 , 那 么 该 值 为 按 比 例 处 理 、 对 齐 处 理 后 的 源 图 像 坐 标 。局 部 放 大 区 域 高 度 。 如 果 是 通 过 比 例 方 式 设 置 局 部 放 大 区域 , 那 么 该 值 为 按 比 例 处 理 、 对 齐 处 理 后 的 源 图 像 坐 标 。SrcW 通 道 源 图 像 宽 度 。SrcH 通 道 源 图 像 高 度 。FltTp 通 道 滤 波 器 类 型 。 即 DSU 滤 波 器 类 型 。取 值 范 围 :[0, FILTER_PARAM_TYPE_BUTT)HFlt 通 道 水 平 滤 波 系 数 。 即 DSU 水 平 系 数 。取 值 范 围 :[0, DSU_HSCALE_FILTER_BUTT)VlFlt 通 道 垂 直 亮 度 滤 波 系 数 。 即 DSU 垂 直 亮 度 系 数 。取 值 范 围 :[0, DSU_VSCALE_FILTER_BUTT)文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-15


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述VcFlt 通 道 垂 直 色 度 滤 波 系 数 。 即 DSU 垂 直 色 度 系 数 。取 值 范 围 :[0, DSU_VSCALE_FILTER_BUTT)CHNSTATUSDevIdChnIdGetCntFreeBufNoBfCntChnRpt设 备 ID。取 值 范 围 :[0, VO_MAX_DEV_NUM)通 道 ID。取 值 范 围 :[0, VO_MAX_CHN_NUM)通 道 获 取 帧 计 数 。 如 果 该 数 值 为 0, 表 示 vo 还 没 有 收 到图 像 数 据 ; 如 果 该 数 值 一 直 不 增 加 , 表 示 vo 接 收 不 到 图像 了 。通 道 空 闲 buffer 计 数 。 该 数 值 越 小 , 说 明 通 道 图 像 积 累 越多 , 延 时 越 大 。 解 码 一 般 通 过 通 道 buffer 进 行 反 压 , 所 以解 码 时 该 数 值 一 般 较 小 。取 值 范 围 :[0, 8]通 道 没 buffer 计 数 。 通 道 满 的 情 况 下 , 该 数 值 会 增 加 , 表示 新 来 的 图 像 获 取 不 到 vo 通 道 buffer。通 道 重 复 显 示 帧 计 数 。 该 数 值 越 大 , 说 明 通 道 欠 载 越 严重 。 即 前 端 送 图 像 较 慢 , 常 常 导 致 通 道 队 列 中 无 图 像 。ChnFrt 通 道 帧 率 。 通 道 播 放 控 制 可 以 通 过 该 数 值 反 映 。SndTyp 通 道 收 到 的 帧 类 型 。 即 源 的 帧 标 识 。取 值 范 围 :[1, VIDEO_FIELD_BUTT)StartX 通 道 起 始 横 坐 标 。StartY 通 道 起 始 纵 坐 标 。Width 通 道 宽 度 。Height 通 道 高 度 。10.7 DSU【 调 试 信 息 】~ $ cat /proc/umap/dsu[DSU] Version: [Hi3515_MPP_V1.0.0.0 Debug], Build Time[May 25 2010, 11:37:05]-----MODULE PARAM--------------------------------------------------------------max_job_num40-----RECENT JOB INFO-----------------------------------------------------------10-16海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明SeqNo ModId JobHdl TaskNum State InSize OutSize CostTime0 VOU 13 4 ProcOk 1658880 414720 105331 VOU 12 4 ProcOk 1658880 414720 105992 VOU 11 4 ProcOk 1658880 414720 105833 VOU 10 4 ProcOk 1658880 414720 105424 VOU 9 4 ProcOk 1658880 414720 105735 VOU 8 4 ProcOk 1658880 414720 105386 VOU 7 4 ProcOk 1658880 414720 106057 VOU 6 4 ProcOk 1658880 414720 10564-----MAX WASTE TIME JOB INFO---------------------------------------------------SeqNo ModId JobHdl TaskNum State InSize OutSize CostTime8 VOU 23 4 ProcOk 1658880 414720 11005-----DSU JOB STATUS------------------------------------------------------------Success Fail Cancel AllJobNd FreeNd BeginNd EndJobNd ProcNd1294 0 0 40 39 0 0 1-----DSU TASK STATUS-----------------------------------------------------------Success Fail Cancel AllTaskNd FreeNd BusyNd10349 0 0 320 312 8-----DSU INT STATUS------------------------------------------------------------IntNum IntTm UserCbTm FifoDepth HalProcTm1294 52 38 1 314-----DSU MEM REQ STATUS -------------------------------------------------------ReqOk FreeOk ReqFail FreeFail0 0 0 0【 调 试 信 息 分 析 】记 录 DSU 模 块 最 近 完 成 的 若 干 任 务 、 最 近 耗 时 最 大 的 任 务 、 历 史 累 计 信 息 及 中 断 相 关信 息 。【 参 数 说 明 】参 数MODULEPARAMRECENTJOBINFO最 近 完 成的 job 的信 息描 述max_job_num 最 大 job 数 。 默 认 为 40。仅 当 需 要 调 整 DSU 支 持 的 job 数 , 才 需 要 在 插 入 模 块时 指 定 该 值 。SeqNo 打 印 序 号 。取 值 范 围 :[0, 7]ModId 提 交 该 job 的 模 块 名 。JobHdl 该 job 的 handle 号 , 调 试 使 用 。取 值 范 围 :[0, 39]TaskNum 该 job 包 含 的 task 数 目 。取 值 范 围 :[0, 320)文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-17


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述State 该 job 的 处 理 状 态 。取 值 范 围 :{ProcNok、Procok、Procing}ProcNok: 表 示 job 执 行 失 败Procok : 表 示 job 执 行 成 功Procing : 表 示 job 正 在 硬 件 处 理InSizeOutSize该 job 下 各 task 的 输 入 图 像 面 积 之 和单 位 : 像 素每 向 该 job 添 加 一 个 task, 此 项 就 加 上 该 task 的 输 入 面积 。DSU 缩 放 性 能 主 要 受 图 像 输 入 、 输 出 面 积 的 影 响 。 一般 ,Job 的 总 输 入 / 输 出 图 像 面 积 (InSize/OutSize) 越大 , 处 理 该 任 务 的 耗 时 (CostTime) 就 越 长 。该 job 下 各 task 的 输 出 图 像 面 积 之 和单 位 : 像 素每 向 该 job 添 加 一 个 task, 此 项 就 加 上 该 task 的 输 出 面积 。CostTime 该 job 从 提 交 到 完 成 的 耗 时 时 长 。单 位 :us。该 时 间 包 括 针 对 该 任 务 的 软 件 、 硬 件 及 中 断 服 务 程 序 处理 时 间 。如 果 DSU 性 能 不 足 ( 如 提 交 缩 放 的 任 务 太 多 , 超 出 性能 限 制 ), 可 能 该 值 会 超 过 预 期 。 如 PAL 制 预 览 业务 , 一 个 Job 的 完 成 时 间 超 过 40ms, 则 会 导 致 预 览 图像 卡 顿 。 此 情 况 下 , 可 检 查 业 务 是 否 超 过 DSU 性 能 。MAXWASTETIMEJOBINFO最 近 耗 时最 大 的job 信 息各 项 同RECENTJOB INFO 的成 员最 近 500 个 任 务 中 耗 时 最 长 的 job 的 信 息 。其 各 项 同 RECENT JOB INFO 的 成 员 , 具 体 意 义 请 参 见前 述 。当 出 现 耗 时 更 长 的 任 务 或 任 务 总 数 已 超 过 500 时 , 就 更新 该 组 值 。通 过 该 组 值 可 知 最 近 的 dsu 运 行 性 能 , 以 及 是 否 出 现 过DSU 处 理 不 及 时 的 情 况 。DSU JOBSTATUSDSU 任 务状 态SuccessFail累 计 成 功 处 理 的 job 数 。当 硬 件 处 理 成 功 时 加 1。累 计 处 理 失 败 的 job 数 。当 DSU 提 交 任 务 给 驱 动 层 并 失 败 时 加 1。 该 值 增 加 时可 通 过 察 看 日 志 了 解 失 败 原 因 。10-18海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述Cancel 累 计 的 用 户 主 动 取 消 的 job 数 。当 用 户 调 用 cancleJob 接 口 时 加 1, 如 向 job 添 加 task 时失 败 , 用 户 会 cancleJob。 该 值 增 加 时 可 通 过 察 看 日 志 了解 失 败 原 因 。AllJobNd DSU 任 务 节 点 总 数 , 同 max_job_num 值 , 一 般 为 40。FreeNd 空 闲 的 job 节 点 数 。BeginNd 用 户 已 创 建 任 务 但 还 未 提 交 (EndJob 接 口 ) 的 job 数 。EndJobNd用 户 已 提 交 (EndJob 接 口 ) 但 还 未 提 交 给 硬 件 处 理 的任 务 数 。ProcNd 正 在 进 行 硬 件 处 理 的 任 务 数 。DSUTASKSTATUSDSU Task状 态Success 累 计 成 功 处 理 的 Task 数 。一 个 job 包 含 1 到 多 个 缩 放 task, 所 以 1 个 job 成 功 表明 其 下 的 多 个 task 都 成 功 , 故 该 值 累 加 的 比 job 的Success 项 更 快 。当 硬 件 处 理 一 个 Job 成 功 时 , 该 值 累 加 job 下 的 task数 。Fail 累 计 处 理 失 败 的 Task 数 。一 个 job 失 败 将 导 致 其 下 的 所 有 task 失 败 。 当 Job 执 行失 败 时 , 该 项 累 加 其 下 失 败 的 task 数 。该 值 增 加 时 可 通 过 察 看 日 志 了 解 失 败 原 因 。Cancel 累 计 的 用 户 主 动 Cancel 的 Task 数 。用 户 调 用 cancleJob 接 口 时 , 即 取 消 了 job 下 的 所 有 task的 执 行 , 该 项 累 加 。该 值 增 加 时 可 通 过 察 看 日 志 了 解 失 败 原 因 。AllJobNd DSU Task 节 点 总 数 , 一 般 为 320。FreeNd 空 闲 的 Task 节 点 数 。BusyNd 已 添 加 到 Job 下 的 task 数 。DSU INTSTATUSDSU 中 断状 态IntNumIntTmDSU 中 断 个 数 。硬 件 完 成 一 个 job, 该 值 加 1。DSU 中 断 处 理 时 间 。单 位 :us包 含 DSU 中 断 处 理 和 回 调 用 户 的 时 间 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-19


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述UserCbTm DSU 中 断 中 回 调 用 户 的 时 间 。单 位 :us如 果 该 值 过 大 , 表 明 用 户 的 回 调 处 理 程 序 执 行 慢 , 可 能会 影 响 DSU 处 理 性 能 。FifoDepth 硬 件 处 理 深 度 , 内 部 调 试 使 用 。HalProcTm 将 Job 提 交 给 驱 动 层 的 时 间 , 内 部 调 试 使 用 。单 位 :usDSUMEMREQSTATUSDSU 内 存申 请 状 态ReqOk 申 请 VB 成 功 次 数 。当 申 请 成 功 时 加 1。注 意 , 用 户 使 用 DSU 的 OSD 叠 加 功 能 或 将 视 频 转 换 到PACKAGE 格 式 时 ,DSU 才 申 请 / 释 放 内 存 。FreeOk 释 放 VB 成 功 次 数 。当 释 放 成 功 时 加 1。 一 般 应 与 ReqOk 项 相 同 , 表 明 没 有内 存 泄 露 。ReqFail 申 请 VB 失 败 次 数 。当 申 请 失 败 时 加 1, 一 般 应 为 0。FreeFail 释 放 VB 失 败 次 数 。当 释 放 失 败 时 加 1, 一 般 应 为 0。10.8 VENC【 调 试 信 息 】~ $ cat /proc/umap/venc------------ info from slave arm -------------Version: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[Nov 27 2009, 14:04:42]-----VENC CHN ATTR-------------------------------------------------------------NO. W H type Fd ViFd Wm Mn SFm Rx Seq Rg LP LB Pk0 352 288 96 0 0 0 1 1 1 1cce41 1 0 21261 01 176 144 96 0 0 0 1 1 1 1cd801 1 0 0 02 352 288 96 0 0 0 1 1 1 1ccf24 1 0 31431 03 176 144 96 0 0 0 1 1 1 1cd64d 1 0 0 0-----VENC CHN STATE------------------------------------------------------------NO. GetSmFd Notify RlFrm FrmF FrmB FrmU UserGet userRls CFrmU0 2922 3205 26 75 26 0 1887809 1887809 01 451 1383 25 112 1 0 1890305 1890305 02 2696 3199 26 80 25 0 1888036 1888036 03 888 1326 25 113 0 0 1889869 1889869 010-20海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明=====MASTER PROC===============================================================Version: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[Dec 1 2009, 17:59:38]ID ByFrm state CbSize LftPic LftStrm0 YES CREATED 10816 0 01 YES CREATED 128 0 0【 调 试 信 息 分 析 】记 录 当 前 编 码 通 道 的 使 用 状 况 及 其 属 性 配 置 , 最 多 有 64 路 编 码 通 道 。 可 用 于 检 查 属 性配 置 以 及 当 前 编 码 通 道 统 计 状 态 。【 参 数 说 明 】参 数VENCCHNATTR描 述NO. 编 码 通 道 号 。W 编 码 通 道 宽 度 。H 编 码 通 道 高 度 。type 编 码 类 型 。Fd 帧 场 编 码 标 识 。0: 帧 编 码 ;1: 场 编 码 。ViFd 输 入 图 像 的 帧 场 标 识 。0: 帧 模 式 ;1: 场 模 式 。Wm 是 否 开 启 数 字 水 印 。取 值 :{0, 1}。Mn 主 次 码 流 标 识 。0: 次 码 流 ;1: 主 码 流 。SFm 按 帧 获 取 码 流 标 识 。0: 按 包 获 取 ;1: 按 帧 获 取 。Rx 阻 塞 或 非 阻 塞 获 取 码 流 标 识 。0: 阻 塞 ;1: 非 阻 塞 。Seq 序 列 号 。按 帧 获 取 时 为 帧 序 列 号 , 按 包 获 取 时 为 包 序 列 号 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-21


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述Rg 是 否 注 册 到 通 道 组 中 。取 值 :{0, 1}。LP Left Picture, 待 编 码 的 图 像 数 。LB Left Byte, 码 流 buff 剩 余 的 byte 数 。Pk Pack, 当 前 帧 的 码 流 包 个 数 。VENCCHNSTATENO 编 码 通 道 号 。GetSmFd 该 通 道 获 取 码 流 失 败 的 次 数 。Notify 暂 无 意 义 , 用 户 不 需 关 注 。RlFrm 实 际 编 码 帧 率 。统 计 一 秒 内 编 码 器 编 了 多 少 帧 图 像 。该 值 可 用 于 估 计 编 码 器 性 能 。FrmF 码 流 buffer 中 FREE 节 点 的 个 数 。FrmB 码 流 buffer 中 BUSY 节 点 的 个 数 。FrmU 码 流 buffer 中 USER 节 点 的 个 数 。用 户 成 功 获 取 一 帧 码 流 后 , 该 值 加 1。用 户 成 功 释 放 一 帧 码 流 后 , 该 值 减 1。UserGet 用 户 成 功 获 取 码 流 的 码 流 包 计 数 。userRls 用 户 成 功 释 放 码 流 的 码 流 包 计 数 。CFrmU 无 意 义 , 保 留 。MASTERPROCID 编 码 通 道 号 。ByFrm 是 否 按 帧 获 取 码 流 。取 值 :{0, 1}。state 通 道 状 态 。INIT: 初 始 状 态 ;CREATED: 创 建 状 态 ;DESTORY: 已 销 毁 状 态 ;WTDSTY: 等 待 销 毁 状 态 。CbSize 主 从 ARM 共 享 buffer 的 使 用 情 况 。LftPic 等 待 编 码 图 像 数 目 。 应 与 从 ARM LP 数 据 保 持 一 致 。LftStrm Buffer 剩 余 码 流 byte 数 。 应 与 从 ARM LB 数 据 保 持 一 致 。10-22海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明10.9 GROUP【 调 试 信 息 】~ $ cat /proc/umap/grpVersion: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[Nov 27 2009, 14:04:11]-----GROUP PUBLIC--------------------------------------------------------------MaxWidth MaxHeight720 576-----GROUP CHN ATTR------------------------------------------------------------NO. num W H Fd VeS VpS Top Die St Tim Px Wz Hz Zw Zh OsN PicAdr0 1 352 288 0 1 1 1 0 1 1 0 0 0 0 0 2 e5eeb0001 1 176 144 0 1 1 1 0 1 1 0 0 0 0 0 2 e6075e00-----GROUP CHN STATE-----------------------------------------------------------NO. DsuAdd DsuSub DsuCrt DsuInt Gry TD Flt SlM HWus Intus SCus0 98306 98306 49153 49153 0 1 0 1 2823 19025 441 4236302 4236302 2118151 2118151 0 1 0 1 21977 -1193 249-----GROUP INFO----------------------------------------------------------------NO. ViSend GrpSend GrpInq InqOk GrpStart GrpCnVp GrpInt0 2118151 2118151 3780851 3780807 3780807 2118148 21181481 2118151 2118151 3780851 3780807 3780807 2118148 2118148-----GROUP INFO 2--------------------------------------------------------------GNO. Chn typ SendPic SendOk Inq Start StartOk Cfg Int Tr0 0 96 2118151 2118150 3780828 3780807 2118148 2115451 2118148 01 1 96 2118151 2118150 3780827 3780807 2118148 2117729 2118148 411c1a【 调 试 信 息 分 析 】记 录 当 前 编 码 通 道 组 的 属 性 配 置 以 及 当 前 编 码 通 道 统 计 状 态 。【 参 数 说 明 】参 数GROUPPUBLICMax_widthMax_height描 述彩 转 灰 支 持 的 最 大 图 像 宽 度 。彩 转 灰 支 持 的 最 大 图 像 高 度 。GROUPCHNATTRNO. GROUP 通 道 号 。num GROUP 内 编 码 通 道 的 个 数 。W GROUP 通 道 内 主 码 流 编 码 通 道 宽 度 。H GROUP 通 道 内 主 码 流 编 码 通 道 高 度 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-23


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述Fd GROUP 通 道 内 主 码 流 编 码 方 式 。0: 帧 编 码 ;1: 场 编 码 。VeS 是 否 编 码 。取 值 :{0, 1}。VpS 是 否 做 视 频 前 处 理 。取 值 :{0, 1}。Top 顶 底 场 标 识 。0: 底 场 ;1: 顶 场 。 主 码 流 为 帧 编 码 时 , 无 效 。Die De-interalce 使 能 。取 值 :{0, 1}。St 宏 块 动 静 判 决 使 能 。取 值 :{0, 1}。Tim 时 域 滤 波 使 能 。取 值 :{0, 1}。Px 缩 放 丢 点 使 能 。取 值 :{0, 1}。Wz 水 平 缩 放 使 能 。取 值 :{0, 1}。Hz 垂 直 缩 放 使 能 。取 值 :{0, 1}。Zw 水 平 缩 放 倍 数 。Zh 垂 直 缩 放 倍 数 。OsN 该 编 码 通 道 组 里 OSD 区 域 的 数 目 。PicAdr 编 码 图 像 的 内 存 地 址 ( 内 部 调 试 用 )。GROUPCHNSTATENO. GROUP 通 道 号 。DsuAdd 内 部 DSU 使 用 VB 的 次 数 ( 内 部 调 试 用 )。DsuSub 内 部 DSU 释 放 VB 的 次 数 ( 内 部 调 试 用 )。DsuCrt 创 建 DSU 任 务 的 次 数 ( 内 部 调 试 用 )。DsuInt DSU 完 成 的 次 数 ( 内 部 调 试 用 )。10-24海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述Gry 彩 转 灰 开 关 。0: 关 ;1: 开 。TD 时 域 滤 波 开 关 。0: 关 ;1: 开 。Flt 缩 放 系 数 。SlM 缩 放 模 式 。HWus 硬 件 时 间 ( 内 部 调 试 用 )。Intus 中 断 开 始 时 间 ( 内 部 调 试 用 )。SCus 中 断 结 束 时 间 ( 内 部 调 试 用 )。GROUPINFONO. GROUP 通 道 号 。ViSend VI 通 道 发 送 给 GROUP 通 道 图 像 数 。GrpSend GROUP 通 道 组 发 送 给 其 内 的 编 码 通 道 的 图 像 数 。GrpInq GROUP 查 询 次 数 。InqOk GROUP 查 询 成 功 次 数 。GrpStart GROUP 启 动 编 码 次 数 。GrpCnVp GROUP 启 动 视 频 前 处 理 的 次 数 。GrpInt GROUP 中 断 次 数 。GROUPINFO 2GNO. GROUP 通 道 组 号 。Chn GROUP 通 道 组 内 编 码 通 道 号 。Typ GROUP 通 道 组 内 编 码 通 道 编 码 类 型 。SendPic GROUP 发 送 图 像 的 次 数 。SendOk GROUP 发 送 图 像 成 功 的 次 数 。Inq GROUP 通 道 组 查 询 的 次 数 。Start GROUP 通 道 组 启 动 编 码 的 次 数 。StartOk GROUP 通 道 组 启 动 编 码 成 功 的 次 数 。Cfg GROUP 通 道 组 配 置 硬 件 寄 存 器 的 次 数 。Int GROUP 通 道 组 中 断 处 理 次 数 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-25


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述Tr 编 码 通 道 编 码 图 像 的 时 间 计 数 ( 内 部 调 试 用 )。10.10 VPP【 调 试 信 息 】~ $ cat /proc/umap/vpp----VPP COVER REGION --------------------------------------------Hdl Dev Chn bPub Show Lay X Y W H Color0 0 0 0 1 1 100 200 50 50 01 0 0 0 1 2 202 205 50 50 ff002 0 0 0 1 3 300 200 50 50 ff00003 0 0 0 1 4 400 200 50 50 ff----VPP OVERLAY REGION ----------------------------------------------Hdl Grp bPub Show Used PiFmt X Y W H AphF AphB Color Phy Virt Stride68 0 0 1 1 8 104 100 180 144 128 128 0 c403b000 c1340000 36869 0 0 1 1 8 304 100 180 144 128 128 1f c4055000 c1360000 36870 0 0 1 1 8 104 300 48 48 70 70 3e0 c406f000 c1054000 9671 0 0 1 1 8 304 300 48 48 30 30 7c00 c4072000 c1074000 96----VPP VIOVERLAY REGION -----------------------------------------------Hdl Dev Chn bPub Show Lay X Y W H Aph bEx Aph0 Aph1 Color Len Addr328 0 0 0 1 0 96 96 180 144 255 0 255 255 8000 51840 c3de7000----VPP CONFIG OF VENC ----------------------------------------------Grp DeNos C2G SclMode HFilt VFiltL VFiltC SrcFmR TarFmR【 调 试 信 息 分 析 】记 录 当 前 所 有 VPP 区 域 的 属 性 和 状 态 信 息 , 以 及 用 户 更 改 后 的 VENC 前 处 理 配 置 。【 参 数 说 明 】参 数VPP COVERREGION遮 挡 区 域描 述Hdl 遮 挡 区 域 句 柄 。Dev 遮 挡 区 域 对 应 的 VI 设 备 号 。Chn 遮 挡 区 域 对 应 的 VI 通 道 号 。bPub 是 否 公 共 区 域 。取 值 :{0, 1}。Show 是 否 显 示 。取 值 :{0, 1}。Lay 遮 挡 区 域 层 次 。10-26海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述X 遮 挡 区 域 的 起 始 位 置 X 坐 标 。Y 遮 挡 区 域 的 起 始 位 置 Y 坐 标 。W 遮 挡 区 域 的 宽 度 。H 遮 挡 区 域 的 高 度 。Color 遮 挡 区 域 的 背 景 色 。VPPOVERLAYREGION叠 加 OSD 区域Hdl 叠 加 区 域 OSD 句 柄 。Grp 叠 加 区 域 所 属 的 GROUP 通 道 号 。bPub 是 否 公 共 区 域 。取 值 :{0, 1}。Show 是 否 显 示 。取 值 :{0, 1}。Uesd 正 在 被 几 个 通 道 使 用 。PiFmt 叠 加 区 域 像 素 格 式 。X 叠 加 区 域 的 起 始 位 置 X 坐 标 。Y 叠 加 区 域 的 起 始 位 置 Y 坐 标 。W 叠 加 区 域 的 宽 度 。H 叠 加 区 域 的 高 度 。AphF 前 景 alpha 值 。AphB 背 景 alpha 值 。Color 背 景 色 。Phy 叠 加 区 域 的 内 存 物 理 地 址 ( 内 部 调 试 用 )。Virt 叠 加 区 域 的 内 存 虚 拟 地 址 ( 内 部 调 试 用 )。Stride 叠 加 区 域 的 行 内 存 宽 度 ( 内 部 调 试 用 )。VPPVIOVERLAYREGIONVI 叠 加 OSD区 域Hdl 遮 挡 区 域 句 柄 。Dev 遮 挡 区 域 对 应 的 VI 设 备 号 。Chn 遮 挡 区 域 对 应 的 VI 通 道 号 。bPub 是 否 公 共 区 域 。取 值 :{0, 1}。Lay 层 次 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-27


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述X 区 域 的 位 置 X 坐 标 。Y 区 域 的 位 置 Y 坐 标 。W 区 域 的 宽 度 。H 区 域 的 高 度 。Alp 全 局 透 明 度 。bEx是 否 扩 展 ARGB1555 Alpha。Alp0 扩 展 ARGB1555 Alpha 时 的 Alpha 0 取 值 。Alp1 扩 展 ARGB1555 Alpha 时 的 Alpha 1 取 值 。Col 背 景 色 。Addr 区 域 数 据 区 的 物 理 地 址 ( 内 部 调 试 用 )。Len 区 域 数 据 区 的 大 小 ( 内 部 调 试 用 )。Show 区 域 是 否 显 示 。取 值 :{0, 1}。VPP CONFIGOF VENC视 频 编 码 的 前处 理 配 置 ( 各项 具 体 说 明 请参 考 结 构 体VIDEO_PREPROC_CONF_S 的 描 述 )Grp 编 码 通 道 组 号 。DeNos 是 否 开 启 降 噪 。C2G 是 否 彩 转 灰 。SclMode 缩 放 模 式 。HFilt 水 平 缩 放 系 数 。VFiltL 垂 直 亮 度 缩 放 系 数 。VFiltC 垂 直 色 度 缩 放 系 数 。SrcFmR 编 码 通 道 组 源 帧 率 。TarFmR 编 码 通 道 组 目 标 帧 率 。10.11 MD【 调 试 信 息 】~$ cat /proc/umap/mdVersion: [Hi3520_MPP_V1.0.2.2 Debug], Build Time[Oct 27 2009, 19:38:20]10-28海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明-----MD CHN ATTR---------------------------------------------------------------NO. W Y type RefM RefS SAD MV MBAl PelAlNum Dlight SadB0 352 288 96 0 1 1 0 0 0 0 0-----MD CHN ATTR 2-------------------------------------------------------------NO. Int Buf STh PTh PNTh DlB DlA TolM TolSz UsePM UseSd0 0 16 1000 20 20 1 0 c5ea7000 240640 0 0-----MD STATE------------------------------------------------------------------NO. Start Conf End GetD ReaD SADRefA SRefSd SADN CSadRfA stat0 1779 99 99 98 93 c5ea7400 180 1 c5ec2400 0-----MD STATE 2----------------------------------------------------------------NO. MvRefA MvRefSd MvN CMvRefA PrLdMvA PrStMvd PrN RltMvA RltMvSd RF RB RU0 0 0 0 0 0 0 0 0 0 11 0 5=====MASTER PROC===============================================================Version: [Hi3520_MPP_V1.0.2.2 Debug], Build Time[Oct 27 2009, 19:44:24]-----MD CB INFO----------------------------------------------------------------ID CBWh CBWt CBRh CBRt CBDl0 2176 2176 1856 1856 320【 调 试 信 息 分 析 】记 录 当 前 开 启 MD 的 编 码 通 道 的 使 用 状 况 及 其 属 性 配 置 , 最 多 可 启 用 32 路 编 码 通 道 做移 动 侦 测 。 可 用 于 检 查 属 性 配 置 以 及 当 前 编 码 通 道 统 计 状 态 。【 参 数 说 明 】参 数MD CHNATTR描 述NO. 编 码 通 道 号 。W 编 码 通 道 宽 度 。Y 编 码 通 道 高 度 。Type 编 码 类 型 。RefM 参 考 图 像 模 式 。0: 自 动 模 式 ;1: 用 户 输 入 模 式 。RefS 参 考 图 像 状 态 。0: 不 更 新 ;1: 更 新 。SAD 宏 块 SAD 是 否 开 启 。取 值 :{0, 1}。MV 宏 块 MV 是 否 开 启 。取 值 :{0, 1}。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-29


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述MBAl 宏 块 报 警 信 息 是 否 开 启 。取 值 :{0, 1}。PelAlNum 宏 块 报 警 像 素 的 个 数 是 否 开 启 。取 值 :{0, 1}。Dlight 去 光 照 效 应 是 否 开 启 。取 值 :{0, 1}。SadB 宏 块 SAD 的 精 度 。0:8bit;1:16bit。MD CHNATTR 2NO. 编 码 通 道 号 。Int 间 隔 数 。Buf 结 果 缓 存 的 个 数 。STh SAD 阈 值 。PTh 像 素 报 警 阈 值 。PNTh 像 素 报 警 个 数 阈 值 。DlB 去 光 照 效 应 的 Bata 值 。DlA 去 光 照 效 应 的 alpha 值 。TolM 总 内 存 地 址 ( 内 部 调 试 用 )。TolSz 总 内 存 的 大 小 。UsePM 用 户 提 供 的 参 考 图 像 的 内 存 地 址 。UseSd 用 户 提 供 的 参 考 图 像 的 行 内 存 宽 度 。MD stateNO. 编 码 通 道 号 。Start 启 动 成 功 次 数 。Conf 配 置 硬 件 寄 存 器 次 数 。End 结 束 的 次 数 。GetD 用 户 获 取 MD 结 果 的 次 数 。ReaD 用 户 释 放 MD 结 果 的 次 数 。SADRefA SAD 参 考 图 像 地 址 ( 内 部 调 试 用 )。SRefSd SAD 参 考 图 像 的 行 内 存 宽 度 ( 内 部 调 试 用 )。SADN SAD 参 考 图 像 内 存 倒 换 标 识 ( 内 部 调 试 用 )。10-30海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述CSadRfA SAD 参 考 图 像 倒 换 内 存 地 址 ( 内 部 调 试 用 )。stat MD 当 前 状 态 ( 内 部 调 试 用 )0:MD_CHN_STARTUP;1:MD_CHN_RUNNING;2:MD_CHN_WAITSTOP;3:MD_CHN_STOP。MDSTATE 2NO. 编 码 通 道 号 。MvRefA MV 参 考 图 像 地 址 ( 内 部 调 试 用 )。MvRefSd MV 参 考 图 像 的 行 内 存 宽 度 ( 内 部 调 试 用 )。MvN MV 参 考 图 像 内 存 倒 换 标 识 ( 内 部 调 试 用 )。CMvRefA MV 参 考 图 像 倒 换 内 存 地 址 ( 内 部 调 试 用 )。PrLdMvA MV 累 加 信 息 载 入 地 址 ( 内 部 调 试 用 )。PrStMvd MV 累 加 信 息 输 出 地 址 ( 内 部 调 试 用 )。PrN MV 累 加 信 息 内 存 倒 换 标 识 ( 内 部 调 试 用 )。RltMvA MV 结 果 内 存 地 址 ( 内 部 调 试 用 )。RltMvSd MV 结 果 内 存 行 宽 度 ( 内 部 调 试 用 )。RF 放 置 MD 结 果 的 Free 队 列 元 素 个 数 ( 内 部 调 试 用 )。RB 放 置 MD 结 果 的 Busy 队 列 元 素 个 数 ( 内 部 调 试 用 )。RU 放 置 MD 结 果 的 用 户 队 列 元 素 个 数 ( 内 部 调 试 用 )。MD CBINFOID 通 道 号 。CBWh 共 享 内 存 中 循 环 buffer 写 头 ( 内 部 调 试 用 )。CBWt 共 享 内 存 中 循 环 buffer 写 尾 ( 内 部 调 试 用 )。CBRh 共 享 内 存 中 循 环 buffer 读 头 ( 内 部 调 试 用 )。CBRt 共 享 内 存 中 循 环 buffer 读 尾 ( 内 部 调 试 用 )。CBDl 共 享 内 存 中 循 环 buffer 数 据 长 度 ( 内 部 调 试 用 )。10.12 VDEC【 调 试 信 息 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-31


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考~ $ cat /proc/umap/vdec------------ info from slave arm ------------------MODULE PARAM--------------------------------------------------------------nc_alg obey_minCR1 0----------CHNL ATTR----------ID Type CurNalu CurLen FrmRate Prio Width Height FrmNum FrmMax VoBind0 96 c421a2be 0 25 0 720 576 3 414720 (2,2)1 96 c561a798 0 27 0 704 576 2 414720 (2,3)----------CHNL STATE----------ID SndStm RlsStm RlsFail SndPic SndUdata GetPic GetUdata RlsPic RlsUdata0 617 538 0 517 0 0 0 0 01 525 524 0 506 0 0 0 0 0----------BUF STATE----------ID Addr Size Wptr Rptr Wable Rable Free Busy0 e7474000 829440 e748e2be e748e80e 1360 828080 6 11 e75e8000 811008 e7602798 e7602740 810920 88 6 0----------PACK SCAN STATE----------ID SndingLen PackOk PackWaitPackErr Notify Snd Cost Lefts0 10916 618 0 0 4065 0 0 01 88 525 0 0 4707 0 0 0----------CHNL OPTION----------ID Malloc Write BufBase BufSize0 0 0 e747400014525441 0 0 e75e80001420288------------ info from master arm -----------------------CHNL ATTR----------ID Type CurNalu CurLen FrmRate Prio Width Height FrmNum FrmMax VoBind0 96 c9c1a2be 920 0 0 720 576 3 414720 (2,2)1 96 c9e1b178 777 0 0 704 576 2 414720 (2,2)----------CHNL STATE----------ID SndStm RlsStm RlsFail SndPic SndUdata GetPic GetUdata RlsPic RlsUdata0 618 538 0 0 0 0 0 0 01 525 524 0 0 0 0 0 0 0----------BUF STATE----------ID Addr Size Wptr Rptr Wable Rable Free Busy0 e7474000 829440 e748e2be e748e80e 1360 828080 6 01 e75e8000 811008 e7603178 e7602740 808392 2616 3 3----------PACK SCAN STATE----------ID SndingLen PackOk PackWaitPackErr Notify Snd Cost Lefts0 1024 618 6623 0 2053 0 0 01 784 528 529 0 2052 0 0 0----------CHNL OPTION----------ID Malloc Write BufBase BufSize0 1 1 0 010-32海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明1 1 1 0 0【 调 试 信 息 分 析 】记 录 当 前 解 码 通 道 的 使 用 状 况 及 其 属 性 配 置 , 最 多 有 32 路 解 码 通 道 。 可 用 于 检 查 属 性配 置 以 及 当 前 解 码 通 道 统 计 状 态 。【 参 数 说 明 】参 数MODULEPARAM描 述nc_alg 码 流 切 分 成 NALU 的 算 法 。0: 普 通 方 式 ;1: 该 方 式 最 优 化 , 性 能 可 能 有 波 动 ; 默 认 值 。2: 该 方 式 比 较 优 化 , 性 能 统 计 较 稳 定 。obey_minCRH.264 码 流 是 否 遵 守 协 议 中 minCR 的 约 定 。0: 不 遵 守 。 默 认 值 ;1: 遵 守 。 此 时 minCR=2;创 建 通 道 时 , 会 根 据 obey_minCR 取 值 来 确 定 帧 最 大值 。0: 帧 最 大 值 为 u32BufSize / 2。1: 帧 最 大 值 为 u32PicWidth%u32PicHeight%1.5 / 2。CHNLATTRID 通 道 号 。Type 解 码 通 道 类 型 。96:PT_H264;1002:PT_MJPEG;26:PT_JPEG。CurNalu 当 前 正 在 扫 描 的 nalu 包 地 址 。CurLen 当 前 已 经 扫 描 的 nalu 长 度 。FrmRate 实 际 解 码 帧 率 , 如 果 码 流 包 有 错 误 , 此 数 可 能 不 准 确 。Prio 解 码 通 道 优 先 级 。Width 配 置 的 解 码 图 像 宽 度 。Height 配 置 的 解 码 图 像 高 度 。FrmNum 配 置 的 参 考 帧 个 数 ,H.264 有 效 , 其 他 类 型 无 此 选 项 。FrmMax 帧 最 大 值 。VoBind 解 码 绑 定 VO 的 情 况 。显 示 格 式 为 (VO 设 备 , VO 通 道 )。若 解 码 绑 定 n 个 VO, 则 按 显 示 格 式 顺 序 显 示 n 项 。 若未 绑 定 VO, 则 不 显 示 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-33


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数CHNLSTATE描 述ID 通 道 号 。SndStm 发 送 码 流 给 解 码 器 次 数 。RlsStm 解 码 器 释 放 码 流 次 数 。RlsFail 解 码 器 释 放 失 败 次 数 。SndPic 解 码 器 发 送 pic 次 数 。SndUdata 解 码 器 发 送 用 户 数 据 次 数 。GetPic 用 户 获 取 pic 次 数 。GetUdata 用 户 获 取 用 户 数 据 次 数 。RlsPic 用 户 释 放 pic 次 数 。RlsUdata 用 户 释 放 用 户 数 据 次 数 。BUF STATEID 通 道 号 。Addr 码 流 buf 首 地 址 。Size 码 流 buf 长 度 。Wptr 写 指 针 位 置 。Rptr 读 指 针 位 置 。Wable 可 写 空 间 。Rable 可 读 空 间 。Free 处 于 free 状 态 的 pack 节 点 。Busy 处 于 busy 状 态 的 pack 节 点 。PACKSCANSTATEID 通 道 号 。SndingLen 用 户 正 在 发 送 的 码 流 的 长 度 。PackOk 成 功 扫 描 到 pack 边 界 的 次 数 。PackWait 等 待 扫 描 pack 边 界 的 次 数 。PackErr pack 扫 描 错 误 次 数 。Notify 通 知 发 送 码 流 次 数 。Snd 发 送 码 流 帧 数 。 按 帧 发 送 时 有 效 。Cost 解 码 码 流 帧 数 。 按 帧 发 送 时 有 效 。Lefts 码 流 buffer 剩 余 的 码 流 帧 数 。 按 帧 发 送 时 有 效 。CHNL ID 通 道 号 。10-34海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数OPTIONMallocWriteBufBaseBufSize描 述VDEC 内 部 是 否 分 配 buffer( 码 流 buffer 和 用 户 数 据buffer)。VDEC 是 否 解 析 切 分 nalu 后 拷 贝 码 流 。0: 不 解 析 , 直 接 拷 贝 ;1: 解 析 后 拷 贝 。Malloc=1 时 ,vdec 内 部 所 分 配 buffer 基 址 的 物 理 地 址 ;Malloc=0 时 , 始 终 为 0。Malloc=1 时 ,vdec 内 部 所 分 配 buffer 的 大 小 ;Malloc=0 时 , 始 终 为 0。10.13 AI【 调 试 信 息 】~ $ cat /proc/umap/ai-----AI DEV ATTR----------------------------------------------------------------AiDev WorkMod SampR BitWid ChnCnt ClkSel SondMod PoiNum ExFlag FrmNum1 i2s_sla 8k 16bit 16 0 mono 321 1 30-----AI DEV STATUS--------------------------------------------------------------AiDev IntCnt FrmTime DMAChn DMAReq TranLen IsrTime DMAPhy0 DMAPhy11 143 40122 2 2 10272 334 e7264000 e7266820-----AI CHN STATUS--------------------------------------------------------------AiDev AiChn State Read Write BufFul AecAo AecFail u32Data0 u32Data11 0 enable 23 23 0 (-1,-1) 0 f204f1cf f1d1f1f51 1 enable 23 23 0 (-1,-1) 0 f275f266 f252f2671 2 enable 23 23 0 (-1,-1) 0 f1d0f1d9 f1c4f1d31 3 enable 23 23 0 (-1,-1) 0 f24df241 f246f2451 4 enable 23 23 0 (-1,-1) 0 f353f35a f34cf3571 5 enable 23 23 0 (-1,-1) 0 f426f41f f41af41b1 6 enable 23 23 0 (-1,-1) 0 f4ccf4c2 f4c6f4c11 7 enable 23 23 0 (-1,-1) 0 f3c9f3c3 f3c4f3c31 8 enable 23 23 0 (-1,-1) 0 f633f63d f636f6391 9 enable 23 23 0 (-1,-1) 0 f6e5f6d6 f6d3f6d01 10 enable 23 23 0 (-1,-1) 0 f6a1f6bf f6acf6c81 11 enable 23 23 0 (-1,-1) 0 f739f72c f735f71e1 12 enable 23 23 0 (-1,-1) 0 f4cef4e3 f4d6f4f51 13 enable 23 23 0 (-1,-1) 0 f452f46e f471f4721 14 enable 23 23 0 (-1,-1) 0 f56ff56d f579f56d1 15 enable 23 23 0 (-1,-1) 0 f524f52d f523f530【 调 试 信 息 分 析 】记 录 当 前 音 频 输 入 设 备 及 通 道 的 属 性 配 置 以 及 状 态 信 息 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-35


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考【 参 数 说 明 】参 数AI DEV ATTR( 音 频 输 入 设 备属 性 )( 参 考数 据 结 构AIO_ATTR_S)描 述AiDev AI 设 备 号 。WorkMod SIO 工 作 模 式 。i2s_mas:I2S 主 模 式 。i2s_sla:I2S 从 模 式 。SampR 采 样 率 。取 值 :{8k, 16k, 32k}。BitWid 采 样 精 度 。取 值 :{8bit, 16bit}。ChnCnt 最 大 通 道 个 数 。取 值 :{2, 4, 8, 16}。ClkSel 时 钟 选 择 。SondMod 声 音 模 式 。mono: 单 声 道 ;stereo: 立 体 声 。PoiNum 每 帧 的 采 样 点 个 数 。ExFlag 8bit 扩 展 标 志 。FrmNum 帧 缓 存 数 目 。AI DEVSTATUS( 音频 输 入 设 备 信息 )AiDev AI 设 备 号 。AiChn AI 通 道 号 。IntCnt 中 断 计 数 。完 成 1 帧 音 频 数 据 采 集 后 , 此 值 加 1。如 果 此 值 未 递 增 , 说 明 与 外 围 codec 对 接 有 问题 。FrmTime 帧 间 隔 时 间 。 以 毫 秒 为 单 位 。由 此 项 可 以 计 算 出 实 际 的 音 频 采 样 率 。 例 如 当 此项 为 40000us 左 右 、 每 帧 采 样 点 个 数 配 置 为 320时 , 可 以 计 算 出 每 秒 采 样 8000 点 , 即 采 样 率 为8kHZ。DMAChn DMA 通 道 。DMAReq DMA 请 求 线 。DMAPhy0 DMA buffer0 的 物 理 地 址 。10-36海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述DMAPhy1 DMA buffer1 的 物 理 地 址 。AI CHNSTATUS( 音频 输 入 通 道 信息 )AiDev AI 设 备 号 。AiChn AI 通 道 号 。state 通 道 状 态 。orig: 初 始 状 态 ;enable: 启 用 ;disable: 禁 用 。Read 通 道 buffer 的 读 指 针 。Write 通 道 buffer 的 写 指 针 。BufFul 帧 buffer 满 的 次 数 。AecAo回 声 抵 消 AEC 的 AO 设 备 号 和 通 道 号 。(-1 表 示未 启 用 AEC)AecFail 回 声 抵 消 失 败 次 数 。u32Data0 通 道 Buffer 中 第 一 个 32 位 数 据 。u32Data1 通 道 Buffer 中 第 二 个 32 位 数 据 。10.14 AO【 调 试 信 息 】cat /proc/umap/ao-----AO DEV ATTR----------------------------------------------------------------AoDev WorkMod SampR BitWid ChnCnt ClkSel SondMod PoiNum ExFlag FrmNum1 i2s_sla 8k 16bit 2 0 mono 321 1 30-----AO DEV STATUS--------------------------------------------------------------AoDev IntCnt FrmTime DMAChn DMAReq DMAPhy0 DMAPhy11 19587 40121 3 3 e7396000 e7396a08-----AO CHN STATUS--------------------------------------------------------------AoDev AoChn State Read Write BufEmp u32Data0 u32Data11 0 enable 27 27 0 f1c8f1b5 f1daf1c8-----AO CHN BIND RELATION-------------------------------------------------------AoDev AoChn AiDev AiChn AdChn1 0 1 0 -1【 调 试 信 息 分 析 】文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-37


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考记 录 当 前 音 频 输 出 设 备 属 性 配 置 以 及 状 态 信 息 。【 参 数 说 明 】参 数AO DEV ATTR( 音 频 输 出 设 备属 性 )( 参 考数 据 结 构AIO_ATTR_S)描 述AoDev AO 设 备 号 。WorkMod SIO 工 作 模 式 。i2s_mas:I2S 主 模 式 。i2s_sla:I2S 从 模 式 。SampR 采 样 率 。取 值 :{8k, 16k, 32k}。BitWid 采 样 精 度 。取 值 :{8bit, 16bit}。ChnCnt 最 大 通 道 个 数 。取 值 :{2, 4, 8, 16}。ClkSel 时 钟 选 择 。SondMod 声 音 模 式 。mono: 单 声 道 ;stereo: 立 体 声 。PoiNum 每 帧 的 采 样 点 个 数 。ExFlag 8bit 扩 展 标 志 。FrmNum 帧 缓 存 数 目 。AO DEVSTATUS( 音频 输 出 设 备 信息 )AoDev AO 设 备 号 。AoChn AO 通 道 号 。IntCnt 中 断 计 数 。发 送 1 帧 音 频 数 据 后 , 此 值 加 1。如 果 此 值 未 递 增 , 说 明 与 外 围 codec 对 接 有 问题 。DMAChn DMA 通 道 。DMAReq DMA 请 求 线 。DMAPhy0 DMA Buffer0 的 物 理 地 址 。DMAPhy1 DMA Buffer1 的 物 理 地 址 。AO CHN AoDev AO 设 备 号 。STATUS( 音频 输 出 通 道 信 AoChn AO 通 道 号 。10-38海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数息 )描 述state 通 道 状 态 。orig: 初 始 状 态 ;enable: 启 用 ;disable: 禁 用 。Read 通 道 buffer 的 读 指 针 。Write 通 道 buffer 的 写 指 针 。BufFul 帧 buffer 满 的 次 数 。u32Data0 通 道 Buffer 中 第 一 个 32 位 数 据 。u32Data1 通 道 Buffer 中 第 二 个 32 位 数 据 。AO CHN BINDRELATION( 音 频 输 出 通 道的 绑 定 关 系 )AoDev AO 设 备 号 。AoChn AO 通 道 号 。AiDev 绑 定 的 AI 设 备 号 。(-1 表 示 未 绑 定 )AiChn 绑 定 的 AI 通 道 号 。(-1 表 示 未 绑 定 )AdChn 绑 定 的 ADEC 通 道 号 。(-1 表 示 未 绑 定 )10.15 AENC【 调 试 信 息 】cat /proc/umap/aenc----Attribution of AENC Channel-----------------------------------------ChnId PlType BufSize Attr1 Attr2 Attr3 Attr4 Attr50 g726 3 m_16k----Status of AENC Channel-----------------------------------------ChnId AiDev AiChn EncCnt LostCnt0 1 0 33969 0【 调 试 信 息 分 析 】记 录 当 前 音 频 编 码 属 性 配 置 以 及 状 态 信 息 。【 参 数 说 明 】参 数描 述Attribution of ChnId AENC 通 道 号 。AENC Channel( 音 频 编 码 通 道 PlType 编 码 协 议 类 型 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-39


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数属 性 )描 述BufSize 帧 缓 存 数 目 。Attr1~Attr5 协 议 相 关 属 性 。( 具 体 意 义 由 协 议 类 型 决 定 )Status of AENCChannel( 音 频编 码 通 道 状态 )ChnId AENC 通 道 号 。AiDev 绑 定 的 AI 设 备 号 。AiChn 绑 定 的 AI 通 道 号 。EncCnt 发 送 编 码 器 成 功 编 码 的 帧 数 。LostCnt丢 帧 数 目 。( 用 户 没 有 及 时 取 码 流 数 据 导 致 的 音频 帧 数 据 丢 弃 数 目 )10.16 ADEC【 调 试 信 息 】cat /proc/umap/adec----Attribution of ADEC Channel-----------------------------------------ChnId PlType BufSize Attr SendCnt GetCnt PutCnt0 adpcm 20 DVI4 188 170 169【 调 试 信 息 分 析 】记 录 当 前 音 频 解 码 属 性 配 置 以 及 状 态 信 息 。【 参 数 说 明 】参 数Attribution ofADEC Channel音 频 解 码 通 道属 性 及 状 态描 述ChnId 通 道 号 。PlType 解 码 码 协 议 类 型 。BufSize 帧 缓 存 数 目 。Attr协 议 相 关 属 性 。( 不 同 协 议 类 型 此 项 的 意 义 也 不同 , 请 参 考 相 关 数 据 结 构 )SendCnt 成 功 发 送 解 码 器 进 行 解 码 的 音 频 帧 数 目 。GetCnt 用 户 获 取 的 码 流 帧 数 目 。PutCnt 用 户 释 放 的 码 流 帧 数 目 。10-40海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明10.17 CHNL【 调 试 信 息 】~ $ cat /proc/umap/chnl------------ info from slave arm -------------Version: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[Nov 27 2009, 14:04:08]total VPU count:2---------- VPU 0 information--------------------------- CHNL state ------------------------receive interrupt total cnt: 527receive timer interrupt cnt: 470receive vedu interrupt cnt: 57receive error interrupt cnt: 0channel start fail cnt: 0channel start success cnt: 0channel schedule cnt: 0channel check task cnt: 1045channel reset VEDU cnt: 0---------- CHNL current run state-------------ID protno running channel here---------- CHNL state ------------------------ID prot pri tsknum state timeout inqtime startOK startNO1 VPP 0xd 0 2 0 1162 0 00 GROUP 0x0 0 2 0 924 113 0---------- CHNL performance ------------------ID prot hw(us) int(us) start(us)1 VPP 0 0 00 GROUP 6638 96 184---------- VPU 1 information--------------------------- CHNL state ------------------------receive interrupt total cnt: 526receive timer interrupt cnt: 470receive vedu interrupt cnt: 56receive error interrupt cnt: 0channel start fail cnt: 0channel start success cnt: 0channel schedule cnt: 0channel check task cnt: 1041channel reset VEDU cnt: 0---------- CHNL current run state-------------ID protno running channel here---------- CHNL state ------------------------ID prot pri tsknum state timeout inqtime startOK startNO1 VPP 0xd 0 2 0 1162 0 0文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-41


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考0 GROUP 0x0 0 2 0 924 113 0---------- CHNL performance ------------------ID prot hw(us) int(us) start(us)1 VPP 0 0 00 GROUP 6638 96 184------------ info from master arm -------------no proc from master【 调 试 信 息 分 析 】无 。【 参 数 说 明 】参 数CHNLstate描 述receive interrupt total cnt CHNL 收 到 的 中 断 总 数 。receive timer interrupt cnt CHNL 收 到 的 定 时 中 断 数 。receive vedu interrupt cnt CHNL 收 到 的 VEDU 中 断 。receive error interrupt cnt CHNL 收 到 的 VEDU 错 误 中 断 数 。channel start fail cnt CHNL 调 度 失 败 次 数 。channel start success cnt CHNL 调 度 成 功 次 数 。channel schedule cnt CHNL 调 度 总 数 。channel check task cnt CHNL 查 询 通 道 次 数 。channel reset VEDU cnt CHNL 进 行 VEDUreset 次 数 。CHNL ID 通 道 号 。currentrun state prot 协 议 类 型 。CHNLstateID 通 道 号 。prot 协 议 类 型 。pri 优 先 级 。tsknum 任 务 数 。state 通 道 状 态 。1: 正 常 ;2: 等 待 注 销 ;3: 已 经 注 销 。timeout 超 时 计 数 。10-42海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述inqtime 查 询 次 数 。startOK 启 动 成 功 次 数 。startNO 启 动 失 败 次 数 。CHNLperformanceID 通 道 号 。prot 协 议 类 型 。hw(us) 硬 件 消 耗 。int(us) 中 断 消 耗 。start(us) 启 动 消 耗 。10.18 H264E【 调 试 信 息 】~ $ cat /proc/umap/h264e------------ info from slave arm -------------Version: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[Nov 27 2009, 14:04:25]-----CHN ATTR------------------------------------------------------------------ID Pri Width Height MainStr VIField BufSize ByFrame MaxStrCnt0 1 704 576 Yes No 811008 Yes 0x1fffffff-----RATE CTRL ATTR------------------------------------------------------------ID PicMbs AlignW AlignH InFrmRt OutFrmRt Field Gop MaxDly(ms)0 1584 704 576 25 25/0 No 100 100-----RATE CTRL ATTR 2----------------------------------------------------------ID RcType BitRt(Kbps) Level minute QpI QpP bHighBR0 CBR 1024( 1024) 0 0 0 0 0-----RATE CTRL ATTR 3----------------------------------------------------------ID MinQp MaxQp FrmFxQp FrmLost0 -1 -1 0 1-----PICTURE INFO--------------------------------------------------------------ID Rcv TfErr Encd Disc Skip BufLeak RcLost Back RlsStr UnrdStr0 121 0 120 0 0 0 0 118 2-----STREAM BUFFER-------------------------------------------------------------ID base RdTail RdHead WrTail WrHead datalen buffree0 0xc2600040 0x0 0xc5e00 0xc5e00 0xc5e00 0 448-----CHN INFO------------------------------------------------------------------ID Txture OsdPret SlcSplt SlcSize NoEtrStrm RefMode文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-43


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考0 Yes Yes No 1024 No 1X-----PRE PROCESS INFO----------------------------------------------------------ID Die TimeFlt MvStl PicTp Repet WaterMk0 Yes Yes Yes 420 No No-----VPP PARA INFO-------------------------------------------------------------ID DieBase DieRate TfBase TfRate DieDlt TfDlt TmTrd SadTrd0 8 8 9 12 0 0 3 15-----CHN PERF INFO-------------------------------------------------------------ID hw(us) int(us) strt(us) reg(us) br(kbps) fr(fps) AvgBR AvgFR0 11026 33 19 15 1038 25 1048 25/0------------ info from master arm -------------no proc from master【 调 试 信 息 分 析 】无 。【 参 数 说 明 】参 数CHNATTR描 述ID 通 道 号 。Pri 优 先 级 。Width 宽 度 , 以 像 素 为 单 位 。Height 高 度 , 以 像 素 为 单 位 。MainStr 是 否 主 码 流 。取 值 :{0, 1}。VIField 输 入 是 否 场 模 式 。取 值 :{0, 1}。BufSize 码 流 buffer 大 小 , 以 字 节 为 单 位 。ByFrame 是 否 按 帧 获 取 码 流 。取 值 :{0, 1}。MaxStrCnt 允 许 码 流 Buffer 缓 存 的 最 大 帧 数 。缺 省 值 :0x1FFFFFFF。RATECTRLATTRID 通 道 号 。PicMbs 图 像 MB 数 。AlignW 16 像 素 对 齐 后 宽 度 , 以 像 素 为 单 位 。AlignH 16 像 素 对 齐 后 高 度 , 以 像 素 为 单 位 。10-44海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述InFrmRt 图 像 输 入 帧 率 , 以 fps 为 单 位 。OutFrmRt 编 码 帧 率 , 以 fps 为 单 位 。Field 是 否 场 模 式 。取 值 :{0, 1}。Gop I 帧 间 隔 。MaxDly(ms) 最 大 延 迟 , 以 ms 为 单 位 。RATECTRLATTR 2ID 通 道 号 。RcType 码 率 控 制 类 型 。取 值 :{CBR, VBR, ABR, FIXQP}。BitRt(Kbps) 目 标 码 率 , 以 kbit/s 为 单 位 。Level 图 像 质 量 等 级 。取 值 范 围 :[0, 5]。minute 平 均 码 率 统 计 时 间 。 仅 ABR 有 效 。QpI I 帧 QP。 仅 FIXQP 有 效 。QpP P 帧 QP。 仅 FIXQP 有 效 。bHighBR 是 否 高 码 率 。取 值 :{0, 1}。RATECTRLATTR 3ID 通 道 号 。MinQp 最 小 QP。 仅 VBR 有 效 。取 值 范 围 [4, 50]。-1 表 示 未 设 置 。MaxQp 最 大 QP。 仅 VBR 有 效 。取 值 范 围 [4, 50]。-1 表 示 未 设 置 。FrmFxQp 帧 固 定 QP。 取 值 {0,1}。FrmLost 码 率 控 制 不 丢 帧 。 取 值 {0,1}。PICTUREINFOID 通 道 号 。Rcv 接 收 图 像 数 。接 收 到 待 编 码 图 像 并 且 放 到 图 像 队 列 后 , 此 项值 加 1。TfErr 时 间 参 考 错 误 的 图 像 数 。Encd 编 码 图 像 数 。编 码 器 编 完 一 帧 图 像 后 , 此 项 值 加 1。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-45


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述Disc 由 于 图 像 队 列 满 导 致 的 丢 帧 个 数 。编 码 器 接 收 到 新 的 待 编 码 图 像 , 但 因 图 像 队 列已 满 , 无 法 缓 存 而 丢 弃 该 图 像 时 , 此 项 值 加1。当 编 码 慢 时 , 图 像 队 列 会 满 , 易 出 现 此 项 值 不为 零 。Skip 图 像 队 列 中 未 编 码 的 图 像 个 数 。skip = (bufLeak + rcLost + 帧 率 控 制 导 致 的 丢帧 个 数 )。BufLeak 由 于 码 流 buffer 不 足 导 致 的 丢 帧 个 数 。编 码 器 启 动 编 码 前 , 发 现 码 流 Buffer 可 用 空 间非 常 小 而 丢 掉 一 帧 图 像 时 , 此 项 值 加 1。当 用 户 未 能 及 时 取 走 码 流 时 , 易 出 现 此 项 值 不为 0。RcLost 码 率 控 制 导 致 的 丢 帧 个 数 。根 据 内 部 码 率 统 计 结 果 , 若 发 现 超 出 目 标 码 率太 多 时 , 会 主 动 丢 帧 以 降 低 码 率 , 每 丢 一 帧 ,此 项 值 加 1。Back 由 于 码 流 buffer 满 导 致 的 丢 帧 个 数 。编 码 器 编 完 一 帧 后 , 发 现 码 流 Buffer 可 用 空 间无 法 容 纳 这 一 帧 的 码 流 , 从 而 丢 掉 该 帧 时 , 此项 值 加 1。当 用 户 未 能 及 时 取 走 码 流 时 , 易 出 现 此 项 值 不为 0。RlsStr 已 经 释 放 的 码 流 帧 数 。UnrdStr 当 前 buffer 中 缓 存 的 码 流 帧 数 。STREAMBUFFERID 通 道 号 。base 码 流 buffer 基 地 址 。BufLen 码 流 buffer 大 小 。RdTail 读 尾 指 针 。RdHead 读 头 指 针 。WrTail 写 尾 指 针 。WrHead 写 头 指 针 。datalen 数 据 长 度 。buffree 空 闲 长 度 。10-46海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数CHNINFO描 述ID 通 道 号 。Txturet 纹 理 检 测 开 关 。NO: 关 闭 ;YES: 开 启 。OsdPret OSD 保 护 开 关 。NO: 关 闭 ;YES: 开 启 。SlcSplt slice 划 分 。NO: 不 划 分 ;YES: 划 分 。SlcSize slice 大 小 , 以 字 节 为 单 位 。NoOutEtrStrm 不 输 出 超 出 码 流 。NO: 输 出 ;YES: 不 输 出 。RefMode跳 帧 参 考 模 式 。 取 值 请 参 考 枚 举VENC_ATTR_H264_REF_MODE_E 的 定 义 。PREPROCESSINFOID 通 道 号 。Dei De-interlace 开 关 。NO: 关 闭 ;YES: 开 启 。EdegFlt 边 缘 检 测 开 关 。NO: 关 闭 ;YES: 开 启 。MedFlt 中 值 检 测 开 关 。NO: 关 闭 ;YES: 开 启 。TimeFlt 时 域 去 噪 开 关 。NO: 关 闭 ;YES: 开 启 。MvStl 动 静 判 决 开 关 。NO: 关 闭 ;YES: 开 启 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-47


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述PicTp 图 像 类 型 。0:4:2:0;1:4:2:2。Repet 重 复 编 码 开 关 。NO: 关 闭 ;YES: 开 启 。WaterMk 数 字 水 印 开 关 。NO: 关 闭 ;YES: 开 启 。VPPPARAINFOID 通 道 号 。DieBase 内 部 调 试 参 数 。DieRate 内 部 调 试 参 数 。TfBase 内 部 调 试 参 数 。TfRate 内 部 调 试 参 数 。DieDlt 内 部 调 试 参 数 。TfDlt 内 部 调 试 参 数 。TmTrd 内 部 调 试 参 数 。SadTrd 内 部 调 试 参 数 。CHNPERFINFOID 通 道 号 。hw(us) 硬 件 消 耗 , 以 μs 为 单 位 。int(us) 中 断 销 毁 , 以 μs 为 单 位 。strt(us) 启 动 消 耗 , 以 μs 为 单 位 。reg(us) 配 寄 存 器 消 耗 , 以 μs 为 单 位 。br(kbps) 瞬 时 码 率 , 以 bit/s 为 单 位 。注 意 : 瞬 时 码 率 与 平 均 码 率 的 计 算 方 法 不 同 ,码 率 控 制 是 根 据 平 均 码 率 进 行 的 , 因 此 该 值 仅供 参 考 , 不 宜 作 为 评 价 码 率 控 制 的 标 准 。fr(fps) 瞬 时 帧 率 , 以 fps 为 单 位 。AvgBR 平 均 码 率 , 以 kbps 为 单 位 。此 为 所 有 历 史 数 据 的 统 计 , 仅 供 内 部 调 试 , 不宜 作 为 码 率 控 制 评 价 标 准 。10-48海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述AvgFR 平 均 帧 率 , 以 fps 为 单 位 。此 为 所 有 历 史 数 据 的 统 计 , 仅 供 内 部 调 试 , 不宜 作 为 帧 率 控 制 评 价 标 准 。10.19 H264D【 调 试 信 息 】~ $ cat /proc/umap/h264d------------ info from slave arm -------------------- Perf(us) -------ID Parse HWdec SWdec SWint HWrprY SWrprY SWintY HWrprC SWrprC SWintC0 165 6051 49 81 0 0 0 0 0 01 94 8780 48 72 0 0 0 0 0 0------- Const -------ID W H AlignW AlignH Ref DispQue RmvQue SendQue DescBuf FrmMax0 720 576 720 576 3 1919 1983 63 207232 3110401 704 576 704 576 2 1919 1983 63 202624 304128------- Status -------ID W H Ref DispQue RmvQue SendQue DescBuf Out Pic 10Fld State Slot0 720 576 1 74 74 0 9984 0 0 0 1 01 704 576 2 0 0 0 128 0 0 0 0 0------ HW Stat -------ID Start Eop Empty StartY IntY StartC IntC0 7927 7927 0 0 0 0 01 7916 7916 0 0 0 0 0------- Err Stat -------ID ErrNalu LostPic ErrSlc LostSlc Overlap ErrW ErrH ErrRef ErrCncl ErrBigF0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0------- Flow Stat -------ID RecvPic DecPic SendPic RecvAUD RlsAud RecvEOS NoFB Rst pps fps0 8002 7927 7927 0 0 0 71243 0 25 251 7917 7916 7916 0 0 0 0 0 25 25------------ info from master arm -------------Version: [Hi3520_MPP_V1.0.2.4 Debug], Build Time[Nov 18 2009, 15:49:09]----------simd share cb----------ID addr len Rt Rh Wt Wh dataLen free0c49e0000 64000 7936 7936 10464 10464 2528 614401c4b20000 64000 4992 4992 5024 5024 32 63936----------simd share stat----------文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-49


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考ID LftPic DecFrm hasData LftStrmF RcvStrmF LftStrmB bRecv0 0 -1 0 -1x -1x 815077x 11 0 -1 0 -1x -1x 102x 1【 调 试 信 息 分 析 】记 录 H.264 解 码 过 程 中 , 各 通 道 的 解 码 属 性 、 状 态 以 及 历 史 信 息 统 计 , 最 多 有 32 路 解码 通 道 。 可 配 合 用 于 定 位 系 统 出 现 的 阻 塞 以 及 图 像 错 误 等 问 题 。【 参 数 说 明 】参 数Perf性 能a描 述ID 通 道 号 。Parse 软 件 解 析 一 个 NALU 的 时 间 ( 进 程 上 下 文 )。HWdec 硬 件 解 码 一 幅 图 像 时 间 。SWdec 软 件 准 备 解 码 一 幅 图 像 时 间 ( 中 断 上 下 文 )。SWint 完 成 图 像 解 码 后 的 软 件 处 理 时 间 ( 中 断 上 下 文 )。HWrprY 硬 件 修 补 Y 分 量 时 间 。SWrprY 软 件 准 备 修 补 Y 分 量 时 间 ( 中 断 上 下 文 )。SWintY 完 成 Y 修 补 后 的 软 件 处 理 时 间 ( 中 断 上 下 文 )。HWrprC 硬 件 修 补 C 分 量 时 间 。SWrprC 软 件 准 备 修 补 C 分 量 时 间 ( 中 断 上 下 文 )。SWintC 完 成 C 修 补 后 的 软 件 处 理 时 间 ( 中 断 上 下 文 )。Const常 量bID 通 道 号 。W 通 道 属 性 宽 度 。H 通 道 属 性 高 度 。AlignW 16 像 素 对 齐 后 图 像 宽 度 。AlignH 16 像 素 对 齐 后 图 像 高 度 。Ref 通 道 属 性 参 考 帧 个 数 。DispQue 显 示 图 像 队 列 总 长 度 。RmvQue 移 除 队 列 总 长 度 。SendQue 发 送 队 列 总 长 度 。DescBuf 硬 件 消 息 buffer 总 长 度 。FrmMax 帧 最 大 值 。 表 示 一 帧 码 流 的 最 大 值 。Status ID 通 道 号 。10-50海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数状 态c描 述W 码 流 当 前 宽 度 。H 码 流 当 前 高 度 。Ref 码 流 当 前 参 考 帧 个 数 。DispQue 显 示 图 像 队 列 当 前 长 度 。RmvQue 移 除 队 列 当 前 长 度 。SendQue 发 送 队 列 当 前 长 度 。DescBuf 硬 件 消 息 buffer 当 前 长 度 。OutPic10FldStateSlot图 像 输 出 模 式 。0: 快 速 输 出 ;1:DPB 满 输 出 。当 前 解 码 的 图 像 属 性 。0: 帧 ;1: 顶 场 ;2: 底 场 ;3: 场 对 。是 否 3510 私 有 场 。取 值 :{0, 1}。解 码 器 状 态 。0: 等 待 ;1: 解 码 ;2: 修 补 Y;3: 修 补 C。图 像 发 送 缓 存 状 态 。 用 于 场 配 对 输 出 。0: 空 ;1: 缓 存 一 个 顶 场 。HW Stat硬 件 统 计dID 通 道 号 。Start 启 动 解 码 次 数 。Eop 图 像 结 束 中 断 次 数 。Empty 空 中 断 次 数 。StartY 修 补 Y 次 数 。IntY 修 补 Y 中 断 次 数 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-51


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述StartC 启 动 修 补 C 次 数 。IntC 修 补 C 结 束 中 断 次 数 。Err Stat错 误 统 计eID 通 道 号 。软 件 解 析 发 现 的 错 误 NALU 个 数 。因 SEI 错 误 不 影 响 图 像 显 示 , 所 以 未 包 括 。ErrNalu码 流 错 误 时 该 项 可 能 增 加 。解 码 图 象 花 屏 时 可 查 看 该 项 。LostPicErrSlcLostSlcOverlapErrWErrHErrRef软 件 发 现 图 像 丢 失 个 数 。码 流 错 误 时 该 项 可 能 增 加 。解 码 图 象 花 屏 时 可 查 看 该 项 。硬 件 发 现 Slice 错 误 次 数 。码 流 错 误 时 该 项 可 能 增 加 。解 码 图 象 花 屏 时 可 查 看 该 项 。硬 件 发 现 Slice 丢 失 次 数 。码 流 错 误 时 该 项 可 能 增 加 。解 码 图 象 花 屏 时 可 查 看 该 项 。硬 件 发 现 Slice 重 叠 次 数 。码 流 错 误 时 该 项 可 能 增 加 。解 码 图 象 花 屏 时 可 查 看 该 项 。通 道 宽 度 设 置 错 误 次 数 。属 性 无 法 支 持 当 前 码 流 时 , 认 为 属 性 设 置 错 误 。实 际 解 码 图 象 宽 度 超 过 通 道 设 置 宽 度 时 该 项 增 加 。无 解 码 图 象 时 可 查 看 该 项通 道 高 度 设 置 错 误 次 数 。属 性 无 法 支 持 当 前 码 流 时 , 认 为 属 性 设 置 错 误 。实 际 解 码 图 象 高 度 超 过 通 道 设 置 高 度 时 该 项 增 加 。无 解 码 图 象 时 可 查 看 该 项通 道 参 考 帧 个 数 设 置 错 误 次 数 。属 性 无 法 支 持 当 前 码 流 时 , 认 为 属 性 设 置 错 误 。实 际 参 考 帧 个 数 超 过 用 户 设 置 参 考 帧 个 数 时 该 项 增 加 。无 解 码 图 象 时 可 查 看 该 项 。10-52海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述ErrCnclErrBigF软 件 解 码 器 进 行 错 误 掩 盖 的 次 数 。软 件 检 查 参 考 帧 错 误 并 进 行 修 补 后 该 项 增 加 。解 码 图 象 花 屏 时 可 查 看 该 项 。超 大 帧 出 现 次 数 。当 码 流 Buffer 中 缓 存 的 码 流 已 经 超 过 了 设 置 的 帧 最 大值 , 但 仍 收 不 齐 一 帧 时 , 则 视 为 出 现 超 大 帧 , 该 项 加1。 超 大 帧 会 被 丢 弃 。解 码 图 象 花 屏 时 或 无 解 码 图 象 时 可 查 看 该 项 。Flow Stat流 程 统 计fID 通 道 号 。RecvPic接 收 的 图 像 个 数 。在 接 收 到 新 图 像 时 该 值 增 加 。该 值 结 合 DecPic 可 用 于 解 码 性 能 不 足 时 , 查 看 用 户 发 送码 流 是 否 很 慢 。 例 如 : 当 解 码 性 能 不 足 时 , 可 多 次 查 看该 项 与 DecPic 的 差 值 , 如 果 差 值 常 为 1, 说 明 码 流 发 送慢 , 造 成 解 码 性 能 不 足 。DecPicSendPic已 解 码 的 图 像 个 数 。在 vedu 成 功 解 码 一 副 图 象 后 该 值 增 加 。该 值 可 用 于 解 码 性 能 不 足 时 , 查 看 vedu 性 能 是 否 不 足 或解 码 是 否 频 繁 启 动 失 败 。 例 如 : 当 解 码 性 能 不 足 时 , 可多 次 查 看 该 项 与 RecvPic 的 差 值 , 如 果 差 值 一 直 较 大 ,说 明 码 流 发 送 及 时 , 可 能 解 码 启 动 频 繁 失 败 或 者 vedu 性能 不 足 , 造 成 解 码 性 能 不 足 。已 发 送 的 图 像 总 数 。当 Out=1 时 , 表 示 帧 图 像 个 数 。若 是 场 码 流 , 该 数 值 应 为 DecPic/2。RecvAud 接 收 到 的 码 流 帧 数 。 按 帧 发 送 码 流 时 有 效 。RlsAud 已 解 码 的 码 流 帧 数 。 按 帧 发 送 码 流 时 有 效 。RecvEOS 已 接 收 的 EOS NALU 总 数 。NoFB无 空 闲 帧 存 可 用 的 次 数 。启 动 解 码 时 , 若 分 配 不 到 帧 存 , 该 值 增 加 。正 常 场 景 中 , 该 值 增 加 属 正 常 现 象 。 因 解 码 速 率 一 般 比vo 输 出 速 率 快 ,vo 占 用 大 量 解 码 图 象 帧 存 , 造 成 启 动 解码 时 分 配 不 到 帧 存 。Rst 解 码 通 道 复 位 次 数 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-53


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述ppsfps在 相 邻 两 次 查 看 proc 信 息 之 间 的 时 间 段 内 , 平 均 每 秒 钟解 码 的 图 象 数 。通 过 cat /proc/umap/h264d;sleep n;cat /proc/umap/h264d可 查 看 n 秒 内 h264d 平 均 每 秒 解 码 的 图 象 数 。在 相 邻 两 次 查 看 proc 信 息 之 间 的 时 间 段 内 , 平 均 每 秒 钟解 码 的 帧 数 。通 过 cat /proc/umap/h264d;sleep n;cat /proc/umap/h264d可 查 看 n 秒 内 h264d 平 均 每 秒 解 码 的 帧 数 。Simd ShareCb共 享 内 存 中循 环 buffer信 息 统 计ID 通 道 号 。addr 循 环 buffer 的 虚 拟 基 地 址 。Len 循 环 buffer 的 总 长 度 。Rt 循 环 buffer 的 读 尾 指 针 偏 移 值 。Rh 循 环 buffer 的 读 头 指 针 偏 移 值 。Wt 循 环 buffer 的 写 尾 指 针 偏 移 值 。Wh 循 环 buffer 的 写 头 指 针 偏 移 值 。dataLen 循 环 buffer 内 的 数 据 长 度 。Free 循 环 buffer 的 剩 余 可 用 空 间 。simd sharestat共 享 内 存 中从 arm 状 态统 计ID 通 道 号 。有 效 数 据 。LftPic从 ARM 解 码 器 中 未 获 取 的 帧 数 。有 效 数 据 。DecFrm 按 帧 发 送 方 式 时 , 从 arm 解 码 器 已 解 帧 数 ;按 流 发 送 方 式 时 , 始 终 为 -1。hasData有 效 数 据 。从 ARM 解 码 器 中 是 否 有 可 获 取 的 数 据 ( 解 码 图 象 、 用户 数 据 )。LftStrmF 无 效 数 据 。RcvStrmF 无 效 数 据 。LftStrmB 无 效 数 据 。bRecv有 效 数 据 。从 ARM 解 码 器 是 否 开 始 接 收 码 流 。a: 软 硬 件 解 码 性 能 , 一 般 不 需 要 关 注 。b: 通 道 创 建 后 不 再 改 变 的 参 数 , 包 括 通 道 属 性 和 解 码 内 部 资 源 , 一 般 不 需 要 关 注 。10-54海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明c: 系 统 当 前 的 状 态 , 随 解 码 过 程 变 化 。 一 般 不 需 要 关 注 。d: 硬 件 控 制 统 计 。 一 般 不 需 要 关 注 。e: 解 码 错 误 统 计 。 定 位 图 像 显 示 错 误 现 象 。f: 解 码 流 程 统 计 。 定 位 系 统 阻 塞 现 象 。10.20 JPEGE【 调 试 信 息 】~ $ cat /proc/umap/JPEGe------------ info from slave arm -------------Version: [Hi3520_MPP_V1.0.0.0 Debug], Build Time[Nov 27 2009, 14:04:32]-------------- Attr --------------ID MJPG FrmW FrmH AlignW AlignH Vi Fld MCU ByFrm [Main TFR TBR] [ImgQ]1 1 352 288 352 288 0 0 396 1 1 25 4096 0-------------- Status --------------ID BufLen FreeLen FQue EQue Q FR BR PicByte StrmCnt MaxStrm1 202752 0 0 26 99 36 468 2279-------------- Flow Stat --------------ID SendPic IntEnd IntFull DropPic NoBuf NoPic RcFail VppFail Rst1 37 37 0 37 0 0 0 0------------ info from master arm -------------no proc from master【 调 试 信 息 分 析 】记 录 JPEG 编 码 过 程 中 , 各 通 道 的 编 码 属 性 、 状 态 以 及 历 史 信 息 统 计 , 最 多 有 64 路 编码 通 道 。 可 配 合 用 于 定 位 系 统 阻 塞 以 及 丢 帧 等 问 题 。【 参 数 说 明 】参 数Attr属 性a描 述ID 通 道 号 。是 否 MJPEG 编 码 。MJPG 0:JPEG 抓 拍 。1:MJPEG。FrmW 图 像 宽 度 。FrmH 图 像 高 度 。AlignW 16 像 素 对 齐 后 图 像 宽 度 。AlignH 16 像 素 对 齐 后 图 像 高 度 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-55


10 Proc 调 试 信 息 说 明Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考参 数描 述ViFldVI 输 入 图 像 属 性 。0: 帧 ;1: 场 。编 码 属 性 。0: 帧 编 码 ;1: 场 编 码 。MCU 每 个 ECS 的 MCU 个 数 。ByFrmMain是 否 按 帧 获 取 码 流 。取 值 :{0, 1}。是 否 主 码 流 。取 值 :{0, 1}。TFR 目 标 帧 率 。TBR 目 标 码 率 。ImgQ 图 像 质 量 。Statusb状 态ID通 道 号BufLen 码 流 Buffer 总 长 度 。FreeLen 空 闲 码 流 Buffer 长 度 。FQue 可 接 收 的 图 像 个 数 。EQue 待 编 码 图 像 个 数 。Q 量 化 因 子 。FR 实 际 帧 率 。( 数 据 不 精 确 , 仅 供 参 考 )BR 实 际 码 率 。( 数 据 不 精 确 , 仅 供 参 考 )PicByte 编 码 后 的 一 帧 码 流 byte 数 。StrmCnt 当 前 码 流 buffer 缓 存 的 帧 数 。MaxStrm允 许 码 流 buffer 缓 存 的 最 大 帧 数 。缺 省 值 :100000。Stat统 计cID 通 道 号 。SendPic 发 送 来 编 码 的 图 像 总 数 。IntEnd 硬 件 编 码 结 束 中 断 次 数 。IntFull 硬 件 Buffer 满 中 断 次 数 ( 会 导 致 丢 帧 )。10-56海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司文 档 版 本 06 (2010-08-15)


Hi3520/Hi3515 媒 体 处 理 软 件开 发 参 考10 Proc 调 试 信 息 说 明参 数描 述DropPic 归 还 图 像 帧 存 的 次 数 。NoBuf 发 现 码 流 Buffer 不 足 的 次 数 ( 会 导 致 丢 帧 )。NoPic 没 有 待 编 码 图 像 的 次 数 。RcFail 码 率 / 帧 率 控 制 失 败 的 次 数 ( 会 导 致 丢 帧 )。VppFail VPP( 视 频 前 处 理 ) 设 置 失 败 的 次 数 。Rst 通 道 复 位 次 数 。a: 一 般 不 需 要 关 注 。b: 系 统 当 前 的 状 态 , 随 编 码 过 程 变 化 。 可 用 于 定 位 系 统 阻 塞 。c: 历 史 统 计 信 息 。 可 用 于 定 位 丢 帧 。文 档 版 本 06 (2010-08-15)海 思 专 有 和 保 密 信 息版 权 所 有 © 深 圳 市 海 思 半 导 体 有 限 公 司10-57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!