The qcom decoder requires that the output buffers be allocated by the component for hardware accelerated display to work.
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index de808e5..d01d6af 100644
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -191,7 +191,7 @@
status_t err = omx->allocate_node(componentName, &node);
if (err == OK) {
- LOGV("Successfully allocated OMX node '%s'", componentName);
+ LOGI("Successfully allocated OMX node '%s'", componentName);
break;
}
}
@@ -216,6 +216,10 @@
quirks |= kRequiresLoadedToIdleAfterAllocation;
quirks |= kRequiresAllocateBufferOnInputPorts;
}
+ if (!strncmp(componentName, "OMX.qcom.video.decoder.", 23)) {
+ // XXX Required on P....on only.
+ quirks |= kRequiresAllocateBufferOnOutputPorts;
+ }
sp<OMXCodec> codec = new OMXCodec(
omx, node, quirks, createEncoder, mime, componentName,