author | Xu Jintao <jintao.xu@amlogic.com> | 2016-10-02 05:41:46 (GMT) |
---|---|---|
committer | Xu Jintao <jintao.xu@amlogic.com> | 2016-10-08 11:14:13 (GMT) |
commit | 76818d38ef2b7e72f6602ef702a76bbae5b33c0a (patch) | |
tree | b5c41edde2ef804882a0e93a8aa1259a97a1561c | |
parent | c2d8ba873be740d5a263181d97d94c824c5e8d0a (diff) | |
download | hwcomposer-76818d38ef2b7e72f6602ef702a76bbae5b33c0a.zip hwcomposer-76818d38ef2b7e72f6602ef702a76bbae5b33c0a.tar.gz hwcomposer-76818d38ef2b7e72f6602ef702a76bbae5b33c0a.tar.bz2 |
PD#132697: OMX: OMX for android N
Change-Id: I9120c310b7ea3a193a7ebb1eed6d060e42436aa2
-rw-r--r-- | Android.mk | 2 | ||||
-rw-r--r-- | hwc2/common/devices/PhysicalDevice.cpp | 14 | ||||
-rw-r--r-- | hwc2/platforms/Android.mk | 3 | ||||
-rw-r--r-- | hwc2_old/Android.mk | 3 | ||||
-rw-r--r-- | tvp/Android.mk (renamed from hwc2_old/tvp/Android.mk) | 0 | ||||
-rw-r--r-- | tvp/OmxUtil.cpp (renamed from hwc2_old/tvp/OmxUtil.cpp) | 0 | ||||
-rw-r--r-- | tvp/OmxUtil.h (renamed from hwc2_old/tvp/OmxUtil.h) | 0 |
7 files changed, 21 insertions, 1 deletions
@@ -22,3 +22,5 @@ ifeq ($(USE_HWC2_CPP),true) else include $(LOCAL_PATH)/hwc2_old/Android.mk endif + +include $(LOCAL_ROOT_PATH)/tvp/Android.mk
\ No newline at end of file diff --git a/hwc2/common/devices/PhysicalDevice.cpp b/hwc2/common/devices/PhysicalDevice.cpp index cf6e12c..e5af910 100644 --- a/hwc2/common/devices/PhysicalDevice.cpp +++ b/hwc2/common/devices/PhysicalDevice.cpp @@ -7,6 +7,10 @@ #include <sys/ioctl.h> #include <Utils.h> +#include <tvp/OmxUtil.h> + +static int Amvideo_Handle = 0; + namespace android { namespace amlogic { @@ -549,6 +553,7 @@ bool PhysicalDevice::vsyncControl(bool enabled) { int32_t PhysicalDevice::validateDisplay(uint32_t* outNumTypes, uint32_t* outNumRequests) { HwcLayer* layer = NULL; + bool istvp = false; for (uint32_t i=0; i<mHwcLayers.size(); i++) { hwc2_layer_t layerId = mHwcLayers.keyAt(i); @@ -560,6 +565,10 @@ int32_t PhysicalDevice::validateDisplay(uint32_t* outNumTypes, if (layer->getBufferHandle()) { private_handle_t const* hnd = reinterpret_cast<private_handle_t const*>(layer->getBufferHandle()); + if (hnd->flags & private_handle_t::PRIV_FLAGS_VIDEO_OMX) { + set_omx_pts((char*)hnd->base, &Amvideo_Handle); + istvp = true; + } if (hnd->flags & private_handle_t::PRIV_FLAGS_VIDEO_OVERLAY) { mHwcLayersChangeRequest.add(layerId, layer); continue; @@ -598,6 +607,11 @@ int32_t PhysicalDevice::validateDisplay(uint32_t* outNumTypes, } } + if (istvp == false && Amvideo_Handle!=0) { + closeamvideo(); + Amvideo_Handle = 0; + } + if (mHwcLayersChangeRequest.size() > 0) { DTRACE("There are %d layer requests.", mHwcLayersChangeRequest.size()); *outNumRequests = mHwcLayersChangeRequest.size(); diff --git a/hwc2/platforms/Android.mk b/hwc2/platforms/Android.mk index b72ae37..b8d50da 100644 --- a/hwc2/platforms/Android.mk +++ b/hwc2/platforms/Android.mk @@ -36,6 +36,8 @@ LOCAL_SHARED_LIBRARIES := \ libsync \ libfbcnf +LOCAL_STATIC_LIBRARIES := libomxutil + LOCAL_C_INCLUDES := \ system/core \ system/core/libsync/include @@ -48,6 +50,7 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH) \ $(LOCAL_PATH)/../common/observers \ $(LOCAL_PATH)/../common/planes \ $(LOCAL_PATH)/../common/utils \ + $(LOCAL_PATH)/../.. \ $(LOCAL_PATH)/ LOCAL_KK=0 diff --git a/hwc2_old/Android.mk b/hwc2_old/Android.mk index 99072f6..1c31b80 100644 --- a/hwc2_old/Android.mk +++ b/hwc2_old/Android.mk @@ -45,7 +45,8 @@ LOCAL_C_INCLUDES += \ $(MESON_GRALLOC_DIR) LOCAL_C_INCLUDES += system/core/libion/include/ \ - system/core/libion/kernel-headers + system/core/libion/kernel-headers \ + $(LOCAL_PATH)/.. ifneq ($(WITH_LIBPLAYER_MODULE),false) LOCAL_SHARED_LIBRARIES += libamavutils_alsa diff --git a/hwc2_old/tvp/Android.mk b/tvp/Android.mk index 068106e..068106e 100644 --- a/hwc2_old/tvp/Android.mk +++ b/tvp/Android.mk diff --git a/hwc2_old/tvp/OmxUtil.cpp b/tvp/OmxUtil.cpp index 844e125..844e125 100644 --- a/hwc2_old/tvp/OmxUtil.cpp +++ b/tvp/OmxUtil.cpp diff --git a/hwc2_old/tvp/OmxUtil.h b/tvp/OmxUtil.h index 846c9aa..846c9aa 100644 --- a/hwc2_old/tvp/OmxUtil.h +++ b/tvp/OmxUtil.h |