Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: More explicit title (for searching)

Table of Contents

Anchor
POC_work_description
POC_work_description
Description Of Work

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

...

  • 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)

Anchor
POC_Emu_milestones
POC_Emu_milestones
Emulator Track Milestones

#SummaryDue DateContent Work PackagesDetails Comments
1

Multiple devices management



  • step 1 : AOSP Emulator, configure multiple devices that would be available in the car.
  • step 2 : Car System Emulator : emulate multiple Android devices with one single host device (e.g. Android sees many headsets and speakers then the user can select which one plays on the single host real device)
  • help test multi zone audio use cases
  • multiple microphones management
2HW acceleration Emulation

  • run the same DSP HW accelerated algorithm in a PC x86 environment
  • connect it to android emulator as an external HW accelerator
  • prefer usage of standard libraries and interfaces e.g. Android audio effects / Open SL.
  • how to add custom app effects
  • how to abstract audio analysis algorithms e.g. Wake Up Word Detection or other.

Components overview

Host and emulator interactions

Image Added

Image Added

Delegation of audio processing

Image Added

#Component - main topicsOwnersJIRA sub-itemsImplementation details
Owners
raw streams

Raw Stream Extraction

(multizone audio, etc.)

todo: detail it + use case

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-70

(blue star) AMM demo


  • Overview picture with SW components
    https://at.projects.genivi.org/jira/browse/
      • Jira
        serverJIRA
        serverId121ddff2-c571-320f-9e4d-d5b9371533bd
        keyAASIG-71
    • Audio HAL (open point: keep modified  or rewrite it)
      https://at.projects.genivi.org/jira/browse/
        • Jira
          serverJIRA
          serverId121ddff2-c571-320f-9e4d-d5b9371533bd
          keyAASIG-72
      • Config for multizone
        https://at.projects.genivi.org/jira/browse/
          • Jira
            serverJIRA
            serverId121ddff2-c571-320f-9e4d-d5b9371533bd
            keyAASIG-73
        • Separate contexts for audio input PCM streams (open point: separation concept to be defined)
          https://at.projects.genivi.org/jira/browse/
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-74


          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"

          Jira
          serverJIRA
          serverId121ddff2-c571-320f-9e4d-d5b9371533bd
          keyAASIG-75

          (blue star) AMM demo


          • Design Overview (pointing to the actual sw comp)
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-76
          • getting stream from Microphone (line in)
            • config in AOSP
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-77
          • external player or other device (BT or other)
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-78

          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.


          Jira
          serverJIRA
          serverId121ddff2-c571-320f-9e4d-d5b9371533bd
          keyAASIG-79

          • Overview design
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-80
          • Usage of a bluetooth headset with Android BT stack only
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-81
          • Microphone from Headset, audio on External Loudspeakers
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-82
          • No Bluetooth, both Microphone and Loudspeakers are used for telephony example such as skype or any other
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-83
          • forward audio stream from external source (to connected BT device (speaker/headphone) via Android Audio subsystem
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-84

          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,...)


          Jira
          serverJIRA
          serverId121ddff2-c571-320f-9e4d-d5b9371533bd
          keyAASIG-86

          (blue star) AMM demo (TBC)


          • Overview design
            • components and APIs involved in the Audio path
            • anti-jitter buffers configurations
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-87
          • Total delay for Telephony on external speakers use case
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-88
          • Total delay for Video streaming where audio plays on an external speaker
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-88
          • add latency measurements means to quick audio solutions (AAudio)*
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-90
          • investigate PCM transport impact on latency, check alternatives (currently named sockets are being used, alternative shared memory or pipes)
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-91


          Offloading to external speakers or loopback to Android.

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

          Jira
          serverJIRA
          serverId121ddff2-c571-320f-9e4d-d5b9371533bd
          keyAASIG-92

          • Design Overview (pointing to the actual sw comp)
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-94
          • Offloading part-1 (overview on concept, which APIs)
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-95
          • Offloading part-2 (usage)
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-96
          • Offloading with loopback to Android
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-97

          09

          Offloading use case : Forwarding Multi-Channel audio

          efficiency by keeping

          Jira
          serverJIRA
          serverId121ddff2-c571-320f-9e4d-d5b9371533bd
          keyAASIG-93


          • PCM 5.1 sample audio
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-98
          • Guidelines for specific policy config to prevent downmixing
            • Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-99
          • Example implementation
            playing multichannles
              • Jira
                serverJIRA
                serverId121ddff2-c571-320f-9e4d-d5b9371533bd
                keyAASIG-100
            • playing multichannels 5.1 audio from Netflix (any DRM issues)
              • Jira
                serverJIRA
                serverId121ddff2-c571-320f-9e4d-d5b9371533bd
                keyAASIG-100


            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


            ...

            Anchor
            POC_milestones
            POC_milestones
            HW Track Milestones

            #SummaryDue DateContent Work PackagesDetails Comments
            1

            running demo on real HW

            Jira
            serverJIRA
            serverId121ddff2-c571-320f-9e4d-d5b9371533bd
            keyAASIG-104



            • 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)
              Jira
              serverJIRA
              serverId121ddff2-c571-320f-9e4d-d5b9371533bd
              keyAASIG-107
            • At this stage, the function selection for Milestone 3 should be agreed upon
            2

            Full Audio Path on real HW

            Jira
            serverJIRA
            serverId121ddff2-c571-320f-9e4d-d5b9371533bd
            keyAASIG-105



            • 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

            Jira
            serverJIRA
            serverId121ddff2-c571-320f-9e4d-d5b9371533bd
            keyAASIG-106



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