From b45c62c8e9b05c2703bdae18cc298ae55550db8a Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Wed, 10 Feb 2010 15:04:31 -0800 Subject: Fixing AMR recording code. --- media/libmediaplayerservice/StagefrightRecorder.cpp | 5 +++++ media/libstagefright/AMRWriter.cpp | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 6383f0c..1a8109c 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -185,6 +185,11 @@ sp StagefrightRecorder::createAMRAudioSource() { mAudioEncoder == AUDIO_ENCODER_AMR_NB ? MEDIA_MIMETYPE_AUDIO_AMR_NB : MEDIA_MIMETYPE_AUDIO_AMR_WB); + int32_t maxInputSize; + CHECK(audioSource->getFormat()->findInt32( + kKeyMaxInputSize, &maxInputSize)); + + encMeta->setInt32(kKeyMaxInputSize, maxInputSize); encMeta->setInt32(kKeyChannelCount, 1); encMeta->setInt32(kKeySampleRate, sampleRate); diff --git a/media/libstagefright/AMRWriter.cpp b/media/libstagefright/AMRWriter.cpp index caff452..bf4424b 100644 --- a/media/libstagefright/AMRWriter.cpp +++ b/media/libstagefright/AMRWriter.cpp @@ -173,12 +173,15 @@ void AMRWriter::threadFunc() { buffer->range_length(), mFile); - buffer->release(); - buffer = NULL; - if (n < (ssize_t)buffer->range_length()) { + buffer->release(); + buffer = NULL; + break; } + + buffer->release(); + buffer = NULL; } Mutex::Autolock autoLock(mLock); -- cgit v1.1