当前位置: 首页 > wzjs >正文

门户网站的特点和优势关键词优化步骤简短

门户网站的特点和优势,关键词优化步骤简短,靖江做网站单位,wordpress 新媒体一、简介 Codec HDI(Hardware Device Interface)对上层媒体服务提供视频编解码的驱动能力接口,主要功能有获取组件编解码能力,创建、销毁编解码器对象,启停编解码器操作,编解码处理等。 Codec HDI 2.0接口…

一、简介

Codec HDI(Hardware Device Interface)对上层媒体服务提供视频编解码的驱动能力接口,主要功能有获取组件编解码能力,创建、销毁编解码器对象,启停编解码器操作,编解码处理等。
Codec HDI 2.0接口依赖OpenMax IL的标准接口,Codec HDI通过调用封装好的libOMX_Core.z.so获取支持的编解码器组件并创建组件运行。
本文主要介绍OpenHarmony 5.x版本视频硬件编解码Codec HDI的适配方法。
注:5.x版本的AVPlayer播放器histreamer引擎调用的视频硬件编解码框架和AVCodec视频硬件编解码框架都会调用到av_codec_service系统服务,通过IPC与Codec HDI通信。

二、适配流程

配置codec_host 服务

vendor/{company}/{product}/hdf_config/uhdf/device_info.hcs 文件配置codec_host服务
以rk3568为例,配置如下文件:vendor/hihope/rk3568/hdf_config/uhdf/device_info.hcs

codec :: host {hostName = "codec_host";priority = 50;gid = ["codec_host", "uhdf_driver", "vendor_mpp_driver"];codec_omx_idl_device :: device {device0 :: deviceNode {policy = 2;priority = 100;moduleName = "libcodec_driver.z.so";serviceName = "codec_component_manager_service";deviceMatchAttr = "media_codec_capabilities";}}...
}

codec_component_manager_service 服务被视频硬件编解码服务调用,重点是这个服务的配置。

配置codec_capabilities hcs文件

添加 vendor/{company}/{product}/hdf_config/uhdf/media_codec/media_codec_capabilities.hcs文件,该文件主要描述芯片支持的硬件编解码组件的能力集。
根据codec_component_manager_service 服务配置的deviceMatchAttr,media_codec_capabilities.hcs文件的match_attr字段为media_codec_capabilities。
以rk3568为例,添加 vendor/hihope/rk3568/hdf_config/uhdf/media_codec/media_codec_capabilities.hcs 文件

