summaryrefslogtreecommitdiff
path: root/ips
diff options
context:
space:
mode:
authorDan Liang <dan.liang@intel.com>2013-07-19 13:19:56 +0800
committercactus <cactus@intel.com>2013-08-07 08:35:32 -0700
commit51e60f4b4281bb3de182641f9cfe63a7f99bef3b (patch)
tree38ef90c4b33d95b04190bf57f36da53b24ed21d8 /ips
parentb58f29390918c0df3bd6d0731bf98daf57511b9f (diff)
downloadhwcomposer-51e60f4b4281bb3de182641f9cfe63a7f99bef3b.tar.gz
hwc: set the transform info via payload when rotation buffer is not ready
BZ: 119799 In GTS1.3, MediaCodec APIs are used. The process invoking MediaCodec is not the same process in which video decoder is working so video driver cannot query the transform info via native window api. One contraint is added since clear content video can fall back to ST while only protected content video needs to get the rotation buffer prepared by video decoder. Change-Id: Ia64d661868294bb069a8ec5146ea9183c7b9abd8 Signed-off-by: Dan Liang <dan.liang@intel.com> Reviewed-on: http://android.intel.com:8080/119596 Reviewed-by: buildbot <buildbot@intel.com> Reviewed-by: Ma, Hongpeng <hongpeng.ma@intel.com> Reviewed-by: Zeng, Li <li.zeng@intel.com> Reviewed-by: Qiu, Junhai <junhai.qiu@intel.com> Reviewed-by: Shi, PingX <pingx.shi@intel.com> Tested-by: Shi, PingX <pingx.shi@intel.com> Reviewed-by: cactus <cactus@intel.com> Tested-by: cactus <cactus@intel.com>
Diffstat (limited to 'ips')
-rw-r--r--ips/common/OverlayPlaneBase.cpp4
-rw-r--r--ips/common/VideoPayloadBuffer.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/ips/common/OverlayPlaneBase.cpp b/ips/common/OverlayPlaneBase.cpp
index c87ddf7..1e987e9 100644
--- a/ips/common/OverlayPlaneBase.cpp
+++ b/ips/common/OverlayPlaneBase.cpp
@@ -545,6 +545,10 @@ bool OverlayPlaneBase::rotatedBufferReady(BufferMapper& mapper)
return false;
if (payload->client_transform != mTransform) {
+ if (payload->surface_protected) {
+ payload->hwc_timestamp = systemTime();
+ payload->layer_transform = mTransform;
+ }
WTRACE("client is not ready");
return false;
}
diff --git a/ips/common/VideoPayloadBuffer.h b/ips/common/VideoPayloadBuffer.h
index ac095fa..faa8f1b 100644
--- a/ips/common/VideoPayloadBuffer.h
+++ b/ips/common/VideoPayloadBuffer.h
@@ -28,6 +28,7 @@
#ifndef VIDEO_PAYLOAD_BUFFER_H
#define VIDEO_PAYLOAD_BUFFER_H
+#include <utils/Timers.h>
namespace android {
namespace intel {
@@ -56,6 +57,10 @@ struct VideoPayloadBuffer {
uint32_t rotate_luma_stride;
uint32_t rotate_chroma_u_stride;
uint32_t rotate_chroma_v_stride;
+
+ nsecs_t hwc_timestamp;
+ uint32_t layer_transform;
+
void *native_window;
};