流媒体学习笔记3(live555的source-sink)

上次提到source-sink,也就是SDP消息的组装过程,在OnDemandServerMediaSubsession::sdpLines()中创建了临时的FileSource和RTPSink,先看下这两个createNew

FramedSource* H264VideoFileServerMediaSubsession::createNewStreamSource(unsigned /*clientSessionId*/, unsigned& estBitrate) {
  estBitrate = 500; // kbps, estimate

  // Create the video source:
  ByteStreamFileSource* fileSource = ByteStreamFileSource::createNew(envir(), fFileName);
  if (fileSource == NULL) return NULL;
  fFileSize = fileSource->fileSize();

  // Create a framer for the Video Elementary Stream:
  return H264VideoStreamFramer::createNew(envir(), fileSource);
}

RTPSink* H264VideoFileServerMediaSubsession
::createNewRTPSink(Groupsock* rtpGroupsock,
		   unsigned char rtpPayloadTypeIfDynamic,
		   FramedSource* /*inputSource*/) {
  return H264VideoRTPSink::createNew(envir(), rtpGroupsock, rtpPayloadTypeIfDynamic);
}

先看source部分,可以看到,实际文件资源定义的部分是ByteStreamFileSource,它的倒继承关系为:

ByteStreamFileSource::FramedFileSource::FramedSource::MediaSource

而返回的却是H264VideoStreamFramer,我们看下它的倒继承关系为:

H264VideoStreamFramer::MPEGVideoStreamFramer::FramedFilter::FramedSource::MediaSource

其实ByteStreamFileSource确实是最初始打开文件获得Byte流的地方,但是单单知道一个Byte-Source还不够,一个最终的处理h264文件,分析格式的Sourc

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值