音频hal层总结+frameworks 概要

Qualcomm Audio HAL 音频通路设置 1. 音频框图概述 | Front End PCMs | SoC DSP | Back End DAIs | Audio devices | ************* PCM0 <------------> * * <----DAI0-----> Codec Headset ... 阅读详情

音频hal层总结+frameworks 概要

 

第一部分

三个文件,其中所有类,都为根类.文件地址:

1:Audio.h 有四个类

①.audio_stream_out: 主要有四个成员函数: *get_latency  set_volume  write  get_render_position   并且包含: struct audio_stream common;

 

 ②. audio_stream_in:主要有三个成员函数: set_gain(调音)  read  get_input_frames_lost

   函数getInputFramesLost,调用checkRecordThread_l获取录音线程,然后调用线程的getInputFramesLost函数。

   并且包含: struct audio_stream common;

 

 ③. struct audio_module {   struct hw_module_t common; };   

 

④. audio_hw_device 包含很多成员函数

 

 

2: audio_effect.h 音效文件先不表.

 

3: audio_policy.h 策略管理

①.    audio_policy:

 

②.    audio_policy_service_ops

   

  ③. typedef struct audio_policy_module { struct hw_module_t common;} audio_policy_module_t;

 

  ④. audio_policy_device:

    

 

 

第二部分: STUB(模拟测试)程序

   文件目录:  两个文件

1: audio_hw.c

2: audio_policy.c

   这两个程序,其实就是两个Stub(模拟测试)程序. 我们hal层可以参照来写.

 

 

 

第三部分:兼容2.3以前的程序 文件目录:

1: AudioSystemLegacy.h

从namespace来看,确实4.0以后可能不用到. Using 使用名字空间表示以下代表在status_t 和 AudioParameter空间可见..

 

2: AudioHardwareBase.h

 

3:AudioHardwareInterface.h

  有三个类, AudioStreamOut  AudioStreamIn   AudioHardwareInterface

 

 例AudioStreamIn  成员函员包括以下

其中Read 和 Write 函数是最关键的了.

 

4: AudioPolicyInterface.h

5: AudioPolicyManagerBase.h

上面两个都是音频软硬件策略文件了.

 

 

功能如: 可以看出包括软硬件的策略管理.

 

 

 

第三部分之二(兼容2.3之前代码) 文件路径:

从以下文件名可以知道程序功能:

以前的主程序,主要分为stub   hw_hal   a2dp   policy 等四大块功能.

兼容的方法为如下:

