2 Star 0 Fork 968

zhao_haipeng / drivers_peripheral

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_zh.md 12.08 KB
一键复制 编辑 原始数据 按行查看 历史
lvxuzhou 提交于 2022-03-11 02:39 . fix codex warning

audio

简介

Audio仓下主要包含HDI接口,HDI接口主要用于:

  • 管理声卡驱动的加载、卸载
  • 创建音频播放、录音对象
  • 选择音频场景
  • 设置音频属性
  • 设置音频音量及增益
  • 控制音频播放及录音的启、停等

图 1 Audio仓相关模块逻辑视图

目录

Audio仓下源代码目录结构如下所示

drivers/peripheral/audio/
└── interfaces         #Audio驱动对外接口存放目录
    └── include        #Audio驱动对北向提供的HDI接口存放目录

接口说明

Audio驱动提供给Audio Service可直接调用的能力接口,主要功能有:加载/卸载音频声卡驱动、创建音频播放/录音对象、启停音频播放/录音、调节音频音量等。

提供的部分接口说明如表1 Audio HDI接口所示:

表 1 Audio HDI接口

头文件

接口名称

功能描述

audio_manager.h

int32_t (*GetAllAdapters)(struct AudioManager *manager, struct AudioAdapterDescriptor **descs, int32_t *size);

获取音频驱动中支持的所有适配器的列表

int32_t (*LoadAdapter)(struct AudioManager *manager, const struct AudioAdapterDescriptor *desc, struct AudioAdapter **adapter);

加载一个音频适配器(声卡)的驱动

void (*UnloadAdapter)(struct AudioManager *manager, struct AudioAdapter *adapter);

卸载一个音频适配器(声卡)的驱动

audio_adapter.h

int32_t (*InitAllPorts)(struct AudioAdapter *adapter);

初始化一个音频适配器所有的端口驱动

int32_t (*CreateRender)(struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render);

创建一个音频播放(render)接口的对象

int32_t (*DestroyRender)(struct AudioAdapter *adapter, struct AudioRender *render);

销毁一个音频放音(render)接口的对象

int32_t (*GetPortCapability)(struct AudioAdapter *adapter, const struct AudioPort *port, struct AudioPortCapability *capability);

获取一个音频适配器的端口驱动的能力集

int32_t (*SetPassthroughMode)(struct AudioAdapter *adapter, const struct AudioPort *port, enum AudioPortPassthroughMode mode);

设置音频端口驱动的数据透传模式

int32_t (*GetPassthroughMode)(struct AudioAdapter *adapter, const struct AudioPort *port, enum AudioPortPassthroughMode *mode);

获取音频端口驱动的数据透传模式

audio_render.h

int32_t (*RenderFrame)(struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes);

往音频驱动中播放(render)一帧输出数据(放音,音频下行数据)

int32_t (*GetRenderPosition)(struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time);

获取音频输出帧数的上一次计数

int32_t (*SetRenderSpeed)(struct AudioRender *render, float speed);

设置音频的播放速度

int32_t (*GetRenderSpeed)(struct AudioRender *render, float *speed);

获取音频当前的播放速度

int32_t (*SetChannelMode)(struct AudioRender *render, enum AudioChannelMode mode);

设置音频播放的通道模式

int32_t (*GetChannelMode)(struct AudioRender *render, enum AudioChannelMode *mode);

获取音频播放当前的通道模式

使用说明

该仓核心功能包括两个方面:

  1. 提供Audio HDI接口供北向音频服务调用,实现音频服务的基本功能。
  2. 作为标准南向接口,保证南向OEM产商实现HDI-adapter的规范性,保证生态良性演进。

具体接口调用及实现,以接口注释为准。

相关仓

驱动子系统

drivers_framework

drivers_adapter

drivers_adapter_khdf_linux

drivers_peripheral

1
https://gitee.com/zhao_haipeng/drivers_peripheral.git
git@gitee.com:zhao_haipeng/drivers_peripheral.git
zhao_haipeng
drivers_peripheral
drivers_peripheral
master

搜索帮助