diff options
-rwxr-xr-x | libvideoeditor/lvpp/PreviewPlayer.cpp | 142 | ||||
-rwxr-xr-x | libvideoeditor/lvpp/PreviewPlayer.h | 16 |
2 files changed, 11 insertions, 147 deletions
diff --git a/libvideoeditor/lvpp/PreviewPlayer.cpp b/libvideoeditor/lvpp/PreviewPlayer.cpp index f2b82d9..78ca1cd 100755 --- a/libvideoeditor/lvpp/PreviewPlayer.cpp +++ b/libvideoeditor/lvpp/PreviewPlayer.cpp @@ -72,102 +72,6 @@ private: PreviewPlayerEvent &operator=(const PreviewPlayerEvent &); }; - -struct PreviewLocalRenderer : public PreviewPlayerRenderer { - - static PreviewLocalRenderer* initPreviewLocalRenderer ( - bool previewOnly, - OMX_COLOR_FORMATTYPE colorFormat, - const sp<Surface> &surface, - size_t displayWidth, size_t displayHeight, - size_t decodedWidth, size_t decodedHeight, - int32_t rotationDegrees = 0) - { - PreviewLocalRenderer* mLocalRenderer = new - PreviewLocalRenderer( - previewOnly, - colorFormat, - surface, - displayWidth, displayHeight, - decodedWidth, decodedHeight, - rotationDegrees); - - if ( mLocalRenderer->init(previewOnly, - colorFormat, surface, - displayWidth, displayHeight, - decodedWidth, decodedHeight, - rotationDegrees) != OK ) - { - delete mLocalRenderer; - return NULL; - } - return mLocalRenderer; - } - - virtual void render(MediaBuffer *buffer) { - render((const uint8_t *)buffer->data() + buffer->range_offset(), - buffer->range_length()); - } - - void render(const void *data, size_t size) { - mTarget->render(data, size, NULL); - } - void render() { - mTarget->renderYV12(); - } - void getBuffer(uint8_t **data, size_t *stride) { - mTarget->getBufferYV12(data, stride); - } - -protected: - virtual ~PreviewLocalRenderer() { - delete mTarget; - mTarget = NULL; - } - -private: - PreviewRenderer *mTarget; - - PreviewLocalRenderer( - bool previewOnly, - OMX_COLOR_FORMATTYPE colorFormat, - const sp<Surface> &surface, - size_t displayWidth, size_t displayHeight, - size_t decodedWidth, size_t decodedHeight, - int32_t rotationDegrees = 0) - : mTarget(NULL) { - } - - - int init( - bool previewOnly, - OMX_COLOR_FORMATTYPE colorFormat, - const sp<Surface> &surface, - size_t displayWidth, size_t displayHeight, - size_t decodedWidth, size_t decodedHeight, - int32_t rotationDegrees = 0); - - PreviewLocalRenderer(const PreviewLocalRenderer &); - PreviewLocalRenderer &operator=(const PreviewLocalRenderer &);; -}; - -int PreviewLocalRenderer::init( - bool previewOnly, - OMX_COLOR_FORMATTYPE colorFormat, - const sp<Surface> &surface, - size_t displayWidth, size_t displayHeight, - size_t decodedWidth, size_t decodedHeight, - int32_t rotationDegrees) { - - mTarget = PreviewRenderer::CreatePreviewRenderer ( - colorFormat, surface, displayWidth, displayHeight, - decodedWidth, decodedHeight, rotationDegrees); - if (mTarget == M4OSA_NULL) { - return UNKNOWN_ERROR; - } - return OK; -} - PreviewPlayer::PreviewPlayer() : PreviewPlayerBase(), mCurrFramingEffectIndex(0) , @@ -177,7 +81,6 @@ PreviewPlayer::PreviewPlayer() mFrameYUVBuffer(NULL){ mVideoRenderer = NULL; - mLastVideoBuffer = NULL; mEffectsSettings = NULL; mVeAudioPlayer = NULL; mAudioMixStoryBoardTS = 0; @@ -232,8 +135,7 @@ PreviewPlayer::~PreviewPlayer() { mResizedVideoBuffer = NULL; } - mVideoRenderer.clear(); - mVideoRenderer = NULL; + delete mVideoRenderer; } void PreviewPlayer::cancelPlayerEvents(bool keepBufferingGoing) { @@ -401,11 +303,6 @@ void PreviewPlayer::reset_l() { //delete mAudioPlayer; mAudioPlayer = NULL; - if (mLastVideoBuffer) { - mLastVideoBuffer->release(); - mLastVideoBuffer = NULL; - } - if (mVideoBuffer) { mVideoBuffer->release(); mVideoBuffer = NULL; @@ -768,12 +665,12 @@ status_t PreviewPlayer::initRenderer_l() { // allocate their buffers in local address space. if(mVideoRenderer == NULL) { - mVideoRenderer = PreviewLocalRenderer:: initPreviewLocalRenderer ( - false, // previewOnly + mVideoRenderer = PreviewRenderer::CreatePreviewRenderer( OMX_COLOR_FormatYUV420Planar, mSurface, mOutputVideoWidth, mOutputVideoHeight, - mOutputVideoWidth, mOutputVideoHeight); + mOutputVideoWidth, mOutputVideoHeight, + 0); if ( mVideoRenderer == NULL ) { @@ -892,7 +789,6 @@ status_t PreviewPlayer::initVideoDecoder(uint32_t flags) { void PreviewPlayer::onVideoEvent() { uint32_t i=0; - bool bAppliedVideoEffect = false; M4OSA_ERR err1 = M4NO_ERROR; int64_t imageFrameTimeUs = 0; @@ -913,11 +809,6 @@ void PreviewPlayer::onVideoEvent() { int64_t timeStartUs = ts_st->getRealTimeUs(); if (mSeeking != NO_SEEK) { - if (mLastVideoBuffer) { - mLastVideoBuffer->release(); - mLastVideoBuffer = NULL; - } - if(mAudioSource != NULL) { @@ -1113,11 +1004,7 @@ void PreviewPlayer::onVideoEvent() { // If timestamp exceeds endCutTime of clip, donot render if((timeUs/1000) > mPlayEndTimeMsec) { - if (mLastVideoBuffer) { - mLastVideoBuffer->release(); - mLastVideoBuffer = NULL; - } - mLastVideoBuffer = mVideoBuffer; + mVideoBuffer->release(); mVideoBuffer = NULL; mFlags |= VIDEO_AT_EOS; mFlags |= AUDIO_AT_EOS; @@ -1199,14 +1086,9 @@ void PreviewPlayer::onVideoEvent() { err1 = doVideoPostProcessing(); if(err1 != M4NO_ERROR) { LOGE("doVideoPostProcessing returned err"); - bAppliedVideoEffect = false; - } - else { - bAppliedVideoEffect = true; } } else { - bAppliedVideoEffect = false; if(mRenderingMode != MEDIA_RENDERING_INVALID) { // No effects to be applied, but media rendering to be done err1 = doMediaRendering(); @@ -1220,15 +1102,10 @@ void PreviewPlayer::onVideoEvent() { if (mVideoRenderer != NULL) { LOGV("mVideoRenderer CALL render()"); - mVideoRenderer->render(); - } - - if (mLastVideoBuffer) { - mLastVideoBuffer->release(); - mLastVideoBuffer = NULL; + mVideoRenderer->renderYV12(); } - mLastVideoBuffer = mVideoBuffer; + mVideoBuffer->release(); mVideoBuffer = NULL; // Post progress callback based on callback interval set @@ -1510,7 +1387,7 @@ M4OSA_ERR PreviewPlayer::doMediaRendering() { uint8_t* outBuffer; size_t outBufferStride = 0; - mVideoRenderer->getBuffer(&outBuffer, &outBufferStride); + mVideoRenderer->getBufferYV12(&outBuffer, &outBufferStride); bufferOffset = index*frameSize; inBuffer = (M4OSA_UInt8 *)mVideoBuffer->data()+ @@ -1712,7 +1589,8 @@ M4OSA_ERR PreviewPlayer::doVideoPostProcessing() { postProcessParams.overlayFrameRGBBuffer = mFrameRGBBuffer; postProcessParams.overlayFrameYUVBuffer = mFrameYUVBuffer; - mVideoRenderer->getBuffer(&(postProcessParams.pOutBuffer), &(postProcessParams.outBufferStride)); + mVideoRenderer->getBufferYV12(&(postProcessParams.pOutBuffer), + &(postProcessParams.outBufferStride)); err = applyEffectsAndRenderingMode(&postProcessParams, mReportedWidth, mReportedHeight); return err; diff --git a/libvideoeditor/lvpp/PreviewPlayer.h b/libvideoeditor/lvpp/PreviewPlayer.h index ccd88a7..fd2e6d2 100755 --- a/libvideoeditor/lvpp/PreviewPlayer.h +++ b/libvideoeditor/lvpp/PreviewPlayer.h @@ -37,18 +37,6 @@ struct MediaBuffer; struct MediaExtractor; struct MediaSource; -struct PreviewPlayerRenderer : public RefBase { - PreviewPlayerRenderer() {} - - virtual void render(MediaBuffer *buffer) = 0; - virtual void render() = 0; - virtual void getBuffer(uint8_t **data, size_t *stride) = 0; - -private: - PreviewPlayerRenderer(const PreviewPlayerRenderer &); - PreviewPlayerRenderer &operator=(const PreviewPlayerRenderer &); -}; - struct PreviewPlayer : public PreviewPlayerBase { PreviewPlayer(); ~PreviewPlayer(); @@ -126,12 +114,10 @@ private: status_t startAudioPlayer_l(); bool mIsChangeSourceRequired; - sp<PreviewPlayerRenderer> mVideoRenderer; + PreviewRenderer *mVideoRenderer; int32_t mVideoWidth, mVideoHeight; - MediaBuffer *mLastVideoBuffer; - //Data structures used for audio and video effects M4VSS3GPP_EffectSettings* mEffectsSettings; M4xVSS_AudioMixingSettings* mPreviewPlayerAudioMixSettings; |