【Android Audio】audio hal hidl通信

audio hal hidl通信

Hal audio

  1. 第一步AudioFlinger (audioserver进程
    eg: AudioFlinger::PatchPanel::createAudioPatch
    frameworks/av/services/audioflinger/PatchPanel.cpp
    /system/lib/ibaudioflinger.so

  2. 第二步libaudiohal(audioserver进程
    eg: DeviceHalHidl::createAudioPatch
    Android P:
    frameworks/av/media/libaudiohal/4.0/DeviceHalHidl.cpp
    /system/lib/[email protected]
    Android Q:
    frameworks/av/media/libaudiohal/impl/DeviceHalHidl.cpp
    /system/lib/[email protected]

  3. 第三步device impl ([email protected]进程
    eg: Device::createAudioPatch
    Android P:
    hardware/interfaces/audio/core/all-versions/default/include/core/all-versions/default/Device.impl.h
    /vendor/lib/hw/[email protected]
    Android Q:
    hardware/interfaces/audio/core/all-versions/default/Device.cpp
    /vendor/lib/hw/[email protected]

  4. 第四步 audio hal ([email protected]进程
    eg: audio_hw.c create_audio_patch
    /vendor/lib/hw/audio.primary.xxx.so

系统上下文

audioserver和[email protected]两个进程之间调用,之间通过vndbinder通信,system分区调用vendor分区。

在这里插入图片描述

libaudiohal调用关系

猜你喜欢

转载自blog.csdn.net/u013120422/article/details/108388584
今日推荐