Live555 源代码分析(四)

2020-09-22  本文已影响0人  RonZheng2010

1 Media Session

1.1 ServerMediaSession

ServerMediaSession是媒体流的抽象。它可以包括多个子媒体流,也就是ServerMediaSubsession实例。

1.2 ServerMediaSubsession

ServerMediaSubsession实现媒体流接口。

ServerMediaSubsession定义如下虚拟函数,以便它的派生类定制自己的行为。

OnDemandServerMediaSubsession是客户端可以交互的媒体流。客户端开始接收媒体流后,可以启动、暂停、定位、停止媒体流。

PassiveServerMediaSubsession的媒体流,客户端可以加入、退出流,不能控制它。

1.3 OnDemandServerMediaSubsession

对于OnDemandServerMediaSubsession,

对于StreamState,

关于Destinations,

1.4 MP3AudioFileServerMediaSubsession

FileServerMediaSubsession只是增加成员fFileName。这是媒体源的文件名。

MP3AudioFileServerMediaSubsession定义了MP3音频媒体源。

MP3AudioFileServerMediaSubsession::createNew()创建它的实例。

这里说明MP3AudioFileServerMediaSubsession对虚拟函数的定制。

虚拟函数createNewStreamSource()实现如下。

最后得到如下图所示的链。MP3AudioServerMediaSubsession看到的是MP3FromADUSource。

虚拟函数createNewRTPSink()的实现如下。

虚拟函数seekStreamSource()实现如下。

1.5 创建、启动、停止媒体流

以MP3AudioServerMediaSubsession说明。

成员函数getStreamParameters()负责创建流。

seekStream()负责在流中定位。

startStream()启动流。

上一篇 下一篇

猜你喜欢

热点阅读