summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/lvpp/PreviewPlayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'libvideoeditor/lvpp/PreviewPlayer.h')
-rwxr-xr-xlibvideoeditor/lvpp/PreviewPlayer.h298
1 files changed, 0 insertions, 298 deletions
diff --git a/libvideoeditor/lvpp/PreviewPlayer.h b/libvideoeditor/lvpp/PreviewPlayer.h
deleted file mode 100755
index 5a13b58..0000000
--- a/libvideoeditor/lvpp/PreviewPlayer.h
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef PREVIEW_PLAYER_H_
-
-#define PREVIEW_PLAYER_H_
-
-#include "TimedEventQueue.h"
-#include "VideoEditorAudioPlayer.h"
-
-#include <media/MediaPlayerInterface.h>
-#include <media/stagefright/OMXClient.h>
-#include <media/stagefright/TimeSource.h>
-#include <utils/threads.h>
-#include "NativeWindowRenderer.h"
-
-namespace android {
-
-struct VideoEditorAudioPlayer;
-struct MediaExtractor;
-
-struct PreviewPlayer {
- PreviewPlayer(NativeWindowRenderer* renderer);
- ~PreviewPlayer();
-
- void setListener(const wp<MediaPlayerBase> &listener);
- void reset();
-
- status_t play();
- status_t pause();
-
- bool isPlaying() const;
- void setSurface(const sp<Surface> &surface);
- void setSurfaceTexture(const sp<IGraphicBufferProducer> &bufferProducer);
- status_t seekTo(int64_t timeUs);
-
- status_t getVideoDimensions(int32_t *width, int32_t *height) const;
-
-
- // FIXME: Sync between ...
- void acquireLock();
- void releaseLock();
-
- status_t prepare();
- status_t prepareAsync();
- status_t setDataSource(const char *path);
- status_t setDataSource(const sp<IStreamSource> &source);
-
- void setAudioSink(const sp<MediaPlayerBase::AudioSink> &audioSink);
- status_t setLooping(bool shouldLoop);
- status_t getDuration(int64_t *durationUs);
- status_t getPosition(int64_t *positionUs);
-
- uint32_t getSourceSeekFlags() const;
-
- void postAudioEOS(int64_t delayUs = 0ll);
- void postAudioSeekComplete();
-
- status_t loadEffectsSettings(M4VSS3GPP_EffectSettings* pEffectSettings,
- int nEffects);
- status_t loadAudioMixSettings(M4xVSS_AudioMixingSettings* pAudioMixSettings);
- status_t setAudioMixPCMFileHandle(M4OSA_Context pAudioMixPCMFileHandle);
- status_t setAudioMixStoryBoardParam(M4OSA_UInt32 audioMixStoryBoardTS,
- M4OSA_UInt32 currentMediaBeginCutTime,
- M4OSA_UInt32 currentMediaVolumeVol);
-
- status_t setPlaybackBeginTime(uint32_t msec);
- status_t setPlaybackEndTime(uint32_t msec);
- status_t setStoryboardStartTime(uint32_t msec);
- status_t setProgressCallbackInterval(uint32_t cbInterval);
- status_t setMediaRenderingMode(M4xVSS_MediaRendering mode,
- M4VIDEOEDITING_VideoFrameSize outputVideoSize);
-
- status_t resetJniCallbackTimeStamp();
- status_t setImageClipProperties(uint32_t width, uint32_t height);
- status_t readFirstVideoFrame();
- status_t getLastRenderedTimeMs(uint32_t *lastRenderedTimeMs);
- status_t setAudioPlayer(VideoEditorAudioPlayer *audioPlayer);
-
-private:
- enum {
- PLAYING = 1,
- LOOPING = 2,
- FIRST_FRAME = 4,
- PREPARING = 8,
- PREPARED = 16,
- AT_EOS = 32,
- PREPARE_CANCELLED = 64,
- CACHE_UNDERRUN = 128,
- AUDIO_AT_EOS = 256,
- VIDEO_AT_EOS = 512,
- AUTO_LOOPING = 1024,
- INFORMED_AV_EOS = 2048,
-
- // We are basically done preparing but are currently buffering
- // sufficient data to begin playback and finish the preparation phase
- // for good.
- PREPARING_CONNECTED = 2048,
-
- // We're triggering a single video event to display the first frame
- // after the seekpoint.
- SEEK_PREVIEW = 4096,
-
- AUDIO_RUNNING = 8192,
- AUDIOPLAYER_STARTED = 16384,
-
- INCOGNITO = 32768,
- };
-
- mutable Mutex mLock;
-
- OMXClient mClient;
- TimedEventQueue mQueue;
- bool mQueueStarted;
- wp<MediaPlayerBase> mListener;
-
- sp<Surface> mSurface;
- sp<ANativeWindow> mNativeWindow;
- sp<MediaPlayerBase::AudioSink> mAudioSink;
-
- SystemTimeSource mSystemTimeSource;
- TimeSource *mTimeSource;
-
- String8 mUri;
-
- sp<MediaSource> mVideoTrack;
- sp<MediaSource> mVideoSource;
- bool mVideoRendererIsPreview;
-
- sp<MediaSource> mAudioTrack;
- sp<MediaSource> mAudioSource;
- VideoEditorAudioPlayer *mAudioPlayer;
- int64_t mDurationUs;
-
- int32_t mDisplayWidth;
- int32_t mDisplayHeight;
-
- uint32_t mFlags;
- uint32_t mExtractorFlags;
-
- int64_t mTimeSourceDeltaUs;
- int64_t mVideoTimeUs;
-
- enum SeekType {
- NO_SEEK,
- SEEK,
- SEEK_VIDEO_ONLY
- };
- SeekType mSeeking;
-
- bool mSeekNotificationSent;
- int64_t mSeekTimeUs;
-
- int64_t mBitrate; // total bitrate of the file (in bps) or -1 if unknown.
-
- bool mWatchForAudioSeekComplete;
- bool mWatchForAudioEOS;
-
- sp<TimedEventQueue::Event> mVideoEvent;
- bool mVideoEventPending;
- sp<TimedEventQueue::Event> mStreamDoneEvent;
- bool mStreamDoneEventPending;
- sp<TimedEventQueue::Event> mCheckAudioStatusEvent;
- bool mAudioStatusEventPending;
- sp<TimedEventQueue::Event> mVideoLagEvent;
- bool mVideoLagEventPending;
-
- sp<TimedEventQueue::Event> mAsyncPrepareEvent;
- Condition mPreparedCondition;
- bool mIsAsyncPrepare;
- status_t mPrepareResult;
- status_t mStreamDoneStatus;
-
- MediaBuffer *mVideoBuffer;
- int64_t mLastVideoTimeUs;
- ARect mCropRect;
- int32_t mGivenWidth, mGivenHeight;
-
-
- bool mIsChangeSourceRequired;
-
- NativeWindowRenderer *mNativeWindowRenderer;
- RenderInput *mVideoRenderer;
-
- int32_t mVideoWidth, mVideoHeight;
-
- //Data structures used for audio and video effects
- M4VSS3GPP_EffectSettings* mEffectsSettings;
- M4xVSS_AudioMixingSettings* mPreviewPlayerAudioMixSettings;
- M4OSA_Context mAudioMixPCMFileHandle;
- M4OSA_UInt32 mAudioMixStoryBoardTS;
- M4OSA_UInt32 mCurrentMediaBeginCutTime;
- M4OSA_UInt32 mCurrentMediaVolumeValue;
- M4OSA_UInt32 mCurrFramingEffectIndex;
-
- uint32_t mNumberEffects;
- uint32_t mPlayBeginTimeMsec;
- uint32_t mPlayEndTimeMsec;
- uint64_t mDecodedVideoTs; // timestamp of current decoded video frame buffer
- uint64_t mDecVideoTsStoryBoard; // timestamp of frame relative to storyboard
- uint32_t mCurrentVideoEffect;
- uint32_t mProgressCbInterval;
- uint32_t mNumberDecVideoFrames; // Counter of number of video frames decoded
- sp<TimedEventQueue::Event> mProgressCbEvent;
- bool mProgressCbEventPending;
- sp<TimedEventQueue::Event> mOverlayUpdateEvent;
- bool mOverlayUpdateEventPending;
- bool mOverlayUpdateEventPosted;
-
- M4xVSS_MediaRendering mRenderingMode;
- uint32_t mOutputVideoWidth;
- uint32_t mOutputVideoHeight;
-
- uint32_t mStoryboardStartTimeMsec;
-
- bool mIsVideoSourceJpg;
- bool mIsFiftiesEffectStarted;
- int64_t mImageFrameTimeUs;
- bool mStartNextPlayer;
- mutable Mutex mLockControl;
-
- M4VIFI_UInt8* mFrameRGBBuffer;
- M4VIFI_UInt8* mFrameYUVBuffer;
-
- void cancelPlayerEvents_l(bool updateProgressCb = false);
- status_t setDataSource_l(const sp<MediaExtractor> &extractor);
- status_t setDataSource_l(const char *path);
- void setNativeWindow_l(const sp<ANativeWindow> &native);
- void reset_l();
- void clear_l();
- status_t play_l();
- status_t pause_l(bool at_eos = false);
- status_t initRenderer_l();
- status_t initAudioDecoder_l();
- status_t initVideoDecoder_l(uint32_t flags = 0);
- void notifyVideoSize_l();
- void notifyListener_l(int msg, int ext1 = 0, int ext2 = 0);
- void onVideoEvent();
- void onVideoLagUpdate();
- void onStreamDone();
- void onCheckAudioStatus();
- void onPrepareAsyncEvent();
-
- void finishAsyncPrepare_l();
- void abortPrepare(status_t err);
-
- status_t startAudioPlayer_l();
- void setVideoSource(const sp<MediaSource>& source);
- status_t finishSetDataSource_l();
- void setAudioSource(const sp<MediaSource>& source);
-
- status_t seekTo_l(int64_t timeUs);
- void seekAudioIfNecessary_l();
- void finishSeekIfNecessary(int64_t videoTimeUs);
-
- void postCheckAudioStatusEvent_l(int64_t delayUs);
- void postVideoLagEvent_l();
- void postStreamDoneEvent_l(status_t status);
- void postVideoEvent_l(int64_t delayUs = -1);
- void setVideoPostProcessingNode(
- M4VSS3GPP_VideoEffectType type, M4OSA_Bool enable);
- void postProgressCallbackEvent_l();
- void shutdownVideoDecoder_l();
- void onProgressCbEvent();
-
- void postOverlayUpdateEvent_l();
- void onUpdateOverlayEvent();
-
- status_t setDataSource_l_jpg();
- status_t prepare_l();
- status_t prepareAsync_l();
- void updateBatteryUsage_l();
- void updateSizeToRender(sp<MetaData> meta);
-
- void setDuration_l(int64_t durationUs);
- void setPosition_l(int64_t timeUs);
-
- PreviewPlayer(const PreviewPlayer &);
- PreviewPlayer &operator=(const PreviewPlayer &);
-};
-
-} // namespace android
-
-#endif // PREVIEW_PLAYER_H_
-