我是靠谱客的博主 淡定灰狼,最近开发中收集的这篇文章主要介绍【Android Audio】dumpsys media.audio_flinger 分析【基于Android Q 】【不定期更新文章】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

AudioFlinger dumpsys

    • 1、第一部分​​​​
    • 2、第二部分

dumpsys media.audio_flinger 

1、第一部分​​​​

1、Output thread:表示当前线程为输出流的线程

2、I/O handle:表示当前的线程handle

3、Standby:no表示当前线程在运行。

4、Sample rate:采样率

6、HAL foramt:送给audio hal的格式

13、Output device:当前线程处理的数据输出到的音频设备
20、Normal frame count:output buffer size (mNormalFrameCount)
通过audio_hw.c的out->stream.common.get_buffer_size函数获取mBufferSize

void AudioFlinger::PlaybackThread::readOutputParameters_l() {
...
    mFrameSize = mOutput->getFrameSize();
    result = mOutput->stream->getBufferSize(&mBufferSize);
    LOG_ALWAYS_FATAL_IF(result != OK,
            "Error when retrieving output stream buffer size: %d", result);
    mFrameCount = mBufferSize / mFrameSize;
...
    mNormalFrameCount = multiplier * mFrameCount;
...
}

30、flags:标记输出流hal层该怎么处理,DIRECT代表是bypass AudioFlinger到hal的流,HW_AV_SYNC代表tunnel mode

在这里插入图片描述

2、第二部分

3 Tracks:表示当前有3路AudioTrack在当前输出线程处理
Active: 激活状态
Client:进程号
Format: track的format
Chn mask:track的声道
SRate(Hz):track的采样率
ST:track的stream type,对应枚举audio_stream_type_t
Server:当前AudioFlinger读取指针位置
FrmCnt:当前AudioTrack在AudioFlinger中分配的共享buffer大小(单位为帧)
FrmRdy:为当前buffer中可用数据的大小(单位为帧)
Latency(ms):当前延时(server端延时+buffer数据延时)
​​在这里插入图片描述
dump函数 [AudioFlinger::PlaybackThread::Track::appendDump Tracks.cpp]
AudioSystem::calculateMinFrameCount:这个函数根据硬件设备的配置信息(采样率、周期大小、传输延迟)和音轨的采样率,计算出一个最低帧数(应用程序至少设置多少个帧才能保证声音正常播放)

最后

以上就是淡定灰狼为你收集整理的【Android Audio】dumpsys media.audio_flinger 分析【基于Android Q 】【不定期更新文章】的全部内容,希望文章能够帮你解决【Android Audio】dumpsys media.audio_flinger 分析【基于Android Q 】【不定期更新文章】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部