audio_policy.conf說明(翻譯)
轉載自:http://www.cnblogs.com/albert1017/p/3940010.html
作者寫的很不錯,記錄下來供以後溫故。
#
# Audio policy configuration for generic device builds (goldfish audio HAL - emulator)
#這是模擬器的Audio policy配置
#
# Global configuration section: lists input and output devices always present on the device
# as well as the output device selected by default.
# Devices are designated by a string that corresponds to the enum in audio.h
#全域性配置部分:列出了裝置上總是存在的輸入輸出裝置,它也是系統預設選擇的輸出裝置
#這裡的輸入輸出裝置必須是audio.h中列出的列舉型別
global_configuration {
attached_output_devices AUDIO_DEVICE_OUT_SPEAKER
default_output_device AUDIO_DEVICE_OUT_SPEAKER
attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
# audio hardware module section: contains descriptors for all audio hw modules present on the
# device. Each hw module node is named after the corresponding hw module library base name.
# For instance, "primary" corresponds to audio.primary.<device>.so.
# The "primary" module is mandatory and must include at least one output with
# AUDIO_OUTPUT_FLAG_PRIMARY flag.
# Each module descriptor contains one or more output profile descriptors and zero or more
# input profile descriptors. Each profile lists all the parameters supported by a given output
# or input stream category.
# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
#audio hardware module部分:包含了對裝置上的所有的audio hw modules的descriptors,每一個hw module節點
#的名字都與相應的so庫名稱相對應,例如:"primary"對應audio.primary.<device>.so。其中"primary"module是
#必須的,而且它必須包含一個含AUDIO_OUTPUT_FLAG_PRIMARY標誌的output,每一個module的descriptor必須至少
#包含一個output配置descriptor和大於等於0個的input配置descriptor,每一個配置都描述了輸入輸出流型別支援
#的引數,其中的 "channel_masks"、"formats"、"devices"和"flags"必須為audio.h、audio_policy.h中定義的枚
#舉值,它們可以通過|連線,但不能包含空格和"\n"。
audio_hw_modules {
primary {
outputs {
primary {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_SPEAKER
flags AUDIO_OUTPUT_FLAG_PRIMARY
}
}
inputs {
primary {
sampling_rates 8000|16000
channel_masks AUDIO_CHANNEL_IN_MONO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BUILTIN_MIC
}
}
}
r_submix {
outputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
}
}
inputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
}
}
}
另外,儲存各個audio_hw_module的結構體如下:
class HwModule {
public:
HwModule(const char *name);
~HwModule();
void dump(int fd);
const char *const mName; // base name of the audio HW module (primary, a2dp ...)
audio_module_handle_t mHandle;
Vector <IOProfile *> mOutputProfiles; // output profiles exposed by this module
Vector <IOProfile *> mInputProfiles; // input profiles exposed by this module
};
// the IOProfile class describes the capabilities of an output or input stream.
// It is currently assumed that all combination of listed parameters are supported.
// It is used by the policy manager to determine if an output or input is suitable for
// a given use case, open/close it accordingly and connect/disconnect audio tracks
// to/from it.
class IOProfile
{
public:
IOProfile(HwModule *module);
~IOProfile();
bool isCompatibleProfile(audio_devices_t device,
uint32_t samplingRate,
uint32_t format,
uint32_t channelMask,
audio_output_flags_t flags) const;
void dump(int fd);
// by convention, "0' in the first entry in mSamplingRates, mChannelMasks or mFormats
// indicates the supported parameters should be read from the output stream
// after it is opened for the first time
Vector <uint32_t> mSamplingRates; // supported sampling rates
Vector <audio_channel_mask_t> mChannelMasks; // supported channel masks
Vector <audio_format_t> mFormats; // supported audio formats
audio_devices_t mSupportedDevices; // supported devices (devices this output can be
// routed to)
audio_output_flags_t mFlags; // attribute flags (e.g primary output,
// direct output...). For outputs only.
HwModule *mModule; // audio HW module exposing this I/O stream
};
在AudioPolicyManagerBase類物件的mHwModules中儲存了這些讀取的配置。
相關文章
- TailWind文件翻譯說明以及每日翻譯進度AI
- 以太坊 web3.js 文件翻譯及說明WebJS
- 補充說明之前有錯翻譯那篇,但還沒更改完
- PicTech AI免費線上圖片翻譯工具及使用說明收藏AI
- 翻譯文字 API說明示例API
- Quartz.NET 2.x 文件翻譯 - Lesson 4:更多Triggers觸發器說明quartz觸發器
- 告別生硬翻譯!AI谷歌翻譯:讓你的文字"說人話"AI谷歌
- RK3399 android編譯說明Android編譯
- Webots和ROS的使用說明(譯)WebROS
- 3568F-Qt工程編譯說明QT編譯
- [譯] React-Redux 官方 Hooks 文件說明ReactReduxHook
- 關於支援OPenACC的編譯器說明編譯
- 翻譯
- 說明
- 蝴蝶書-task2: 文字推理、摘要、糾錯 transformers實現翻譯 OpenAI翻譯 PyDeepLX翻譯 DeepLpro翻譯ORMOpenAI
- Ubuntu安裝劃詞翻譯軟體Goldendict 單詞翻譯 句子翻譯UbuntuGo
- [譯]Prometheus監控NodeJS SDK(prom-client)使用說明PrometheusNodeJSclient
- 如何完成中文翻譯日文線上翻譯
- 滑鼠懸浮圖片3D翻轉出現文字說明3D
- 超長小說可以用AI翻譯了,新型多智慧體協作系統媲美人工翻譯AI智慧體
- 騰訊互動翻譯的坑爹翻譯
- Laravel 谷歌翻譯 /Bing 翻譯擴充套件包Laravel谷歌套件
- OpenCV翻譯專案總結二——Mat翻譯OpenCV
- Hack 說明
- 使用說明
- 專利說明書及其說明書附圖
- 文件翻譯器怎麼用?如何翻譯Word文件?
- 有道雲詞典--翻譯/螢幕取詞翻譯
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- socket中文翻譯
- 歌詞翻譯
- bulma中文翻譯
- 翻譯軟體
- 翻譯|Thinking StatefullyThinkingStatefully
- 翻譯介面整理
- MPAndroidChart文件翻譯Android
- Python 谷歌翻譯Python谷歌
- 【AIX】AIX7.1 C編譯環境部署指導說明AI編譯
- 詞典翻譯 英譯漢