Fixing AMR recording code.
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 @@
             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 @@
                 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);