PreviewPlayer.h revision bfece17c8f63de4d4b686da50f8ecac2f6f8ec53
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(); 71643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 72643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t prepare(); 73643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource( 74643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi const char *uri, const KeyedVector<String8, String8> *headers); 75643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 76643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi //Added methods 7735cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi status_t loadEffectsSettings(M4VSS3GPP_EffectSettings* pEffectSettings, 78643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int nEffects); 79643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t loadAudioMixSettings(M4xVSS_AudioMixingSettings* pAudioMixSettings); 80643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setAudioMixPCMFileHandle(M4OSA_Context pAudioMixPCMFileHandle); 81643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setAudioMixStoryBoardParam(M4OSA_UInt32 audioMixStoryBoardTS, 82643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 currentMediaBeginCutTime, 83643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 currentMediaVolumeVol); 84643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 85643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setPlaybackBeginTime(uint32_t msec); 86643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setPlaybackEndTime(uint32_t msec); 87643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setStoryboardStartTime(uint32_t msec); 88643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setProgressCallbackInterval(uint32_t cbInterval); 89643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setMediaRenderingMode(M4xVSS_MediaRendering mode, 90643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VIDEOEDITING_VideoFrameSize outputVideoSize); 91643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 92643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t resetJniCallbackTimeStamp(); 93643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setImageClipProperties(uint32_t width, uint32_t height); 94643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t readFirstVideoFrame(); 95643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 96643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 97643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargiprivate: 98643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi friend struct PreviewPlayerEvent; 99643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 100643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi enum { 101643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PLAYING = 1, 102643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi LOOPING = 2, 103643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi FIRST_FRAME = 4, 104643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PREPARING = 8, 105643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PREPARED = 16, 106643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi AT_EOS = 32, 107643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PREPARE_CANCELLED = 64, 108643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi CACHE_UNDERRUN = 128, 109643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi AUDIO_AT_EOS = 256, 110643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi VIDEO_AT_EOS = 512, 111643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi AUTO_LOOPING = 1024, 112643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi }; 113643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 114643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<ISurface> mISurface; 115643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 116643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void cancelPlayerEvents(bool keepBufferingGoing = false); 117643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource_l(const sp<MediaExtractor> &extractor); 118643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource_l( 119643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi const char *uri, const KeyedVector<String8, String8> *headers); 120643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void reset_l(); 121643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void partial_reset_l(); 122643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t play_l(); 123bfece17c8f63de4d4b686da50f8ecac2f6f8ec53Santosh Madhava status_t initRenderer_l(); 124643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t initAudioDecoder(); 125643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t initVideoDecoder(uint32_t flags = 0); 126643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void onVideoEvent(); 127643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t finishSetDataSource_l(); 128643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi static bool ContinuePreparation(void *cookie); 129643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void onPrepareAsyncEvent(); 130643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void finishAsyncPrepare_l(); 131643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 132643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<PreviewPlayerRenderer> mVideoRenderer; 133643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 134643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mVideoWidth, mVideoHeight; 135643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 136643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi MediaBuffer *mLastVideoBuffer; 137643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 138643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi struct SuspensionState { 139643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi String8 mUri; 140643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi KeyedVector<String8, String8> mUriHeaders; 141643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<DataSource> mFileSource; 142643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 143643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mFlags; 144643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int64_t mPositionUs; 145643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 146643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void *mLastVideoFrame; 147643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi size_t mLastVideoFrameSize; 148643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mColorFormat; 149643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mVideoWidth, mVideoHeight; 150643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int32_t mDecodedWidth, mDecodedHeight; 151643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 152643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi SuspensionState() 153643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi : mLastVideoFrame(NULL) { 154643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } 155643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 156643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi ~SuspensionState() { 157643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi if (mLastVideoFrame) { 158643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi free(mLastVideoFrame); 159643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi mLastVideoFrame = NULL; 160643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } 161643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } 162643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi } *mSuspensionState; 163643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 164643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi //Data structures used for audio and video effects 165643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VSS3GPP_EffectSettings* mEffectsSettings; 166643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4xVSS_AudioMixingSettings* mPreviewPlayerAudioMixSettings; 167643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_Context mAudioMixPCMFileHandle; 168643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 mAudioMixStoryBoardTS; 169643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 mCurrentMediaBeginCutTime; 170643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_UInt32 mCurrentMediaVolumeValue; 171e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi M4OSA_UInt32 mCurrFramingEffectIndex; 172643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 173643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mNumberEffects; 174643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mPlayBeginTimeMsec; 175643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mPlayEndTimeMsec; 176643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint64_t mDecodedVideoTs; // timestamp of current decoded video frame buffer 177643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint64_t mDecVideoTsStoryBoard; // timestamp of frame relative to storyboard 178643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mCurrentVideoEffect; 179643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mProgressCbInterval; 180643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mNumberDecVideoFrames; // Counter of number of video frames decoded 181643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi sp<TimedEventQueue::Event> mProgressCbEvent; 182643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mProgressCbEventPending; 183e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi sp<TimedEventQueue::Event> mOverlayUpdateEvent; 184e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi bool mOverlayUpdateEventPending; 185e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi bool mOverlayUpdateEventPosted; 186e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi 187643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi MediaBuffer *mResizedVideoBuffer; 188643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mVideoResizedOrCropped; 189643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4xVSS_MediaRendering mRenderingMode; 190643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mOutputVideoWidth; 191643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mOutputVideoHeight; 192643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 19335cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi int32_t mReportedWidth; //docoder reported width 19435cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi int32_t mReportedHeight; //docoder reported height 19535cb2de64cb6482a08f446e80733e7d344a0dcacDharmaray Kundargi 196643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi uint32_t mStoryboardStartTimeMsec; 197643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 198643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mIsVideoSourceJpg; 199643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mIsFiftiesEffectStarted; 200643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi int64_t mImageFrameTimeUs; 201643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi bool mStartNextPlayer; 202643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 203643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VIFI_UInt8* mFrameRGBBuffer; 204643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VIFI_UInt8* mFrameYUVBuffer; 205643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 206643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void setVideoPostProcessingNode( 207643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4VSS3GPP_VideoEffectType type, M4OSA_Bool enable); 208643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_ERR doVideoPostProcessing(); 209643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi M4OSA_ERR doMediaRendering(); 210643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void postProgressCallbackEvent_l(); 211643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi void onProgressCbEvent(); 212643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 213e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi void postOverlayUpdateEvent_l(); 214e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi void onUpdateOverlayEvent(); 215e6c0750cd2927967f93a8811954f889d23fadb6eDharmaray Kundargi 216643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t setDataSource_l_jpg(); 217643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 218643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t prepare_l(); 219643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi status_t prepareAsync_l(); 220643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 221643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayer(const PreviewPlayer &); 222643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi PreviewPlayer &operator=(const PreviewPlayer &); 223643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi}; 224643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 225643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi} // namespace android 226643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 227643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi#endif // PREVIEW_PLAYER_H_ 228643290dc4c83da23b1b8ff4ed71118203274bb15Dharmaray Kundargi 229