root {module = "master";codec_config {match_attr = "media_codec_capabilities";use_openmax = true;// capsMask: 0x01, Adaptive playback; 0x02, Secure playback; 0x04, Tunnel playback.// allocateMask: 0x01, Input buffer allocated within the Codec module;// allocateMask: 0x02, Input buffer allocated by an external user;// allocateMask: 0x04, Output buffer allocated within the Codec module;// allocateMask: 0x08, Output buffer allocated by an external user.VideoHwEncoders {/* node name explanation -- HDF_video_hw_enc_avc_rk:****    HDF____________video_________hw___________________enc_________avc____rk**       |                                |                       |                                          |                       |            |** HDF or OMX    video or audio    hardware or software      encoder or decoder    mime    vendor*/HDF_video_hw_enc_avc_rk {role = 1;type = 1;name = "OMX.rk.video_encoder.avc";supportProfiles = [1, 32768, 2, 32768, 8, 32768];maxInst = 4;isSoftwareCodec = false;processModeMask = [];capsMask = [0x01];minBitRate = 1;maxBitRate = 40000000;minWidth = 144;minHeight = 144;maxWidth = 4096;maxHeight = 4096;widthAlignment = 2;heightAlignment = 2;minBlockCount = 99;maxBlockCount = 8160;minBlocksPerSecond = 99;maxBlocksPerSecond = 489600;blockSizeWidth = 16;blockSizeHeight = 16;supportPixelFmts = [28, 24, 20, 12];measuredFrameRate = [320, 240, 165, 165, 720, 480, 149, 149, 1280, 720, 73, 73, 1920, 1080, 18, 18];bitRateMode = [1, 2];minFrameRate = 1;maxFrameRate = 60;canSwapWidthHeight = true;}...}VideoHwDecoders {HDF_video_hw_dec_avc_rk {role = 1;type = 0;name = "OMX.rk.video_decoder.avc";supportProfiles = [1, 32768, 2, 32768, 8, 32768];maxInst = 6;isSoftwareCodec = false;processModeMask = [];capsMask = [0x01];minBitRate = 1;maxBitRate = 10000000;minWidth = 144;minHeight = 144;maxWidth = 4096;maxHeight = 4096;widthAlignment = 2;heightAlignment = 2;minBlockCount = 99;maxBlockCount = 34560;minBlocksPerSecond = 99;maxBlocksPerSecond = 2073600;blockSizeWidth = 16;blockSizeHeight = 16;supportPixelFmts = [24, 12, 20];measuredFrameRate = [320, 240, 617, 617, 720, 480, 559, 559, 1280, 720, 276, 276, 1920, 1080, 164, 164, 3840, 2160, 30, 30];bitRateMode = [];minFrameRate = 1;maxFrameRate = 60;canSwapWidthHeight = true;}...}}
}

该文件需根据实际芯片能力配置,name组件名根据OMX组件层的定义配置,其他参数尽量按实际配置,否则系统服务层可能因检验参数失败导致编解码异常。

编解码能力配置文件添加编译

vendor/{company}/{product}/hdf_config/uhdf//hdf.hcs 引入media_codec_capabilities.hcs

以rk3568为例,vendor/hihope/rk3568/hdf_config/uhdf/hdf.hcs 添加

+     #include "media_codec/media_codec_capabilities.hcs"

OMX Wrapper的封装

封装实现libOMX_Core.z.so,供Codec HDI通过dlopen调用。
不同厂商OMX组件层的实现是不同的,这里不再详细赘述。

三、适配验证

适配完成后可以通过应用调用AVPlayer播放码流验证。
开机后首次播放视频或kill av_codec_service进程后首次播放视频时,如果可以获取到可用的编解码组件会有如下打印:

I C02b32/HCODEC: [GetManager xxx] need to get ICodecComponentManager
I C02b32/HCODEC: [GetCapList xxx] GetComponentCapabilityList return xxx components
I C02b32/HCODEC: [HdiCapToUserCap xxx] ----- codecName: xxx.encoder.avc -----
I C02b32/HCODEC: [HdiCapToUserCap xxx] codecType: 0, mimeType: video/avc, maxInstance x
...
I C02b32/HCODEC: [HdiCapToUserCap xxx] ----- codecName: xxx.decoder.avc -----
I C02b32/HCODEC: [HdiCapToUserCap xxx] codecType: 1, mimeType: video/avc, maxInstance x

硬件解码组件创建成功,正常解码播放会有如下打印:

I C02b32/HCODEC: [0][dec.avc][Uninitialized][OnAllocateComponent xxx] create omx node xxx.decoder.avc succ
I C02b32/HCODEC: [ChangeStateTo xxx] Uninitialized -> Initialized
I C02b32/HCODEC: [ChangeStateTo xxx] Starting -> Running
http://www.dtcms.com/wzjs/88100.html

相关文章:

  • 怎么创建自己的网站关键词优化技巧
  • 网站外链接如何做活动推广方案策划
  • 昌吉哥教做新疆菜网站世界球队最新排名
  • wordpress 建资源县好不好seo培训学院
  • 郑州网站建设搜q.479185700网站建设与管理主要学什么
  • 高端的网站建设公司itmc平台seo优化关键词个数
  • 做企业画册网站有网站开发用什么软件
  • 做有声小说网站金华网站建设
  • 做食品网站需要什么百度首页优化
  • wordpress留言页面郑州seo排名优化
  • 自己做网站服务器sem竞价推广是什么
  • 青建设厅官方网站海省职业培训机构
  • 自己做网站的各种代码如何去推广自己的产品
  • 自学网站免费西安外包公司排行
  • 淄博网站优化公司网推放单平台
  • 如何自己做网站 开直播佛山网站快速排名提升
  • 东莞网站运营知名乐云seo资源猫
  • wordpress做电商网站注册安全工程师
  • 布吉商城网站建设哪家公司靠谱网站制作的重要性及步骤详解
  • 聊城市 网站制作合肥网络推广有限公司
  • 营销型网站建设主要需要注意什么北京昨天出啥大事了
  • 什么网站可以做装修效果图的百度信息流投放技巧
  • 做团建活动网站优化分析
  • 网站开发招聘年薪竞价推广是什么意思
  • 支付网站开发费可以做无形资产十大跨境电商erp排名
  • 惠州市企业网站seo营销工具app拉新推广平台有哪些
  • 长沙3合1网站建设价格如何制作自己的网址
  • 男的和女的做那种短视频网站seo黑帽技术有哪些
  • 蓬莱网站建设公司报价北京百度快速排名
  • 巴彦淖尔网站制作关键词优化公司排行