From fa4303dcbeac79452f35c078c8008f5c2e7622b7 Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Wed, 12 Aug 2015 16:32:00 -0700 Subject: adjust audio timestamp to account for AudioRecord latency bug: 22953017 Change-Id: Iccd1bb406ff68aa8bc3ccec35c8128625894f6ae --- media/libstagefright/AudioSource.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'media/libstagefright/AudioSource.cpp') diff --git a/media/libstagefright/AudioSource.cpp b/media/libstagefright/AudioSource.cpp index 3505844..6e4a1dd 100644 --- a/media/libstagefright/AudioSource.cpp +++ b/media/libstagefright/AudioSource.cpp @@ -290,6 +290,10 @@ void AudioSource::signalBufferReturned(MediaBuffer *buffer) { status_t AudioSource::dataCallback(const AudioRecord::Buffer& audioBuffer) { int64_t timeUs = systemTime() / 1000ll; + // Estimate the real sampling time of the 1st sample in this buffer + // from AudioRecord's latency. (Apply this adjustment first so that + // the start time logic is not affected.) + timeUs -= mRecord->latency() * 1000LL; ALOGV("dataCallbackTimestamp: %" PRId64 " us", timeUs); Mutex::Autolock autoLock(mLock); -- cgit v1.1