Use GL to render preview.

To speed up the preview, we direct the decoder output to a
SurfaceTexture, then draw the texture to a surface. The media
rendering parameters (crop, black-border) are implemented
using different vertex coordinates. The color effects are
implemented using fragment shaders. Currently only three color
effects are implemented, but that's all the appplication uses.

Change-Id: If84439fee572ed37ea077749ef9f2bd4f78703e1
diff --git a/libvideoeditor/lvpp/PreviewPlayer.h b/libvideoeditor/lvpp/PreviewPlayer.h
index fd2e6d2..c6fb62b 100755
--- a/libvideoeditor/lvpp/PreviewPlayer.h
+++ b/libvideoeditor/lvpp/PreviewPlayer.h
@@ -28,6 +28,7 @@
 #include <utils/threads.h>
 #include "PreviewPlayerBase.h"
 #include "VideoEditorPreviewController.h"
+#include "NativeWindowRenderer.h"
 
 namespace android {
 
@@ -38,7 +39,7 @@
 struct MediaSource;
 
 struct PreviewPlayer : public PreviewPlayerBase {
-    PreviewPlayer();
+    PreviewPlayer(NativeWindowRenderer* renderer);
     ~PreviewPlayer();
 
     //Override baseclass methods
@@ -114,7 +115,8 @@
     status_t startAudioPlayer_l();
     bool mIsChangeSourceRequired;
 
-    PreviewRenderer *mVideoRenderer;
+    NativeWindowRenderer *mNativeWindowRenderer;
+    RenderInput *mVideoRenderer;
 
     int32_t mVideoWidth, mVideoHeight;
 
@@ -141,15 +143,10 @@
     bool mOverlayUpdateEventPending;
     bool mOverlayUpdateEventPosted;
 
-    MediaBuffer *mResizedVideoBuffer;
-    bool mVideoResizedOrCropped;
     M4xVSS_MediaRendering mRenderingMode;
     uint32_t mOutputVideoWidth;
     uint32_t mOutputVideoHeight;
 
-    int32_t mReportedWidth;  //docoder reported width
-    int32_t mReportedHeight; //docoder reported height
-
     uint32_t mStoryboardStartTimeMsec;
 
     bool mIsVideoSourceJpg;
@@ -163,8 +160,6 @@
 
     void setVideoPostProcessingNode(
                     M4VSS3GPP_VideoEffectType type, M4OSA_Bool enable);
-    M4OSA_ERR doVideoPostProcessing();
-    M4OSA_ERR doMediaRendering();
     void postProgressCallbackEvent_l();
     void onProgressCbEvent();
 
@@ -176,6 +171,8 @@
     status_t prepare_l();
     status_t prepareAsync_l();
 
+    void updateSizeToRender(sp<MetaData> meta);
+
     VideoEditorAudioPlayer  *mVeAudioPlayer;
 
     PreviewPlayer(const PreviewPlayer &);