Fix the AudioRecord Latency in Audio Input MIO.
Calculate the correct latency based on Opencore BufferSize and KernelBufferSize.
diff --git a/android/author/android_audio_input.cpp b/android/author/android_audio_input.cpp
index 27d647a..27bb681 100644
--- a/android/author/android_audio_input.cpp
+++ b/android/author/android_audio_input.cpp
@@ -1175,8 +1175,22 @@
                 // The difference in 2 will give the actual time
                 // of first audio capture.
                 uint32 systime = (uint32) (systemTime() / 1000000L);
-                // TODO: add audio hardware input latency here
-                uint32 recordLatency = record->latency();
+                uint32 recordLatency = 0;
+
+                // Get the latency now
+                size_t kernelBufferSize = 0;
+                status_t ret = AudioSystem::getInputBufferSize(iAudioSamplingRate,
+                                                               AudioSystem::PCM_16_BIT,
+                                                               iAudioNumChannels, &kernelBufferSize);
+
+                if (ret == NO_ERROR) {
+                    uint32 readBufferFrames = kBufferSize/2/iAudioNumChannels;
+                    uint32 kernelFrames = kernelBufferSize/2/iAudioNumChannels;
+                    recordLatency  = ((readBufferFrames - 1)/kernelFrames + 1) * (kernelFrames*1000)/iAudioSamplingRate;
+                } else {
+                    LOGE("AudioSystem::getInputBufferSize returned error");
+                }
+
                 iFirstFrameTs = systime - recordLatency;
                 LOGV("First Audio Frame received systime %d, recordLatency %d, iFirstFrameTs %d", systime, recordLatency, iFirstFrameTs);
             }