Zlmediakit 接收到 rtc包后的处理流程

 

客户端通过rtc 推流(视频为h264)到 ZlmediaKit 时,ZlmediaKit收到包后,到进行rtp 包排序的流程堆栈,方便了解逻辑

#0  mediakit::RtspMediaSourceImp::onWrite (this=0x7fffd0009d68, rtp=..., key_pos=false) at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtspMediaSourceImp.h:55
#1  0x00000000015d9da9 in WebRtcPusher::onRecvRtp (this=0x7fffd001e890, track=..., rid=..., rtp=...) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcPusher.cpp:84
#2  0x0000000001527f7a in WebRtcTransportImp::onSortedRtp (this=0x7fffd001e890, track=..., rid=..., rtp=...) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcTransport.cpp:1077
#3  0x0000000001526ccc in WebRtcTransportImp::__lambda95::operator() (__closure=0x7fffd0024580, rtp=...) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcTransport.cpp:924
#4  0x00000000015323a6 in std::_Function_handler<void(std::shared_ptr<mediakit::RtpPacket>), WebRtcTransportImp::createRtpChannel(const string&, uint32_t, MediaTrack&)::__lambda95>::_M_invoke(const std::_Any_data &, std::shared_ptr<mediakit::RtpPacket>) (__functor=..., __args#0=...) at /usr/include/c++/4.8.2/functional:2071
#5  0x00000000014acca0 in std::function<void (std::shared_ptr<mediakit::RtpPacket>)>::operator()(std::shared_ptr<mediakit::RtpPacket>) const (this=0x7fffd0004440, __args#0=...)
    at /usr/include/c++/4.8.2/functional:2471
#6  0x00000000014ab531 in mediakit::RtpTrackImp::onRtpSorted (this=0x7fffd0004388, rtp=...) at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.cpp:142
#7  0x00000000014aa499 in mediakit::RtpTrack::RtpTrack()::{lambda(unsigned short, std::shared_ptr<mediakit::RtpPacket>&)#1}::operator()(unsigned short, std::shared_ptr<mediakit::RtpPacket>&) const () at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.cpp:18
#8  0x00000000014ab7ed in std::_Function_handler<void(short unsigned int, std::shared_ptr<mediakit::RtpPacket>&), mediakit::RtpTrack::RtpTrack()::__lambda25>::_M_invoke(const std::_Any_data &, unsigned short, std::shared_ptr<mediakit::RtpPacket> &) (__functor=..., __args#0=6408, __args#1=...) at /usr/include/c++/4.8.2/functional:2071
#9  0x00000000014adb11 in std::function<void (unsigned short, std::shared_ptr<mediakit::RtpPacket>&)>::operator()(unsigned short, std::shared_ptr<mediakit::RtpPacket>&) const (
    this=0x7fffd00043d8, __args#0=6408, __args#1=...) at /usr/include/c++/4.8.2/functional:2471
#10 0x00000000014ada1b in mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>, unsigned short, 1024ul, 32ul>::popIterator (this=0x7fffd0004390, it=...)
    at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.h:123
#11 0x00000000014ad366 in mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>, unsigned short, 1024ul, 32ul>::popPacket (this=0x7fffd0004390)
    at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.h:92
#12 0x00000000014acf76 in mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>, unsigned short, 1024ul, 32ul>::tryPopPacket (this=0x7fffd0004390)
    at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.h:144
#13 0x00000000014acafd in mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>, unsigned short, 1024ul, 32ul>::sortPacket (this=0x7fffd0004390, seq=6440, packet=...)
    at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.h:77
#14 0x00000000014ab1aa in mediakit::RtpTrack::inputRtp (this=0x7fffd0004388, type=mediakit::TrackAudio, sample_rate=8000, 
    ptr=0x1ee23b0 "\220\b\031(\244=\227Hd\246\241\006\276", <incomplete sequence \336>, len=192, absCaptureTime=186608650860798725)
    at /root/src/tantao/cmds_master/cmds/src/Rtsp/RtpReceiver.cpp:113
#15 0x00000000015352c6 in RtpChannel::inputRtp (this=0x7fffd0004388, type=mediakit::TrackAudio, sample_rate=8000, 
    ptr=0x1ee23b0 "\220\b\031(\244=\227Hd\246\241\006\276", <incomplete sequence \336>, len=192, is_rtx=false) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcTransport.cpp:704
#16 0x0000000001527607 in WrappedRtpTrack::inputRtp (this=0x7fffd0002d00, buf=0x1ee23b0 "\220\b\031(\244=\227Hd\246\241\006\276", <incomplete sequence \336>, len=192, stamp_ms=764, 
    rtp=0x1ee23b0) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcTransport.cpp:995
#17 0x000000000152745d in WebRtcTransportImp::onRtp (this=0x7fffd001e890, buf=0x1ee23b0 "\220\b\031(\244=\227Hd\246\241\006\276", <incomplete sequence \336>, len=192, stamp_ms=764)
    at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcTransport.cpp:967
#18 0x0000000001521e9b in WebRtcTransport::inputSockData (this=0x7fffd001e890, buf=0x1ee23b0 "\220\b\031(\244=\227Hd\246\241\006\276", <incomplete sequence \336>, len=192, 
    tuple=0x7fffd0033978) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcTransport.cpp:331
#19 0x000000000151db17 in WebRtcSession::onRecv (this=0x7fffd00338a8, buffer=...) at /root/src/tantao/cmds_master/cmds/webrtc/WebRtcSession.cpp:70
#20 0x0000000001178df6 in toolkit::emitSessionRecv (session=..., buf=...) at /root/src/tantao/cmds_master/cmds/3rdpart/ZLToolKit/src/Network/UdpServer.cpp:134
#21 0x0000000001179a9f in toolkit::UdpServer::__lambda14::__lambda15::operator() (__closure=0x7fffd0002730, buf=..., addr=0x7fffe9dde760, addr_len=28)
    at /root/src/tantao/cmds_master/cmds/3rdpart/ZLToolKit/src/Network/UdpServer.cpp:257
#22 0x000000000117bc44 in std::_Function_handler<void(const std::shared_ptr<toolkit::Buffer>&, sockaddr*, int), toolkit::UdpServer::createSession(const PeerIdType&, const Ptr&, sockaddr*, int)::__lambda14::__lambda15>::_M_invoke(const std::_Any_data &, const std::shared_ptr<toolkit::Buffer> &, sockaddr *, int) (__functor=..., __args#0=..., __args#1=0x7fffe9dde760, 
    __args#2=28) at /usr/include/c++/4.8.2/functional:2071
#23 0x0000000001162e5b in std::function<void (std::shared_ptr<toolkit::Buffer> const&, sockaddr*, int)>::operator()(std::shared_ptr<toolkit::Buffer> const&, sockaddr*, int) const (
    this=0x7fffc8001b00, __args#0=..., __args#1=0x7fffe9dde760, __args#2=28) at /usr/include/c++/4.8.2/functional:2471

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值