MediaCodecInfo: keep capabilities from XML when updating them from codec

Bug: 27115490
Change-Id: Ie15bf538a3026829ff8029fb8b96b8d254517d1c
diff --git a/media/libmedia/MediaCodecInfo.cpp b/media/libmedia/MediaCodecInfo.cpp
index 3b53f4c..8351af6 100644
--- a/media/libmedia/MediaCodecInfo.cpp
+++ b/media/libmedia/MediaCodecInfo.cpp
@@ -238,7 +238,11 @@
     }
 }
 
-status_t MediaCodecInfo::setCapabilities(const sp<Capabilities> &caps) {
+status_t MediaCodecInfo::setCapabilitiesFromCodec(const sp<Capabilities> &caps) {
+    if (mCurrentCaps != NULL) {
+        // keep current capabilities map
+        caps->mDetails = mCurrentCaps->mDetails;
+    }
     mCurrentCaps = caps;
     return OK;
 }
diff --git a/media/libstagefright/MediaCodecList.cpp b/media/libstagefright/MediaCodecList.cpp
index 34d85e7..200796c 100644
--- a/media/libstagefright/MediaCodecList.cpp
+++ b/media/libstagefright/MediaCodecList.cpp
@@ -767,7 +767,7 @@
         return UNKNOWN_ERROR;
     }
 
-    return mCurrentInfo->setCapabilities(caps);
+    return mCurrentInfo->setCapabilitiesFromCodec(caps);
 }
 
 status_t MediaCodecList::addQuirk(const char **attrs) {