You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

Description Of Work

curation of topics from : List of prioritized topics for the Audio HAL

PoC github repo : android-external-audio-mixing repository

hint about progress steps

  • define the related sw component affected by changes
  • define the interfaces (details discussed between those who change the components)
  • define which tasks require a real HW and which ones can be deployed on emulator (which part of the code is HW dependent)

Components overview

Host and emulator interactions



#Component - main topicsOwnersJIRA sub-itemsImplementation details
raw streams

Raw Stream Extraction

(multizone audio, etc.)

todo: detail it + use case

Unable to render Jira issues macro, execution error.

  • Overview picture with SW components
    • Unable to render Jira issues macro, execution error.
  • Audio HAL (open point: keep modified  or rewrite it)
    • Unable to render Jira issues macro, execution error.
  • Config for multizone
    • Unable to render Jira issues macro, execution error.
  • Separate contexts for audio input PCM streams (open point: separation concept to be defined)
    • Unable to render Jira issues macro, execution error.


Input and Control of external streams

(microphone, or external player)

todo: detail it + use case

todo: be more explicit and clear about for example what is "external"

Unable to render Jira issues macro, execution error.

  • Design Overview (pointing to the actual sw comp)
    • Unable to render Jira issues macro, execution error.
  • getting stream from Microphone (line in)
    • config in AOSP
    • Unable to render Jira issues macro, execution error.
  • external player or other device (BT or other)
    • Unable to render Jira issues macro, execution error.

13

Bluetooth Device Integration in Android System.

As a user I have a BT headset (with speakers, microphone, control buttons, or even the car itself, etc.). I should be able to use it in an Android System.


Unable to render Jira issues macro, execution error.

  • Overview design
    • Unable to render Jira issues macro, execution error.
  • Usage of a bluetooth headset with Android BT stack only
    • Unable to render Jira issues macro, execution error.
  • Microphone from Headset, audio on External Loudspeakers
    • Unable to render Jira issues macro, execution error.
  • No Bluetooth, both Microphone and Loudspeakers are used for telephony example such as skype or any other
    • Unable to render Jira issues macro, execution error.
  • forward audio stream from external source (to connected BT device (speaker/headphone) via Android Audio subsystem
    • Unable to render Jira issues macro, execution error.

08

Ensure measurability of full audio path latency

As a user I would not want my audio connection to be delayed.

Each delay measure will be split in modules, which module brings which delay, eg (Bluetooth delay, mixing delay, routing delay,...)


Unable to render Jira issues macro, execution error.

  • Overview design
    • components and APIs involved in the Audio path
    • anti-jitter buffers configurations
    • Unable to render Jira issues macro, execution error.
  • Total delay for Telephony on external speakers use case
    • Unable to render Jira issues macro, execution error.
  • Total delay for Video streaming where audio plays on an external speaker
    • Unable to render Jira issues macro, execution error.
  • add latency measurements means to quick audio solutions (AAudio)*
    • Unable to render Jira issues macro, execution error.
  • investigate PCM transport impact on latency, check alternatives (currently named sockets are being used, alternative shared memory or pipes)
    • Unable to render Jira issues macro, execution error.


Offloading to external speakers or loopback to Android.

(offloading examples, codecs MPEG,MP3, DSPs, transport e.g. AVB)

Unable to render Jira issues macro, execution error.

  • Design Overview (pointing to the actual sw comp)
    • Unable to render Jira issues macro, execution error.
  • Offloading part-1 (overview on concept, which APIs)
    • Unable to render Jira issues macro, execution error.
  • Offloading part-2 (usage)
    • Unable to render Jira issues macro, execution error.
  • Offloading with loopback to Android
    • Unable to render Jira issues macro, execution error.

09

Offloading use case : Forwarding Multi-Channel audio

efficiency by keeping

Unable to render Jira issues macro, execution error.


  • PCM 5.1 sample audio
    • Unable to render Jira issues macro, execution error.
  • Guidelines for specific policy config to prevent downmixing
    • Unable to render Jira issues macro, execution error.
  • Example implementation
    • Unable to render Jira issues macro, execution error.
  • playing multichannels 5.1 audio from Netflix (any DRM issues)
    • Unable to render Jira issues macro, execution error.

Milestones

#SummaryDue DateContent Work PackagesDetails Comments
1

running demo on real HW

Unable to render Jira issues macro, execution error.



  • compiling android-external-audio-mixing repository for selected target HW (Renesas-H3)
  • optional support for 2nd HW (Low cost HiKey)
  • TODO define functions to be included (input streams) Unable to render Jira issues macro, execution error.
  • At this stage, the function selection for Milestone 3 should be agreed upon
2

Full Audio Path on real HW

Unable to render Jira issues macro, execution error.



  • support of full audio path
    • Raw streams extraction
    • input external streams
    • control of an external stream
    • demo should showcase at least one function
3

Selected Functions partitioned on HW

Unable to render Jira issues macro, execution error.



  • All selected and prioritized functions running on the main target HW


Additional build and run info

This info is to be moved in the repo readme, the current readme is not at the root of the repo to avoid aosp directory pollution, therefore this info will move once a new structure of repo is created with manifest and new readme

  • can open Android Studio that will show logcat output
  • Listen with command on another terminal window "nc -l 5000"
  • emulator
  • switch on from emulator power button
  • play any sound from Alarm volume settings or other

repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r40

repo sync

source build/envsetup.sh

lunch

m


Brainstorming about breakdown rework

Topics and priorities

1 ) Networked audio devices - AVB

2 ) cross ECU interactions (remote control)

3 ) Audio effects

4) interactions with external server

Use cases

1) external Amplifier, controlled by Android only (cross ECU itnerface used by headunit only)
2) interact of an Android Audio ECU with the rest of the audio system other ECUs (e.g. remote control - e.g. non Android system)
3) interact with the Audio System from a server

Relations to existing work in other SIG

CVII : Common Vehicle Interface Initiative
VSS : Vehicle Signal specification
VSC : Vehicle Service Catalogue (list of interfaces)

Audio and VSS, data interfaces,...

common model for data (call functions with params, services, interfaces, franca,...)

-no dealing with streaming data, rather simply connection points urls exchange
-can we define similar things to audio e.g. currently played track, volume,... ?
-requests to add media in VSS

-standardized interface for audio/media streaming, renewed interest by Hyundai
- complex question, OEM => standardize / Netflix => App custom standard

- if possible to add info in VSS
- different scope from cross ECU interfaces

-prevent fragmentation by collecting a survey about state of the art
- MPRIS dbus standard




  • No labels