diff options
author | Dan Liang <dan.liang@intel.com> | 2013-07-19 13:19:56 +0800 |
---|---|---|
committer | cactus <cactus@intel.com> | 2013-08-07 08:35:32 -0700 |
commit | 51e60f4b4281bb3de182641f9cfe63a7f99bef3b (patch) | |
tree | 38ef90c4b33d95b04190bf57f36da53b24ed21d8 /ips | |
parent | b58f29390918c0df3bd6d0731bf98daf57511b9f (diff) | |
download | hwcomposer-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.cpp | 4 | ||||
-rw-r--r-- | ips/common/VideoPayloadBuffer.h | 5 |
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; }; |