Until we have emulator support for YUV12 rendering do software color conversion.
Change-Id: Id2e118cae224facad7077f2f62c62cd21e95e749
related-to-bug: 6444358
diff --git a/media/libstagefright/colorconversion/SoftwareRenderer.cpp b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
index 059d6b9..8673bad 100644
--- a/media/libstagefright/colorconversion/SoftwareRenderer.cpp
+++ b/media/libstagefright/colorconversion/SoftwareRenderer.cpp
@@ -19,6 +19,7 @@
#include "../include/SoftwareRenderer.h"
+#include <cutils/properties.h> // for property_get
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MetaData.h>
#include <system/window.h>
@@ -27,6 +28,11 @@
namespace android {
+static bool runningInEmulator() {
+ char prop[PROPERTY_VALUE_MAX];
+ return (property_get("ro.kernel.qemu", prop, NULL) > 0);
+}
+
SoftwareRenderer::SoftwareRenderer(
const sp<ANativeWindow> &nativeWindow, const sp<MetaData> &meta)
: mConverter(NULL),
@@ -62,10 +68,14 @@
case OMX_COLOR_FormatYUV420Planar:
case OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
{
- halFormat = HAL_PIXEL_FORMAT_YV12;
- bufWidth = (mCropWidth + 1) & ~1;
- bufHeight = (mCropHeight + 1) & ~1;
- break;
+ if (!runningInEmulator()) {
+ halFormat = HAL_PIXEL_FORMAT_YV12;
+ bufWidth = (mCropWidth + 1) & ~1;
+ bufHeight = (mCropHeight + 1) & ~1;
+ break;
+ }
+
+ // fall through.
}
default: