PreviewPlayer.h revision fa31daff175709d2c58d61d1354daa9495696631
1643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi/* 2643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * Copyright (C) 2011 NXP Software 3643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 4643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * 5643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 6643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * you may not use this file except in compliance with the License. 7643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * You may obtain a copy of the License at 8643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * 9643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 10643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * 11643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 12643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 13643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * See the License for the specific language governing permissions and 15643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi * limitations under the License. 16643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi */ 17643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 18643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#ifndef PREVIEW_PLAYER_H_ 19643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 20643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#define PREVIEW_PLAYER_H_ 21643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 22643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include "NuHTTPDataSource.h" 23643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include "TimedEventQueue.h" 24643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include "VideoEditorAudioPlayer.h" 25643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 26643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include <media/MediaPlayerInterface.h> 27643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include <media/stagefright/DataSource.h> 28643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include <media/stagefright/OMXClient.h> 29643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include <media/stagefright/TimeSource.h> 30643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include <utils/threads.h> 31643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include <AwesomePlayer.h> 32643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#include "VideoEditorPreviewController.h" 33643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 34643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundarginamespace android { 35643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 36643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct AudioPlayer; 37643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct DataSource; 38643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct MediaBuffer; 39643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct MediaExtractor; 40643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct MediaSource; 41643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 42643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct PreviewPlayerRenderer : public RefBase { 43643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayerRenderer() {} 44643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 45643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi virtual void render(MediaBuffer *buffer) = 0; 46643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi virtual void render() = 0; 47643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi virtual void getBuffer(uint8_t **data, size_t *stride) = 0; 48643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 49643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargiprivate: 50643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayerRenderer(const PreviewPlayerRenderer &); 51643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayerRenderer &operator=(const PreviewPlayerRenderer &); 52643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi}; 53643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 54643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargistruct PreviewPlayer : public AwesomePlayer { 55643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayer(); 56643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi ~PreviewPlayer(); 57643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 58643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi //Override baseclass methods 59643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void reset(); 60643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 61643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t play(); 62643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 63643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void setISurface(const sp<ISurface> &isurface); 64643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 65643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t seekTo(int64_t timeUs); 66643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 67643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t getVideoDimensions(int32_t *width, int32_t *height) const; 68643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 69643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t suspend(); 70643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t resume(); 71fa31daff175709d2c58d61d1354daa9495696631Raghavender Palla void acquireLock(); 72fa31daff175709d2c58d61d1354daa9495696631Raghavender Palla void releaseLock(); 73643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 74643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t prepare(); 75643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource( 76643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi const char *uri, const KeyedVector<String8, String8> *headers); 77643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 78643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi //Added methods 7935cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi status_t loadEffectsSettings(M4VSS3GPP_EffectSettings* pEffectSettings, 80643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int nEffects); 81643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t loadAudioMixSettings(M4xVSS_AudioMixingSettings* pAudioMixSettings); 82643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setAudioMixPCMFileHandle(M4OSA_Context pAudioMixPCMFileHandle); 83643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setAudioMixStoryBoardParam(M4OSA_UInt32 audioMixStoryBoardTS, 84643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 currentMediaBeginCutTime, 85643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 currentMediaVolumeVol); 86643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 87643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setPlaybackBeginTime(uint32_t msec); 88643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setPlaybackEndTime(uint32_t msec); 89643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setStoryboardStartTime(uint32_t msec); 90643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setProgressCallbackInterval(uint32_t cbInterval); 91643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setMediaRenderingMode(M4xVSS_MediaRendering mode, 92643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VIDEOEDITING_VideoFrameSize outputVideoSize); 93643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 94643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t resetJniCallbackTimeStamp(); 95643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setImageClipProperties(uint32_t width, uint32_t height); 96643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t readFirstVideoFrame(); 97b2d6e0f74a12e5cce5b429e646172c63346346c3Santosh Madhava status_t getLastRenderedTimeMs(uint32_t *lastRenderedTimeMs); 981c97d9ab52a288d24ea54499de435277cc1a3d68Rajneesh Chowdury status_t setAudioPlayer(AudioPlayer *audioPlayer); 99643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 100643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargiprivate: 101643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi friend struct PreviewPlayerEvent; 102643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 103643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi enum { 104643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PLAYING = 1, 105643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi LOOPING = 2, 106643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi FIRST_FRAME = 4, 107643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PREPARING = 8, 108643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PREPARED = 16, 109643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi AT_EOS = 32, 110643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PREPARE_CANCELLED = 64, 111643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi CACHE_UNDERRUN = 128, 112643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi AUDIO_AT_EOS = 256, 113643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi VIDEO_AT_EOS = 512, 114643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi AUTO_LOOPING = 1024, 115643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi }; 116643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 117643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<ISurface> mISurface; 118643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 119643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void cancelPlayerEvents(bool keepBufferingGoing = false); 120643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource_l(const sp<MediaExtractor> &extractor); 121643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource_l( 122643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi const char *uri, const KeyedVector<String8, String8> *headers); 123643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void reset_l(); 124643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t play_l(); 125bfece17c8f63de4d4b686da50f8ecac2f6f8ec53Santosh Madhava status_t initRenderer_l(); 126643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t initAudioDecoder(); 127643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t initVideoDecoder(uint32_t flags = 0); 128643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void onVideoEvent(); 1291c97d9ab52a288d24ea54499de435277cc1a3d68Rajneesh Chowdury void onStreamDone(); 130643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t finishSetDataSource_l(); 131643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi static bool ContinuePreparation(void *cookie); 132643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void onPrepareAsyncEvent(); 133643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void finishAsyncPrepare_l(); 1345bc7fb407ce1bab13d4a4a67d34a1a3192ee3186Dheeraj Sharma status_t startAudioPlayer_l(); 1351c97d9ab52a288d24ea54499de435277cc1a3d68Rajneesh Chowdury bool mIsChangeSourceRequired; 136643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 137643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<PreviewPlayerRenderer> mVideoRenderer; 138643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 139643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mVideoWidth, mVideoHeight; 140643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 141643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi MediaBuffer *mLastVideoBuffer; 142643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 143643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi struct SuspensionState { 144643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi String8 mUri; 145643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi KeyedVector<String8, String8> mUriHeaders; 146643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<DataSource> mFileSource; 147643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 148643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mFlags; 149643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int64_t mPositionUs; 150643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 151643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void *mLastVideoFrame; 152643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi size_t mLastVideoFrameSize; 153643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mColorFormat; 154643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mVideoWidth, mVideoHeight; 155643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mDecodedWidth, mDecodedHeight; 156643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 157643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi SuspensionState() 158643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi : mLastVideoFrame(NULL) { 159643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } 160643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 161643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi ~SuspensionState() { 162643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi if (mLastVideoFrame) { 163643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi free(mLastVideoFrame); 164643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi mLastVideoFrame = NULL; 165643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } 166643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } 167643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } *mSuspensionState; 168643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 169643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi //Data structures used for audio and video effects 170643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VSS3GPP_EffectSettings* mEffectsSettings; 171643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4xVSS_AudioMixingSettings* mPreviewPlayerAudioMixSettings; 172643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_Context mAudioMixPCMFileHandle; 173643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 mAudioMixStoryBoardTS; 174643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 mCurrentMediaBeginCutTime; 175643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 mCurrentMediaVolumeValue; 176e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi M4OSA_UInt32 mCurrFramingEffectIndex; 177643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 178643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mNumberEffects; 179643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mPlayBeginTimeMsec; 180643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mPlayEndTimeMsec; 181643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint64_t mDecodedVideoTs; // timestamp of current decoded video frame buffer 182643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint64_t mDecVideoTsStoryBoard; // timestamp of frame relative to storyboard 183643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mCurrentVideoEffect; 184643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mProgressCbInterval; 185643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mNumberDecVideoFrames; // Counter of number of video frames decoded 186643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<TimedEventQueue::Event> mProgressCbEvent; 187643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mProgressCbEventPending; 188e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi sp<TimedEventQueue::Event> mOverlayUpdateEvent; 189e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi bool mOverlayUpdateEventPending; 190e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi bool mOverlayUpdateEventPosted; 191e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi 192643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi MediaBuffer *mResizedVideoBuffer; 193643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mVideoResizedOrCropped; 194643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4xVSS_MediaRendering mRenderingMode; 195643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mOutputVideoWidth; 196643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mOutputVideoHeight; 197643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 19835cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi int32_t mReportedWidth; //docoder reported width 19935cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi int32_t mReportedHeight; //docoder reported height 20035cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi 201643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mStoryboardStartTimeMsec; 202643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 203643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mIsVideoSourceJpg; 204643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mIsFiftiesEffectStarted; 205643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int64_t mImageFrameTimeUs; 206643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mStartNextPlayer; 207fa31daff175709d2c58d61d1354daa9495696631Raghavender Palla mutable Mutex mLockControl; 208643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 209643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VIFI_UInt8* mFrameRGBBuffer; 210643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VIFI_UInt8* mFrameYUVBuffer; 211643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 212643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void setVideoPostProcessingNode( 213643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VSS3GPP_VideoEffectType type, M4OSA_Bool enable); 214643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_ERR doVideoPostProcessing(); 215643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_ERR doMediaRendering(); 216643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void postProgressCallbackEvent_l(); 217643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void onProgressCbEvent(); 218643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 219e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi void postOverlayUpdateEvent_l(); 220e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi void onUpdateOverlayEvent(); 221e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi 222643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource_l_jpg(); 223643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 224643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t prepare_l(); 225643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t prepareAsync_l(); 226643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 2275bc7fb407ce1bab13d4a4a67d34a1a3192ee3186Dheeraj Sharma VideoEditorAudioPlayer *mVeAudioPlayer; 2285bc7fb407ce1bab13d4a4a67d34a1a3192ee3186Dheeraj Sharma 229643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayer(const PreviewPlayer &); 230643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayer &operator=(const PreviewPlayer &); 231643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi}; 232643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 233643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi} // namespace android 234643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 235643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#endif // PREVIEW_PLAYER_H_ 236643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 237