diff options
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h deleted file mode 100644 index 268628b..0000000 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2010 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 NUPLAYER_RENDERER_H_ - -#define NUPLAYER_RENDERER_H_ - -#include "NuPlayer.h" - -namespace android { - -struct ABuffer; - -struct NuPlayer::Renderer : public AHandler { - Renderer(const sp<MediaPlayerBase::AudioSink> &sink, - const sp<AMessage> ¬ify); - - void queueBuffer( - bool audio, - const sp<ABuffer> &buffer, - const sp<AMessage> ¬ifyConsumed); - - void queueEOS(bool audio, status_t finalResult); - - void flush(bool audio); - - void signalTimeDiscontinuity(); - - void signalAudioSinkChanged(); - - void pause(); - void resume(); - - enum { - kWhatEOS = 'eos ', - kWhatFlushComplete = 'fluC', - kWhatPosition = 'posi', - }; - -protected: - virtual ~Renderer(); - - virtual void onMessageReceived(const sp<AMessage> &msg); - -private: - enum { - kWhatDrainAudioQueue = 'draA', - kWhatDrainVideoQueue = 'draV', - kWhatQueueBuffer = 'queB', - kWhatQueueEOS = 'qEOS', - kWhatFlush = 'flus', - kWhatAudioSinkChanged = 'auSC', - kWhatPause = 'paus', - kWhatResume = 'resm', - }; - - struct QueueEntry { - sp<ABuffer> mBuffer; - sp<AMessage> mNotifyConsumed; - size_t mOffset; - status_t mFinalResult; - }; - - static const int64_t kMinPositionUpdateDelayUs; - - sp<MediaPlayerBase::AudioSink> mAudioSink; - sp<AMessage> mNotify; - List<QueueEntry> mAudioQueue; - List<QueueEntry> mVideoQueue; - uint32_t mNumFramesWritten; - - bool mDrainAudioQueuePending; - bool mDrainVideoQueuePending; - int32_t mAudioQueueGeneration; - int32_t mVideoQueueGeneration; - - int64_t mAnchorTimeMediaUs; - int64_t mAnchorTimeRealUs; - - Mutex mFlushLock; // protects the following 2 member vars. - bool mFlushingAudio; - bool mFlushingVideo; - - bool mHasAudio; - bool mHasVideo; - bool mSyncQueues; - - bool mPaused; - - int64_t mLastPositionUpdateUs; - int64_t mVideoLateByUs; - - bool onDrainAudioQueue(); - void postDrainAudioQueue(int64_t delayUs = 0); - - void onDrainVideoQueue(); - void postDrainVideoQueue(); - - void onQueueBuffer(const sp<AMessage> &msg); - void onQueueEOS(const sp<AMessage> &msg); - void onFlush(const sp<AMessage> &msg); - void onAudioSinkChanged(); - void onPause(); - void onResume(); - - void notifyEOS(bool audio, status_t finalResult); - void notifyFlushComplete(bool audio); - void notifyPosition(); - void notifyVideoLateBy(int64_t lateByUs); - - void flushQueue(List<QueueEntry> *queue); - bool dropBufferWhileFlushing(bool audio, const sp<AMessage> &msg); - void syncQueuesDone(); - - DISALLOW_EVIL_CONSTRUCTORS(Renderer); -}; - -} // namespace android - -#endif // NUPLAYER_RENDERER_H_ |