Merge "Add a property to account the host side latency"
diff --git a/audio/device_port_sink.cpp b/audio/device_port_sink.cpp
index 668f2f0..e02c727 100644
--- a/audio/device_port_sink.cpp
+++ b/audio/device_port_sink.cpp
@@ -83,7 +83,7 @@
         const size_t denominator = periodSettings.periodCount * cfg.base.sampleRateHz / inMs;
 
         // integer division with rounding
-        return (numerator + (denominator >> 1)) / denominator;
+        return (numerator + (denominator >> 1)) / denominator + talsa::pcmGetHostLatencyMs();
     }
 
     Result getPresentationPosition(uint64_t &frames, TimeSpec &ts) override {
diff --git a/audio/talsa.cpp b/audio/talsa.cpp
index 27076f0..b0f2e59 100644
--- a/audio/talsa.cpp
+++ b/audio/talsa.cpp
@@ -33,6 +33,7 @@
 int gMixerRefcounter0 = 0;
 std::mutex gMixerMutex;
 PcmPeriodSettings gPcmPeriodSettings;
+unsigned gPcmHostLatencyMs;
 
 void mixerSetValueAll(struct mixer_ctl *ctl, int value) {
     const unsigned int n = mixer_ctl_get_num_values(ctl);
@@ -115,12 +116,19 @@
 
     gPcmPeriodSettings.periodSizeMultiplier =
         readUnsignedProperty("ro.hardware.audio.tinyalsa.period_size_multiplier", 1);
+
+    gPcmHostLatencyMs =
+        readUnsignedProperty("ro.hardware.audio.tinyalsa.host_latency_ms", 0);
 }
 
 PcmPeriodSettings pcmGetPcmPeriodSettings() {
     return gPcmPeriodSettings;
 }
 
+unsigned pcmGetHostLatencyMs() {
+    return gPcmHostLatencyMs;
+}
+
 void PcmDeleter::operator()(pcm_t *x) const {
     LOG_ALWAYS_FATAL_IF(::pcm_close(x) != 0);
 };
diff --git a/audio/talsa.h b/audio/talsa.h
index 8cc3c8f..6f2883c 100644
--- a/audio/talsa.h
+++ b/audio/talsa.h
@@ -35,6 +35,7 @@
 
 void init();
 PcmPeriodSettings pcmGetPcmPeriodSettings();
+unsigned pcmGetHostLatencyMs();
 
 typedef struct pcm pcm_t;
 struct PcmDeleter { void operator()(pcm_t *x) const; };
diff --git a/init.ranchu.rc b/init.ranchu.rc
index a5edf26..284d245 100644
--- a/init.ranchu.rc
+++ b/init.ranchu.rc
@@ -61,6 +61,7 @@
 
     setprop ro.hardware.audio.tinyalsa.period_count 4
     setprop ro.hardware.audio.tinyalsa.period_size_multiplier 4
+    setprop ro.hardware.audio.tinyalsa.host_latency_ms 30
 
     start qemu-props