hwc/overlay: Video on 4k2k external, 4k2k rotation.
-Add support for Video via overlay on 4k2k external panel.
-Add support for rotating videos on 4k2k panels. We use
pre-rotation in hwc to rotate a video into a single buffer,
irrespective of panel size. Then this buffer is fed to MDP.
Rotator objects are managed by the new RotMgr.
-Cleaup mdpcomp and overlay.
Change-Id: Ifb08534747e8e18b6c58dd8a3e1a9947409100f1
diff --git a/libhwcomposer/hwc_uevents.cpp b/libhwcomposer/hwc_uevents.cpp
index 752aaa2..d27128e 100644
--- a/libhwcomposer/hwc_uevents.cpp
+++ b/libhwcomposer/hwc_uevents.cpp
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include "hwc_utils.h"
#include "hwc_fbupdate.h"
+#include "hwc_video.h"
#include "hwc_copybit.h"
#include "comptype.h"
#include "external.h"
@@ -115,6 +116,11 @@
delete ctx->mFBUpdate[dpy];
ctx->mFBUpdate[dpy] = NULL;
}
+ if(ctx->mVidOv[dpy]) {
+ Locker::Autolock _l(ctx->mExtSetLock);
+ delete ctx->mVidOv[dpy];
+ ctx->mVidOv[dpy] = NULL;
+ }
if(ctx->mCopyBit[dpy]){
Locker::Autolock _l(ctx->mExtSetLock);
delete ctx->mCopyBit[dpy];
@@ -134,6 +140,8 @@
ctx->mExtDisplay->processUEventOnline(udata);
ctx->mFBUpdate[dpy] =
IFBUpdate::getObject(ctx->dpyAttr[dpy].xres, dpy);
+ ctx->mVidOv[dpy] =
+ IVideoOverlay::getObject(ctx->dpyAttr[dpy].xres, dpy);
ctx->dpyAttr[dpy].isPause = false;
if(usecopybit)
ctx->mCopyBit[dpy] = new CopyBit();