概述
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 】【不定期更新文章】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复