点击蓝字 ╳ 关注我们
陈甲印
鸿湖万联资深技术专家
1 功能描述
2 准备工作
3 代码介绍
├── audio_config.hcs // 此配置文件配置声卡信息
├── codec_config.hcs // 此配置文件配置codec信息
├── dai_config.hcs // 此配置文件配置dai信息
└── dma_config.hcs // 此配置文件配置platform信息
vendor/isoftstone/yangfan/hdf_config/khdf/device_info/
device_info.hcs//此配置文件配置声卡驱动服务信息
4 构建开关
5 功能配置
audio :: host {
hostName = "audio_host";
priority = 110;
device_dai :: device {...
device_hdmi :: deviceNode {
policy = 1;
priority = 50;
preload = 0;
permission = 0666;
moduleName = "DAI_RK3568";
serviceName = "hdmi_dai_service";
deviceMatchAttr = "hdf_hdmi_dai_driver";
}
}
device_codec :: device {...
device_hdmi :: deviceNode {
policy = 1;
priority = 50;
preload = 0;
permission = 0666;
moduleName = "AUDIO_HDMI_CODEC";
serviceName = "codec_service_1";
deviceMatchAttr = "hdf_codec_driver_1";
}
...
}
...
device_dma :: device {...
device_hdmi :: deviceNode {
policy = 1;
priority = 50;
preload = 0;
permission = 0666;
moduleName = "DMA_RK3568";
serviceName = "hdmi_dma_service_0";
deviceMatchAttr = "hdf_hdmi_dma_driver";
}
...
}
device_audio :: device {...
device_hdmi :: deviceNode {
policy = 2;
priority = 60;
preload = 2;
permission = 0666;
moduleName = "HDF_AUDIO";
deviceMatchAttr = "hdf_audio_driver_1";
serviceName = "hdf_audio_codec_hdmi_dev0";
}
...
}
...
}
root {
platform {
...
controller_0x120c1001 :: card_controller {
match_attr = "hdf_audio_driver_1";
serviceName = "hdf_audio_codec_hdmi_dev0";
codecName = "codec_service_1";
platformName = "hdmi_dma_service_0";
cpuDaiName = "hdmi_dai_service";
codecDaiName = "hdmi_codec_dai";
}
...
}
}
root {
platform {
template dma_controller {
match_attr = "";
serviceName = "";
}
...
controller_0x120c1011 :: dma_controller {
match_attr = "hdf_hdmi_dma_driver";
serviceName = "hdmi_dma_service_0";
idInfo {
chipName = "/i2s@fe400000"; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdRegister = 0xfe400000; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdSize = 0x1000;
}
regConfig {
daiStartupSeqConfig = [
0x00, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x0, //Transmit Operation Init
];
}
}
}
}
root {
platform {
template dai_controller {
match_attr = "";
serviceName = "";
}
...
controller_0x120c1021 :: dai_controller {
match_attr = "hdf_hdmi_dai_driver";
serviceName = "hdmi_dai_service";
idInfo {
chipName = "/i2s@fe400000"; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdRegister = 0xfe400000; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdSize = 0x1000;
}
regConfig {
daiStartupSeqConfig = [
0x00, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x0, //Transmit Operation Init
];
}
}
}
}
root {
platform {
template codec_controller {
match_attr = "";
serviceName = "";
codecDaiName = "";
}
...
controller_0x120c1031 :: codec_controller {
match_attr = "hdf_codec_driver_1";
serviceName = "codec_service_1";
codecDaiName = "hdmi_codec_dai";
hwInfo = [
/*
formats, rates, rate_min, rate_max, channels_min, channels_max,
period_bytes_min, period_bytes_max, periods_min, periods_max
*/
0xF, 0xFF, 8000, 96000, 1, 2, 1, 2, 3, 4, 5
];
}
...
}
6 应用样例
--product-name yangfan -T audio_sample_render -T audio_sample_capture -T audio_sample_event
hdc shell
cd /data/
./audio_sample_renderYoungForYou.wav
7 功能验证
hdc file send E:audio_sample_render /data
hdc file send E:audio_sample_event /data
hdcfilesendE:xxx.wav/data
hdc shell
cd/data/#chmod+xaudio_sample_event#./audio_sample_event
===============================================================================
===============================================================================
===============================================================================
===============================================================================
hdc shell
# cd /data/# chmod +x audio_sample_render## ./audio_sample_render YoungForYou.wav
==================== Loading Mode ===================
| 1. Passthrough Loading |
| 2. IPC Loading |
======================================================
Please enter your choice:
2
================= Select Audio Card ==================
1. primary
2. primary1
3. hdmi
4. usb
5. a2dp
======================================================
Please enter your choice:
3
================== Play Render Menu ==================
| 1. Render Start |
| 2. Render Stop |
| 3. Render Resume |
| 4. Render Pause |
| 5. Render SetVolume |
| 6. Render GetGain |
| 7. Render SetMute |
| 8. Render SetAttributes |
| 9. Render SelectScene |
| 10. Render getEXtParams |
| 11. Render getMmapPosition |
| 12.Exit |
======================================================
your choice is:
1
Music channels = 2
Music Rate = 44100 Hz
Music Bit = 16 bit
============= Play Render Mode ==========
| 1. Render non-mmap |
| 2. Render mmap |
========================================
Please enter your choice:
1
Start Successful,Music is playing
================== Play Render Menu ==================
| 1. Render Start |
| 2. Render Stop |
| 3. Render Resume |
| 4. Render Pause |
| 5. Render SetVolume |
| 6. Render GetGain |
| 7. Render SetMute |
| 8. Render SetAttributes |
| 9. Render SelectScene |
| 10. Render getEXtParams |
| 11. Render getMmapPosition |
| 12.Exit |
======================================================
your choice is:
2
Stop Successful
================== Play Render Menu ==================
| 1. Render Start |
| 2. Render Stop |
| 3. Render Resume |
| 4. Render Pause |
| 5. Render SetVolume |
| 6. Render GetGain |
| 7. Render SetMute |
| 8. Render SetAttributes |
| 9. Render SelectScene |
| 10. Render getEXtParams |
| 11. Render getMmapPosition |
| 12.Exit |
======================================================
your choice is:
12
8 总结
原文标题:OpenHarmony支持HDMI接口声卡适配说明
文章出处:【微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
55文章
1629浏览量
42120 -
OpenHarmony
+关注
关注
23文章
3297浏览量
15159
原文标题:OpenHarmony支持HDMI接口声卡适配说明
文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
OpenHarmony南向能力征集令
1、适配过程中缺少哪些接口能力或者南向能力,需要OpenHarmony去补齐的?例如内核、编译、器件适配、单板适配等;
2、对标linux,
发表于 04-09 15:32
介绍一种OpenAtom OpenHarmony轻量系统适配方案
本文在不改变原有系统基础框架的基础上, 介绍了一种OpenAtom OpenHarmony(以下简称“OpenHarmony”)轻量系统适配方案。
如何判断HDMI接口版本是1.4还是2.0呢?
1.4和2.0。判断HDMI接口版本主要通过以下几种方法: 1. 查看产品说明书或标签:在购买的电视、电脑显示器、音视频设备等产品上,通常会标注接口的版本信息。产品
OpenHarmony开源GPU库Mesa3D适配说明
本文档主要讲解在OpenHarmony中,Mesa3D的适配方法及原理说明。
环境说明:
OHOS版本: 适用3.2-Beta3及以上
内核版本: linux-5.10
硬件环境
发表于 12-25 11:38
HDMI自动切换器是支持多路HDMI输入一路HDMI输出的吗?
自动侦测并切换不同的输入源。因此,HDMI自动切换器可以支持多路HDMI输入一路HDMI输出。 HDMI(高清晰度多媒体
HDMI MHL是如何工作的?如何使用HDMI MHL适配器呢?
HDMI MHL是如何工作的?如何使用HDMI MHL适配器呢? HDMI MHL (Mobile High-Definition Link) 是一种允许您将移动设备连接到高清电视或显
Qt For OpenHarmony
了设计工具、开发工具、框架必要模块、框架附加模块4个部分,基于OpenHarmony跨平台开发考虑,总体计划如下:
● 针对OpenHarmony的开发工具进行补充
● 对Qt必要模块进行适配
发表于 09-15 15:39
6步玩转OpenHarmony标准芯片适配
前言
本文是OpenHarmony标准芯片的适配指南,希望能帮助大家更清晰认识到OpenHarmony芯片的适配过程。本文描述的过程范围,从头从零开始——芯片没有在
发表于 08-22 09:10
RK3568适配RK628 RGB to HDMI技术方案
RK628是一款多功能视频桥接芯片,支持多种显示接口的转换。本文基于RK3568平台,分享使用RK628桥接芯片实现RGB信号转换为HDMI输出的适配过程。
【技术分享】RK3568适配RK628 RGB to HDMI
RK628是一款多功能视频桥接芯片,支持多种显示接口的转换。本文基于RK3568平台,分享使用RK628桥接芯片实现RGB信号转换为HDMI输出的适配过程。
OpenHarmony支持HDMI接口声卡适配说明
,我们再看看HDMI不同版本对音频的支持情况:
当前我们使用最多的是2.0版本,本文介绍了OpenHarmony系统支持HDMI
发表于 05-23 14:04
基于RK3588的润开鸿DAYU210旗舰级标准系统开发平台合入OpenHarmony主干
应用场景。
技术参数
功能特性支持清单
开发板介绍
接口说明
底板规格说明
五、HH-SCDAYU210合入主干之后的规划
基于OpenHarmony 3.2 Release
发表于 05-17 14:17
OpenHarmony智慧设备开发-芯片模组简析T507
T507:已具体产品化的完成OpenHarmony移植适配的模组。
主要能力:
全志工业级T507芯片,该芯片集成四核CortexTM – A53 CPU、G31 MP2 GPU、多路视频输出接口
发表于 05-11 16:34
评论