live555发送H264

来源:互联网 发布:数据分析法 编辑:程序博客网 时间:2024/06/10 13:15


转自http://blog.csdn.net/evsqiezi/article/details/12849695

继承关系:

H264BufferedPacket->BufferedPacket

 BufferedPacket用于存储媒体数据的RTP包内容,它的子类具体到媒体类型,如H264BufferedPacket类。值得注意的有两点:
  1)构造函数BufferedPacket()中申请了MAX_PACKET_SIZE(10000)大小的unsigned char数组。
  2)一个重要函数是
  Boolean fillInData (RTPInterface &rtpInterface, Boolean &packetReadWasIncomplete)
  {  
    rtpInterface.handleRead(&fBuf);
  }
  实现了将rtpInterface指向的数据存入fBuf中的功能。

ReorderingPacketBuffer类

该类用于存放多个BufferedPacket对象(可能是对象指针链表,有待考察),作为Source类中组织多个BufferedPacket对象的场所。
H264BufferedPacketFactory->BufferedPacketFactory

H264VideoRTPSink继承关系:H264VideoRTPSink->VideoRTPSink->MultiFramedRTPSink->RTPSink->MediaSink。

H264FUAFragmenter继承关系:H264FUAFragmenter->FramedFilter->FramedSource->MediaSource->Medium。

解析数据的类  H264VideoStreamParser->MPEGVideoStreamParser->StreamParser。

    Source和Sink:可以把source理解为发送端的流,sink理解为接受端。MediaSink是各种类型的Sink的基类,MediaSource是各种类型Source的基类,各种类型的流媒体格式和编码的支持即是通过对这两个类的派生实现的。Source和Sink通过RTP子会话(MediaSubSession)联系在一起。

 发送H264的流程图如下:



0 0
原创粉丝点击