/*

兼容以前的设计,4.0实现一个中间层:hardware/libhardware_legacy/audio/audio_hw_hal.cpp,

结构与其他的audio_hw.c大同小异,差别在于open方法:

 

[cpp] view plaincopystatic int legacy_adev_open(const hw_module_t* module, const char* name, 

                            hw_device_t** device) 

{  

    ...... 

 

    ladev->hwif = createAudioHardware(); 

Android P的音频架构(一) Android P的音频架构(一) android p音频处理流程 android p音频播放从app开始,在framework层创建播放器,在audio library层做音频流和输出流控制,在Hal层将音频数据写入到输出设备进行声音输出。其中audio library层是音频处理的核心。 App --> Frameworks --> Audio Library --> HAL... 阅读详情

相关推荐

Audio Framework(1):框架结构概述

这章主要记录Android Audio系统的框架。 参考:https://source.android.google.cn/devices/audio 一、Audio Framework模块结构图 1、Application层 音频相关的应用:音乐播放器,电话,声音设置, 播放器,录音器等。 2、Frameworks Java层 Extractor...

先行 “1” 步 3943

Android底层开发之Audio HAL

Android底层开发之Audio HAL

hfyutdg的博客 961

Qualcomm audio Framework传参数到Hal层

APK设置参数给HAL,让HAL根据需要选择对应的Mic。不需要添加新usecase。

sdrgtywretyeruet的专栏 458

[RK3568 Android11] 开发之RK628D HDMI IN 音频二

目录 前言 一、hardware层添加HDMI in音频功能 二、frameworks层修改 三、rkCamera3 应用添加音频功能 四、测试HDMI IN音频 前言 前面一篇文章已讲了HDMI IN音频底层驱动的配置,接下来一起看下frameworks和hardware层音频相关的代码修改; 一、hardware层添加HDMI in音频功能 1、RK原厂已把HDMI in声卡的部分添加进去了,我们只需适配下底层对应的声卡是哪个即可; ...

~未来可期~ 3252

rk3568 rk628 桥片 hdmi-in 音频

RK628 是 Rockchip(瑞芯微)推出的一款集成 HDMI 接收器芯片,常用于支持 HDMI 输入信号的设备中,具有高分辨率视频和音频解码的能力。其主要功能是接收外部 HDMI 信号源的音视频数据,并将其解码或传输到设备中进行显示或播放。

weixin_35723192的博客 481

android 驱动,HAL层framework层到应用层的总结

这篇总结是通过学习android源码情景分析得来的,是学习第二章HAL层的心得笔记,我学的比较浅,自己总结的知识,从硬件驱动到硬件抽象层到硬件服务到应用等的介绍

CELF(Cost-Effective Lazy Forward selection)具有成本效益的惰性前向选择算法

CELF(Cost-Effective Lazy Forward selection)算法解析      引言:在社交网络影响力最大化问题的求解过程中,我们往往需要去选择一些目标种子结点作为信息初始传播的源头。贪婪算法在传播效果上的解决可以达到影响的最大化,但是在时间复杂度上面显得确十分糟糕。为此CELF算法应势而生,CELF算法利用了函数次模性的特点,在第一轮选择种子结点时,计算网络中所有节点的边际收益,但将在之后的过程中,不再做网络节点边际收益的重复计算,这相对于传统的贪婪算法,将在时间上得到非常明显的

hahaxq的博客 2476

2024年上市公司ESG评级全解析:六大权威数据源横向对比与应用指南

本文深度解析2024年国内主流ESG评级数据源,包括华证、商道融绿、Wind、富时罗素和彭博,横向对比其覆盖范围、评分逻辑与应用侧重点。文章提供实战指南,帮助投资者与企业根据投资决策、风险管理和学术研究等不同场景,精准选择并有效应用ESG数据,实现从概念到实用分析工具的转变。

weixin_29229055的博客 311

LMX2594时钟配置实战:TICS PRO从入门到寄存器导出

本文详细介绍了LMX2594时钟芯片的配置实战,重点讲解了如何使用TICS PRO调试软件简化复杂的寄存器设置过程。通过实例演示从基础频率配置到高级参数调优的全流程,并分享SPI写入的嵌入式系统移植技巧,帮助工程师快速掌握高性能时钟芯片的配置方法。

weixin_29189003的博客 549

LangChain入门(二)-通过 Google 搜索并返回答案

并复制他给我们生成 api key。(博主使用了GitHub账号登录)-邮箱验证-手机号验证-订阅-api-key。Serpapi 提供了 google 搜索的 api 接口。首先需要我们到 Serpapi 官网上注册一个用户,

Good Luck 1万+

大数据分析案例-基于决策树算法构建世界杯比赛预测模型

本项目旨在分析往届世界杯比赛数据,找出规律,最后使用决策树算法构建世界杯比赛预测模型,给出两个球队即可预测胜率,可以给爱看球的小伙伴提供一个参考。本次实验我们使用了2018年及其之前的世界杯比赛数据,通过建立决策树模型,模型准确率为82%,接着我们使用该模型预测了2022年世界杯的5场半决赛及决赛,模型准确率也是接近80%的,说明模型效果还是很不错的。心得与体会:通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。

m0_64336780的博客 1万+

YOLOv11改进 | Conv改进篇 | 含2种改进,引入DynamicConv替换普通Conv卷积下采样和C3k2_DynamicConv替换C3k2(来自CVPR2024)

本文提出了一种基于DynamicConv动态卷积优化的YOLOv11轻量化模型改进方案。通过引入多专家机制的动态卷积模块,在增加模型参数量的同时保持较低的计算复杂度(FLOPs),有效解决了低FLOPs模型在大规模预训练中的性能瓶颈问题。文章详细介绍了动态卷积的工作原理、核心代码实现,并提供了在YOLOv11中集成DynamicConv和C3k2_GhostModule_DynamicConv模块的完整教程,包括模块添加、配置文件修改和模型训练验证过程。实验结果表明,该方案在保持高效推理速度的同时显著提升了

Ai缝合怪、助力小伙伴高效发论文 536

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

Unity 面试篇⚠️ | Unity性能优化好,山寨机都能跑~

m0_58523831的博客 1万+

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)新增用户和用户角色权限

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)查看用户权限、新增用户和用户角色权限。

念兮为美 7479

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 联发科芯片趋势
下一篇: Linux-ASoC驱动归纳总结:
倚天神剑
博客等级 码龄17年 23粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值