From 8d16bbc5a354d302abfd912b8d88d9c7feb3948f Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Wed, 3 Oct 2012 09:01:11 -0700 Subject: Increase polling frequency again temporarily to fix A/V issues Fixes a bug in the silence detection and increases the timeout after which we enter "silent mode" to 10 secs. Change-Id: I802b058f054becd5c377186664437f7b3970193f related-to-bug: 7248248 --- .../wifi-display/source/Converter.cpp | 29 +++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'media/libstagefright/wifi-display/source/Converter.cpp') diff --git a/media/libstagefright/wifi-display/source/Converter.cpp b/media/libstagefright/wifi-display/source/Converter.cpp index 6f336c7..f044666 100644 --- a/media/libstagefright/wifi-display/source/Converter.cpp +++ b/media/libstagefright/wifi-display/source/Converter.cpp @@ -242,16 +242,18 @@ void Converter::onMessageReceived(const sp &msg) { #if ENABLE_SILENCE_DETECTION if (!mIsVideo) { if (IsSilence(accessUnit)) { - if (!mInSilentMode) { - int64_t nowUs = ALooper::GetNowUs(); - - if (mFirstSilentFrameUs < 0ll) { - mFirstSilentFrameUs = nowUs; - } else if (nowUs >= mFirstSilentFrameUs + 1000000ll) { - mInSilentMode = true; - ALOGI("audio in silent mode now."); - break; - } + if (mInSilentMode) { + break; + } + + int64_t nowUs = ALooper::GetNowUs(); + + if (mFirstSilentFrameUs < 0ll) { + mFirstSilentFrameUs = nowUs; + } else if (nowUs >= mFirstSilentFrameUs + 10000000ll) { + mInSilentMode = true; + ALOGI("audio in silent mode now."); + break; } } else { if (mInSilentMode) { @@ -326,7 +328,7 @@ void Converter::scheduleDoMoreWork() { } mDoMoreWorkPending = true; - (new AMessage(kWhatDoMoreWork, id()))->post(mIsVideo ? 10000ll : 5000ll); + (new AMessage(kWhatDoMoreWork, id()))->post(1000ll); } status_t Converter::feedEncoderInputBuffers() { @@ -404,9 +406,8 @@ status_t Converter::doMoreWork() { sp buffer = new ABuffer(size); buffer->meta()->setInt64("timeUs", timeUs); - if (!mIsVideo) { - ALOGV("audio time %lld us (%.2f secs)", timeUs, timeUs / 1E6); - } + ALOGV("[%s] time %lld us (%.2f secs)", + mIsVideo ? "video" : "audio", timeUs, timeUs / 1E6); memcpy(buffer->data(), mEncoderOutputBuffers.itemAt(bufferIndex)->base() + offset, -- cgit v1.1