stagefright: CodecCapabilities: fix missing capabilities
mCurrentCaps is a reference, so copy codec capabilities into it
vs. replacing it.
Bug: 27142863
Change-Id: I914bcc882d5f9049bc9eb8b31913b07ae572b441
diff --git a/media/libmedia/MediaCodecInfo.cpp b/media/libmedia/MediaCodecInfo.cpp
index 3b53f4c..06abd8d 100644
--- a/media/libmedia/MediaCodecInfo.cpp
+++ b/media/libmedia/MediaCodecInfo.cpp
@@ -238,8 +238,15 @@
}
}
-status_t MediaCodecInfo::setCapabilities(const sp<Capabilities> &caps) {
- mCurrentCaps = caps;
+status_t MediaCodecInfo::initializeCapabilities(const sp<Capabilities> &caps) {
+ // TRICKY: copy data to mCurrentCaps as it is a reference to
+ // an element of the capabilites map.
+ mCurrentCaps->mColorFormats.clear();
+ mCurrentCaps->mColorFormats.appendVector(caps->mColorFormats);
+ mCurrentCaps->mProfileLevels.clear();
+ mCurrentCaps->mProfileLevels.appendVector(caps->mProfileLevels);
+ mCurrentCaps->mFlags = caps->mFlags;
+ mCurrentCaps->mDetails = caps->mDetails;
return OK;
}