* Valid values for the audio device property are 'jack', 'hdmi0', 'hdmi1',
and 'dac'.
* If 'jack' is selected, first PCM card with name 'Headphones' is used.
If 'dac' is selected, first PCM card that doesn't match the name for 3.5mm
or HDMI devices is used. HDMI audio uses virtual ALSA devices instead of
using tinyalsa to open a PCM card directly.
* Allow forcing specific PCM card for debugging/development purposes.
* PCM card numbers are different between Pi 4 and Pi 5 and order can change
depending on the DAC driver that's enabled.
Pi 4:
console:/ # cat /proc/asound/cards
0 [Headphones ]: bcm2835_headpho - bcm2835 Headphones
bcm2835 Headphones
1 [vc4hdmi0 ]: vc4-hdmi - vc4-hdmi-0
vc4-hdmi-0
2 [vc4hdmi1 ]: vc4-hdmi - vc4-hdmi-1
vc4-hdmi-1
Pi 5 with DAC:
console:/ # cat /proc/asound/cards
0 [vc4hdmi0 ]: vc4-hdmi - vc4-hdmi-0
vc4-hdmi-0
1 [vc4hdmi1 ]: vc4-hdmi - vc4-hdmi-1
vc4-hdmi-1
2 [sndrpihifiberry]: HifiberryDacp - snd_rpi_hifiberry_dacplus
snd_rpi_hifiberry_dacplus
* ALSA HDMI audio needs to be disabled when 3.5mm jack, DAC, or external
USB audio cards is used. Enable HDMI audio path based on system property
and the set the vc4 audio device name accordingly.
* For some reason underruns are often observed when using the default
parameters. Workaround this by increasing start threshold by 20 ms
(i.e. at 48000Hz there's 960 additional frames in the ring buffer before
the playback starts). Buffer size also needs to be increased to allow
larger start threshold. Balance between avoiding underruns and adding
latency.
* Add logging for the ALSA parameters.
* HDMI audio devices on Raspberry Pi use FORMAT_IEC958_SUBFRAME_LE which
is not supported by tinyalsa used on Android. Use ALSA library and its
virtual vc4 audio devices that use IEC958 plugin to manage the subframe
conversion.
* 48000Hz sample rate is set for output devices in audio policy
configuration. Set the same default sample rate for sanity though this
should not get used for valid profiles.
Default policy don't work with TI sound card due to some limitation.
Create and add usb audio policy xml file instead of copy default config
file.
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
We compile source code to support USB audio devices but manifest not
enable it.
Uncomment usb module part to have USB audio device support.
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
* Restructure to remove dependencies elsewhere in the AOSP tree, move APEX
definition from subdirectory, 'bpfmt -s -w Andoid.bp', etc.
* Remove package license definitions that are not visible in this context.
* This is the target FCM level for API level 36.
* Specify that HIDL is enabled so android.hidl.manager is started.
This copies manifest fragment that doesn't set max FCM level
(vs. max-level="8").
* Set FCM level in compatibility matrix to satisfy kernel version check.
* 'make check-vintf-all' passes as COMPATIBLE.
This patch remaps the Enter key to DPAD_CENTER for Leanback Keyboard to work
Change-Id: I201234d8a735c4eec5f6e0680c37bb5c13dcef21
Signed-off-by: supechicken <me@supechicken666.dev>
* Picked up by 'make check-vintf-all'.
The following instances are in the device manifest but not specified in framework compatibility matrix:
android.hardware.media.c2.IComponentStore/ffmpeg (@1)
* Android 16 ranging feature.
https://developer.android.com/develop/connectivity/ranging
* com.android.ranging is nowhere found in AOSP though should be built.
1e9faa2bc9
build/make/core/main.mk:1096: warning: device/brcm/rpi5/aosp_rpi5.mk includes non-existent modules in PRODUCT_PACKAGES
Offending entries:
com.android.ranging
build/make/core/main.mk:1096: warning: device/brcm/rpi5/aosp_rpi5_car.mk includes non-existent modules in PRODUCT_PACKAGES
Offending entries:
Bluetooth
Keyguard
Launcher2
OverviewApp
RotaryIME
RotaryPlayground
com.android.ranging
libnfc_ndef
libvariablespeed
pppd
build/make/core/main.mk:1096: warning: device/brcm/rpi5/aosp_rpi5_tv.mk includes non-existent modules in PRODUCT_PACKAGES
Offending entries:
com.android.ranging
* It's been reported that 14848MiB = 15569256448 bytes is still too
large to fit some 16GB storage devices.
* 15360000000 bytes is dividable by 16384, 4096, 2048, 1024, 512, ...
* Fixes 6c7ec173b4.