Merge "stagefright: add a property to choose hw codecs in thumbnailer"
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp
index e80ec3b..c51ac8d 100644
--- a/media/libstagefright/StagefrightMetadataRetriever.cpp
+++ b/media/libstagefright/StagefrightMetadataRetriever.cpp
@@ -20,6 +20,7 @@
#include <inttypes.h>
#include <utils/Log.h>
+#include <cutils/properties.h>
#include "include/FrameDecoder.h"
#include "include/StagefrightMetadataRetriever.h"
@@ -204,11 +205,14 @@
trackMeta->setCString(kKeyMIMEType, mime);
}
+ bool preferhw = property_get_bool(
+ "media.stagefright.thumbnail.prefer_hw_codecs", false);
+ uint32_t flags = preferhw ? 0 : MediaCodecList::kPreferSoftwareCodecs;
Vector<AString> matchingCodecs;
MediaCodecList::findMatchingCodecs(
mime,
false, /* encoder */
- MediaCodecList::kPreferSoftwareCodecs,
+ flags,
&matchingCodecs);
for (size_t i = 0; i < matchingCodecs.size(); ++i) {
@@ -325,11 +329,14 @@
const char *mime;
CHECK(trackMeta->findCString(kKeyMIMEType, &mime));
+ bool preferhw = property_get_bool(
+ "media.stagefright.thumbnail.prefer_hw_codecs", false);
+ uint32_t flags = preferhw ? 0 : MediaCodecList::kPreferSoftwareCodecs;
Vector<AString> matchingCodecs;
MediaCodecList::findMatchingCodecs(
mime,
false, /* encoder */
- MediaCodecList::kPreferSoftwareCodecs,
+ flags,
&matchingCodecs);
for (size_t i = 0; i < matchingCodecs.size(); ++i) {