关键类图
2016-03-29 17:01:21 35 举报
关键类图是一种用于描述系统结构和关系的图形表示方法,它通过展示系统中各个类及其属性、方法和关联关系,帮助开发人员更好地理解系统的组成和功能。在关键类图中,每个类用一个矩形表示,类名位于矩形的顶部,属性和方法分别列在矩形的下方。类之间的关联关系用箭头表示,箭头的方向表示关联的方向。关键类图有助于开发人员在设计阶段发现潜在的问题,优化系统结构,提高代码的可读性和可维护性。
作者其他创作
大纲/内容
NuPlayer(: public AHandler)
void setUID(); void setDirver();void setDataSourceAsync();void prepareAsync();void setVideoSurfaceTextureAsync();void setAudioSink();void start(); pause(); resetAsync();......virtual void onMessageReceived();sp &getDecoder();void tryOpenAudioSinkForOffload();status_t instantiateDecoder();void notifyListener();handleFlushComplete();onStart(); onResume(); onPause();void flushDecoder(); void finishResume();void performSeek(); void performDecoderFlush();void onsourceNotify(); void queueDecoderShutdown();void sendSubtitleData(); void writeTrackInfo();......
NuPlayer::Renderer (: public AHandler)
int64_t kMinPositionUpdateDelayUs;sp mAudioSink; sp mNotify; Mutex mLock; uint32_t mFlags;List mAudioQueue; List mVIdeoQueue;uint32_t mNumFramesWritten; sp mVideoScheduler;bool mDrainAudioQueuePending; bool mDrainVideoQueuePending;int32_t mAudioQueueGeneration; int32_t mVideoQueueGeneration;Mutex mTimeLock; int64_t mAnchorTimeMediaUs; int64_t mAnchorTimeRealUs; ......bool mHasAudio; bool mHasVideo; int64_t mPauseStartedTimeRealUs;Mutex mFlushLock; bool mFlushingAudio; bool mFlushingVideo;bool mNotifyCompleteAudio; bool mNotifyCompleteVideo;bool mSyncQueues; bool mPaused; int64_t mPausePositionMediaTimeUs;bool mPaused; int64_t mPausePositionMediaTimeUs;bool mVideoSampleReceived; bool mVideoRenderingStarted;int32_t mVideoRenderingStartGeneration; int32_t mAudioRenderingStartGeneration;int64_t mLastPositionUpdateUs; in32_t mAudioOffloadPauseTimeOutGeneration;bool mAudioOffloadTornDown; audio_offload_info_t mCurrentOffloadInfo;PcmInfo mCurrentPcmInfo; PcmInfo AUDIO_PCMINFO_INITIALIZER; //PcmInfo内部类int32_t mTotalBuffersQueued; int32_t mLastAudioBufferDrained; sp mWakeLock;
MediaPlayerBase::AudioSink(: public RefBase)
NuPlayer::DecoderBase (: public AHandler)
sp mNotify;int32_t mBufferGeneration;sp mDecoderLooper;bool mRequestInputBuffersPending;
configure(); init(); setRenderer();getInputBuffers(); signalFlush(); signalResume();initiateShutdown(); getStats(); onMessageReceived(); onConfigure();onSetRenderer(); ......doRequestBuffers(); scheduleRequestBuffers();
AHandler(:public RefBase)
id();looper();
ALooper::handler_id mID;
enum FlushStatus
NuPlayer::CCDecoder (: public RefBase)
getTrackCount(); getTrackInfo(); selectTrack();isSelected(); decode(); display(); flush();isTrackValid(); getTrackIndex(); extractFromSEI();filterCCBuf();
NativeWindoeWrapper(:RefBase)
getNativeWindow();getSurfaceTextureClient();
sp mSurfaceTextureClient;//surface涉及到gui显示部分
NuPlayerDriver(:public MediaPlayerInterface)
Mutex mLock;Condition mCondition;//system/core/include/utils/Condition.h定义State mState;bool mIsAsyncPrepare; status_t mAsyncResult;bool mSetSurfaceInProgress;int64_t mDurationUs; int64_t mPositionsUs;bool mSeekInProgress; sp mLooper; sp mPlayer;sp mAudioSink;uint32_t mPlayerFlags;bool mAtEOS; bool mLooping; bool mAutoLoop;int64_t mStartupSeekTimeUs;
virtual status_t setUID();setDataSource();setVideoSurfaceTexture();prepare(); prepareAsync();start(); stop(); pause(); isPlaying();seekTo(); getCurrentPosition(); getDuration();reset(); setLooping(); playerType();invoke(); setAudioSink();notifyDuration(); notifySeekComplete();notifyListener(); notifyFlagsChanged();
VideoFrameScheduler(: public RefBase)
size_t kHistorySize; nsecs_t mVsyncTime; nsecs_t mVsyncPeriod;nsecs_t mVsncRefreshAt; nsecs_t mLastVsynctime;nsecs_t mTimeCorrection; PLL mPLL; //内部类,主要记录时间相关值sp mComposer;
void init(); void restart(); nsecs_t schedule();nsecs_t getVsyncPeriod(); void release();
audio_offload_info_t(/system/core/include/system/audio.h)
0 条评论
回复 删除
下一页