Revert "Revert "Fix decoder instantiation during playback"" -- DO NOT MERGE

This reverts commit de7268d8e20b883ec88a7ff19ad560a665373484.

Bug: 36479980
Bug: 36209723
Bug: 36660223

Change-Id: I8d83305a28dc35cee16f8f1068c90fdd0b9effff
(cherry picked from commit 6aa5c0662c86c7f7b2890577a207086eeecbd177)
diff --git a/media/libmedia/include/CryptoHal.h b/media/libmedia/include/CryptoHal.h
index 28ade20..d6214c2 100644
--- a/media/libmedia/include/CryptoHal.h
+++ b/media/libmedia/include/CryptoHal.h
@@ -60,6 +60,9 @@
             const ICrypto::DestinationBuffer &destination,
             AString *errorDetailMsg);
 
+    virtual void setHeap(const sp<IMemoryHeap>& heap) { setHeapBase(heap); }
+    virtual void unsetHeap(const sp<IMemoryHeap>& heap) { clearHeapBase(heap); }
+
 private:
     mutable Mutex mLock;
 
@@ -82,6 +85,7 @@
             const uint8_t uuid[16], const void *initData, size_t size);
 
     void setHeapBase(const sp<IMemoryHeap>& heap);
+    void clearHeapBase(const sp<IMemoryHeap>& heap);
 
     status_t toSharedBuffer(const sp<IMemory>& memory, ::SharedBuffer* buffer);