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
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!