From 44b004b0c2536a1232887f6b6492d505a68c9ccb Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 19 Jan 2011 20:42:19 -0800 Subject: [PATCH] Eliminate recording sound by starting the video track before audio track. Due to the variable delays in the system, the recording sound can still be heard if the audio track is started early. This happens even after we suppress a relative long period of initial audio for a recording session. By starting the video track before the audio track, we effectively play the recording sound earlier. bug - 3371141 Change-Id: I2cccf77eae953d96827fc080c618b1d962445c26 --- .../libmediaplayerservice/StagefrightRecorder.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 153b2a66fd0d2..65df68c4bf00e 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -1295,12 +1295,6 @@ status_t StagefrightRecorder::setupMPEG4Recording( status_t err = OK; sp writer = new MPEG4Writer(outputFd); - // Add audio source first if it exists - if (!mCaptureTimeLapse && (mAudioSource != AUDIO_SOURCE_LIST_END)) { - err = setupAudioEncoder(writer); - if (err != OK) return err; - *totalBitRate += mAudioBitRate; - } if (mVideoSource == VIDEO_SOURCE_DEFAULT || mVideoSource == VIDEO_SOURCE_CAMERA) { @@ -1332,6 +1326,15 @@ status_t StagefrightRecorder::setupMPEG4Recording( *totalBitRate += videoBitRate; } + // Audio source is added at the end if it exists. + // This help make sure that the "recoding" sound is suppressed for + // camcorder applications in the recorded files. + if (!mCaptureTimeLapse && (mAudioSource != AUDIO_SOURCE_LIST_END)) { + err = setupAudioEncoder(writer); + if (err != OK) return err; + *totalBitRate += mAudioBitRate; + } + if (mInterleaveDurationUs > 0) { reinterpret_cast(writer.get())-> setInterleaveDuration(mInterleaveDurationUs);