stagefright: reuse buffers instead of cloning

In buffer array mode, the buffer reference is kept in clients of
MediaCodec, so allocating new buffer for new input/output does not
work in that case.

Bug: 32577275
Bug: 32579231
Test: use screenrecord and investigate the output file.
Test: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest
Change-Id: I26d89f6b5735094062b8a2027bcab4754576d574
diff --git a/include/media/MediaCodecBuffer.h b/include/media/MediaCodecBuffer.h
index 05aaa14..501c00b 100644
--- a/include/media/MediaCodecBuffer.h
+++ b/include/media/MediaCodecBuffer.h
@@ -58,13 +58,13 @@
     sp<AMessage> meta();
     sp<AMessage> format();
 
-    virtual sp<MediaCodecBuffer> clone(const sp<AMessage> &format);
+    void setFormat(const sp<AMessage> &format);
 
 private:
     MediaCodecBuffer() = delete;
 
     const sp<AMessage> mMeta;
-    const sp<AMessage> mFormat;
+    sp<AMessage> mFormat;
     const sp<ABuffer> mBuffer;
     MediaBufferBase *mMediaBufferBase;
 };