[Android] Client->NuPlayer

@startuml

left to right direction

package libmediaplayerservice{

    class Client{
        <font color="#cc00cc" size=20> 1 </font>void MediaPlayerService::Client::disconnect()<font color="brown" size=20> 1 </font>
        <font color="#cc00cc" size=20> 2 </font>status_t MediaPlayerService::Client::reset()<font color="brown" size=20> 1 </font>
    }

    class NuPlayerDriver{
        <font color="brown" size=20> 1 </font>status_t NuPlayerDriver::reset()<font color="blue" size=20> 1 </font>
    }

    class NuPlayer{
        <font color="blue" size=20> 1 </font>void NuPlayer::resetAsync()<font color="blue" size=20> 2,4 </font>
        <font color="blue" size=20> 2 </font>void NuPlayer::performDecoderFlush(FlushCommand audio, FlushCommand video)<font color="blue" size=20> 3 </font>
        <font color="blue" size=20> 3 </font>void NuPlayer::flushDecoder(bool audio, bool needShutdown=FLUSH_CMD_SHUTDOWN)<font color="green" size=20> 1 </font>
        <font color="blue" size=20> 4 </font>void NuPlayer::performReset()
        <font color="blue" size=20> 5 </font>void NuPlayer::handleFlushComplete(bool audio, bool isDecoder)<font color="green" size=20> 2 </font>
    }

    class AudioSink{
        <font color="green"> responsible for audio output, if use DecoderPassThrough as audio decoder
        <font color="green"> this will use audiotrack passthrough mode, otherwise , this will used to output pcm
    }

    class Source{
        <font color="cyan"> NuPlayerSource.h
    }

    class HTTPLiveSource{
        <font color="cyan"> gui/Surface.h
        <font color="green"> hls use this , eg.NuPlayer: setDataSourceAsync HTTPLiveSource http://127.0.0.1:4455/src7/vod_0.m3u8

    }

    class Surface{
        <font color="cyan"> gui/Surface.h
    }

    class DecoderPassThrough{
       <font color="cyan"> NuPlayerDecoderPassThrough.h
    }

    class Decoder{
        <font color="cyan"> NuPlayerDecoder.h
        <font color="green" size=20> 1 </font>void NuPlayer::Decoder::onFlush()<font color="blue" size=20> 5 </font>
        <font color="green" size=20> 2 </font>void NuPlayer::Decoder::onShutdown(bool notifyComplete)<font color="red" size=20> 1 </font>
    }

    class CCDecoder{
        <font color="cyan"> NuPlayerCCDecoder.h
        <font color="green">responsible for codec info parse
    }

    class Renderer{
        <font color="cyan"> NuPlayerRenderer.h
        <font color="green"> responsible for A/V sync
    }

}

package libaudioclient{
    class AudioTrack{
    }
}

package libstagefright{
    class MediaCodec{
        <font color="green">responsible for hardware codec
        <font color="red" size=20> 1 </font>status_t MediaCodec::release()<font color="purple" size=20> 1 </font>
    }
}

package mediaserver{
    class mediaserverMediaCodec{
        <font color="purple" size=20> 1 </font>status_t MediaCodec::OnShutdown(const Message& msg)<font color="purple" size=20> 2 </font>
        <font color="purple" size=20> 2 </font>status_t MediaCodec::Stop(bool keepComponentAllocated, bool byDisposing)<font color="cyan" size=20> 1 </font>
    }
    class ResourceCenter{
        <font color="cyan" size=20> 1 </font>void ResourceCenter::DeallocateAll()
    }
}

NuPlayerDriver --> NuPlayer
AudioSink --> AudioTrack
NuPlayer --> NuPlayerDriver
NuPlayer --> AudioSink
Client --> NuPlayerDriver
NuPlayer -->  Source
NuPlayer -->  Surface
NuPlayer --> "video/audio" Decoder
NuPlayer --> "audio" DecoderPassThrough
Decoder -->  CCDecoder
Decoder -->  MediaCodec
Decoder --> "notify" NuPlayer
NuPlayer --> Renderer
MediaCodec --> mediaserverMediaCodec
mediaserverMediaCodec --> ResourceCenter
Source <|.. HTTPLiveSource


@enduml

相关推荐

  1. [Android] SDK->NuPlayer

    2024-02-08 15:08:01       25 阅读
  2. [Android] Client->NuPlayer

    2024-02-08 15:08:01       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-08 15:08:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-08 15:08:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-08 15:08:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-08 15:08:01       18 阅读

热门阅读

  1. work day7

    2024-02-08 15:08:01       30 阅读
  2. 【mybatis自动治愈插件】

    2024-02-08 15:08:01       31 阅读
  3. LeetCode 二叉树/n叉树的解题思路

    2024-02-08 15:08:01       37 阅读
  4. Mockito测试框架中的方法详解

    2024-02-08 15:08:01       32 阅读
  5. C语言中大小写字母转换详解

    2024-02-08 15:08:01       34 阅读
  6. 【六】CocosCreator-CCObject.js源码分析

    2024-02-08 15:08:01       30 阅读
  7. 最全软件系统架构演变!

    2024-02-08 15:08:01       35 阅读
  8. 精通Python中的正则表达式

    2024-02-08 15:08:01       33 阅读
  9. 贪心算法入门题(算法村第十七关青铜挑战)

    2024-02-08 15:08:01       32 阅读