summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Lee <lerobert@google.com>2020-06-09 06:26:22 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-06-09 06:26:22 +0000
commit35e2e0a9d2d5017f639e23ce8eb230412196bb8a (patch)
treeff4aeaddaf4bc796b1422f76ed22cebcc729bddd
parentf4397df566c4edd68f7873d05b2dbde320f09a62 (diff)
parent7e30a80912f8a9b5f38b6f8a52cc62415edc7a76 (diff)
downloadaudio-35e2e0a9d2d5017f639e23ce8eb230412196bb8a.tar.gz
hal: add gapless offload playback control am: 7e30a80912android-mainline-12.0.0_r112android-mainline-11.0.0_r44android-mainline-11.0.0_r43android-mainline-11.0.0_r42android-mainline-11.0.0_r41android-mainline-11.0.0_r40android-mainline-11.0.0_r39android-mainline-11.0.0_r38android-mainline-11.0.0_r37android-mainline-11.0.0_r36android-mainline-11.0.0_r35android-mainline-11.0.0_r34android-mainline-11.0.0_r32android-mainline-11.0.0_r31android-mainline-11.0.0_r30android-mainline-11.0.0_r28android-mainline-11.0.0_r27android-mainline-11.0.0_r26android-mainline-11.0.0_r25android-mainline-11.0.0_r24android-mainline-11.0.0_r23android-mainline-11.0.0_r22android-mainline-11.0.0_r21android-mainline-11.0.0_r20android-mainline-11.0.0_r18android-mainline-11.0.0_r17android-mainline-11.0.0_r16android-mainline-11.0.0_r15android-mainline-11.0.0_r14android-mainline-11.0.0_r13android-mainline-11.0.0_r12aml_tz2_305400500aml_tz2_305400300aml_tz2_305400100aml_tz2_304500300aml_tz2_303900110aml_tz2_303900102aml_tz2_303800002aml_tz2_303800001aml_tz2_303200001android12-mainline-tzdata2-releaseandroid11-mainline-tethering-releaseandroid11-mainline-permission-releaseandroid11-mainline-os-statsd-releaseandroid11-mainline-networkstack-releaseandroid11-mainline-media-swcodec-releaseandroid11-mainline-media-releaseandroid11-mainline-extservices-releaseandroid11-mainline-documentsui-releaseandroid11-mainline-conscrypt-releaseandroid11-mainline-cellbroadcast-releaseandroid11-mainline-captiveportallogin-releaseaml_tz2_305400100
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/qcom/audio/+/11690442 Change-Id: Id9f68b701dd9c1748c35a45d00ff0847ed3702c8
-rw-r--r--hal/audio_hw.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 0f868ca..0f9dcf0 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -5002,6 +5002,30 @@ static void in_update_sink_metadata(struct audio_stream_in *stream,
pthread_mutex_unlock(&in->lock);
}
+static int check_and_set_gapless_mode(struct audio_device *adev)
+{
+ bool gapless_enabled = false;
+ const char *mixer_ctl_name = "Compress Gapless Playback";
+ struct mixer_ctl *ctl;
+
+ ALOGV("%s:", __func__);
+ gapless_enabled = property_get_bool("vendor.audio.offload.gapless.enabled", false);
+
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ if (!ctl) {
+ ALOGE("%s: Could not get ctl for mixer cmd - %s",
+ __func__, mixer_ctl_name);
+ return -EINVAL;
+ }
+
+ if (mixer_ctl_set_value(ctl, 0, gapless_enabled) < 0) {
+ ALOGE("%s: Could not set gapless mode %d",
+ __func__, gapless_enabled);
+ return -EINVAL;
+ }
+ return 0;
+}
+
static int adev_open_output_stream(struct audio_hw_device *dev,
audio_io_handle_t handle,
audio_devices_t devices,
@@ -5170,6 +5194,9 @@ static int adev_open_output_stream(struct audio_hw_device *dev,
out->non_blocking = 1;
out->send_new_metadata = 1;
+
+ check_and_set_gapless_mode(adev);
+
create_offload_callback_thread(out);
ALOGV("%s: offloaded output offload_info version %04x bit rate %d",
__func__, config->offload_info.version,