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 &);