目录
webrtc播放


> MediaServer.exe!mediakit::WebRtcPlayer::onStartWebRTC() 行 60 C++
MediaServer.exe!mediakit::WebRtcTransport::OnDtlsTransportConnected(const RTC::DtlsTransport * dtlsTransport, RTC::SrtpSession::CryptoSuite srtpCryptoSuite, unsigned char * srtpLocalKey, unsigned __int64 srtpLocalKeyLen, unsigned char * srtpRemoteKey, unsigned __int64 srtpRemoteKeyLen, std::string & remoteCert) 行 207 C++
MediaServer.exe!RTC::DtlsTransport::ExtractSrtpKeys(RTC::SrtpSession::CryptoSuite srtpCryptoSuite) 行 1314 C++
MediaServer.exe!RTC::DtlsTransport::ProcessHandshake() 行 1070 C++
MediaServer.exe!RTC::DtlsTransport::CheckStatus(int returnCode) 行 925 C++
MediaServer.exe!RTC::DtlsTransport::ProcessDtlsData(const unsigned char * data, unsigned __int64 len) 行 768 C++
MediaServer.exe!mediakit::WebRtcTransport::inputSockData(char * buf, int len, toolkit::Session * tuple) 行 448 C++
MediaServer.exe!mediakit::WebRtcSession::onRecv_l(const char * data, unsigned __int64 len) 行 90 C++
MediaServer.exe!mediakit::WebRtcSession::onRecv(const std::shared_ptr<toolkit::Buffer> & buffer) 行 98 C++
MediaServer.exe!toolkit::emitSessionRecv(const std::shared_ptr<toolkit::SessionHelper> & helper, const std::shared_ptr<toolkit::Buffer> & buf) 行 156 C++
MediaServer.exe!toolkit::UdpServer::onRead_l::__l10::<lambda>() 行 179 C++
[外部代码]
MediaServer.exe!toolkit::TaskCancelableImp<void __cdecl(void)>::operator()() 行 111 C++
MediaServer.exe!toolkit::EventPoller::onPipeEvent::__l2::<lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> & task) 行 307 C++
MediaServer.exe!toolkit::List<std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>>>::for_each<void <lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> &)>(toolkit::EventPoller::onPipeEvent::__l2::void <lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> &) && func) 行 203 C++
MediaServer.exe!toolkit::EventPoller::onPipeEvent(bool flush) 行 305 C++
MediaServer.exe!toolkit::EventPoller::addEventPipe::__l3::<lambda>(int event) 行 64 C++
[外部代码]
MediaServer.exe!toolkit::EventPoller::runLoop(bool blocked, bool ref_self) 行 381 C++
[外部代码]
MediaServer.exe!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) 行 97 C++
[外部代码]

MultiMediaSourceMuxer里的_ring
与我们在zlm里的播放无关
MultiMediaSourceMuxer里的_ring可供api直接调用,或者
MultiMediaSourceMuxer::startSendRtp也应该是api调用的。

再读mediasink关键类
checkTrackIfReady 比较关键。
因为只有ready了,才会触发到multimediasourecmuxer里的onTrackFrame()

> MediaServer.exe!mediakit::H264RtpEncoder::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 282 C++
MediaServer.exe!mediakit::RtspMuxer::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 137 C++
MediaServer.exe!mediakit::RtspMediaSourceMuxer::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 72 C++
MediaServer.exe!mediakit::MultiMediaSourceMuxer::onTrackFrame_l(const std::shared_ptr<mediakit::Frame> & frame_in) 行 623 C++
MediaServer.exe!mediakit::MultiMediaSourceMuxer::onTrackFrame(const std::shared_ptr<mediakit::Frame> & frame_in) 行 613 C++
MediaServer.exe!mediakit::MediaSink::addTrack::__l2::<lambda>(const std::shared_ptr<mediakit::Frame> & frame) 行 52 C++
[外部代码]
MediaServer.exe!mediakit::FrameWriterInterfaceHelper::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 318 C++
MediaServer.exe!mediakit::FrameDispatcher::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 568 C++
MediaServer.exe!mediakit::H264Track::inputFrame_l(const std::shared_ptr<mediakit::Frame> & frame) 行 260 C++
MediaServer.exe!mediakit::H264Track::inputFrame::__l2::<lambda>(const char * ptr, unsigned __int64 len, unsigned __int64 prefix) 行 155 C++
[外部代码]
MediaServer.exe!mediakit::splitH264(const char * ptr, unsigned __int64 len, unsigned __int64 prefix, const std::function<void __cdecl(char const *,unsigned __int64,unsigned __int64)> & cb) 行 89 C++
MediaServer.exe!mediakit::H264Track::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 153 C++
MediaServer.exe!mediakit::MediaSink::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 87 C++
MediaServer.exe!mediakit::MediaSink::emitAllTrackReady::__l20::<lambda>(const std::shared_ptr<mediakit::Frame> & frame) 行 187 C++
MediaServer.exe!toolkit::List<std::shared_ptr<mediakit::Frame>>::for_each<void <lambda>(const std::shared_ptr<mediakit::Frame> &)>(mediakit::MediaSink::emitAllTrackReady::__l20::void <lambda>(const std::shared_ptr<mediakit::Frame> &) && func) 行 203 C++
MediaServer.exe!mediakit::MediaSink::emitAllTrackReady() 行 188 C++
MediaServer.exe!mediakit::MediaSink::checkTrackIfReady() 行 132 C++
MediaServer.exe!mediakit::MediaSink::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 93 C++
MediaServer.exe!mediakit::FrameDispatcher::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 568 C++
MediaServer.exe!mediakit::H264Track::inputFrame_l(const std::shared_ptr<mediakit::Frame> & frame) 行 266 C++
MediaServer.exe!mediakit::H264Track::inputFrame::__l2::<lambda>(const char * ptr, unsigned __int64 len, unsigned __int64 prefix) 行 155 C++
[外部代码]
MediaServer.exe!mediakit::splitH264(const char * ptr, unsigned __int64 len, unsigned __int64 prefix, const std::function<void __cdecl(char const *,unsigned __int64,unsigned __int64)> & cb) 行 89 C++
MediaServer.exe!mediakit::H264Track::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 153 C++
MediaServer.exe!mediakit::FrameDispatcher::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 568 C++
MediaServer.exe!mediakit::H264RtpDecoder::outputFrame(const std::shared_ptr<mediakit::RtpPacket> & rtp, const std::shared_ptr<mediakit::H264FrameHelper<mediakit::FrameImp>> & frame) 行 188 C++
MediaServer.exe!mediakit::H264RtpDecoder::singleFrame(const std::shared_ptr<mediakit::RtpPacket> & rtp, const unsigned char * ptr, __int64 size, unsigned __int64 stamp) 行 81 C++
MediaServer.exe!mediakit::H264RtpDecoder::unpackStapA(const std::shared_ptr<mediakit::RtpPacket> & rtp, const unsigned char * ptr, __int64 size, unsigned __int64 stamp) 行 96 C++
MediaServer.exe!mediakit::H264RtpDecoder::decodeRtp(const std::shared_ptr<mediakit::RtpPacket> & rtp) 行 156 C++
MediaServer.exe!mediakit::H264RtpDecoder::inputRtp(const std::shared_ptr<mediakit::RtpPacket> & rtp, bool key_pos) 行 48 C++
MediaServer.exe!mediakit::RtspDemuxer::inputRtp(const std::shared_ptr<mediakit::RtpPacket> & rtp) 行 59 C++
MediaServer.exe!mediakit::RtspMediaSourceImp::onWrite(std::shared_ptr<mediakit::RtpPacket> rtp, bool key_pos) 行 100 C++
MediaServer.exe!mediakit::WebRtcPusher::onRecvRtp(mediakit::MediaTrack & track, const std::string & rid, std::shared_ptr<mediakit::RtpPacket> rtp) 行 89 C++
MediaServer.exe!mediakit::WebRtcTransportImp::onSortedRtp(mediakit::MediaTrack & track, const std::string & rid, std::shared_ptr<mediakit::RtpPacket> rtp) 行 1126 C++
MediaServer.exe!mediakit::WebRtcTransportImp::createRtpChannel::__l2::<lambda>(std::shared_ptr<mediakit::RtpPacket> rtp) 行 1006 C++
[外部代码]
MediaServer.exe!mediakit::RtpTrackImp::onRtpSorted(std::shared_ptr<mediakit::RtpPacket> rtp) 行 133 C++
MediaServer.exe!mediakit::RtpTrack::{ctor}::__l2::<lambda>(unsigned short seq, std::shared_ptr<mediakit::RtpPacket> packet) 行 18 C++
[外部代码]
MediaServer.exe!mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>,unsigned short>::output(unsigned short seq, std::shared_ptr<mediakit::RtpPacket> packet) 行 174 C++
MediaServer.exe!mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>,unsigned short>::sortPacket(unsigned short seq, std::shared_ptr<mediakit::RtpPacket> packet) 行 66 C++
MediaServer.exe!mediakit::RtpTrack::inputRtp(mediakit::TrackType type, int sample_rate, unsigned char * ptr, unsigned __int64 len) 行 107 C++
MediaServer.exe!mediakit::RtpChannel::inputRtp(mediakit::TrackType type, int sample_rate, unsigned char * ptr, unsigned __int64 len, bool is_rtx) 行 811 C++
MediaServer.exe!mediakit::WrappedRtpTrack::inputRtp(const char * buf, unsigned __int64 len, unsigned __int64 stamp_ms, mediakit::RtpHeader * rtp) 行 1060 C++
MediaServer.exe!mediakit::WebRtcTransportImp::onRtp(const char * buf, unsigned __int64 len, unsigned __int64 stamp_ms) 行 1032 C++
MediaServer.exe!mediakit::WebRtcTransport::inputSockData(char * buf, int len, toolkit::Session * tuple) 行 458 C++
MediaServer.exe!mediakit::WebRtcSession::onRecv_l(const char * data, unsigned __int64 len) 行 90 C++
MediaServer.exe!mediakit::WebRtcSession::onRecv(const std::shared_ptr<toolkit::Buffer> & buffer) 行 98 C++
MediaServer.exe!toolkit::emitSessionRecv(const std::shared_ptr<toolkit::SessionHelper> & helper, const std::shared_ptr<toolkit::Buffer> & buf) 行 164 C++
MediaServer.exe!toolkit::UdpServer::onRead_l::__l10::<lambda>() 行 191 C++
[外部代码]
MediaServer.exe!toolkit::TaskCancelableImp<void __cdecl(void)>::operator()() 行 129 C++
MediaServer.exe!toolkit::EventPoller::onPipeEvent::__l2::<lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> & task) 行 316 C++
MediaServer.exe!toolkit::List<std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>>>::for_each<void <lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> &)>(toolkit::EventPoller::onPipeEvent::__l2::void <lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> &) && func) 行 203 C++
MediaServer.exe!toolkit::EventPoller::onPipeEvent(bool flush) 行 314 C++
MediaServer.exe!toolkit::EventPoller::addEventPipe::__l3::<lambda>(int event) 行 66 C++
[外部代码]
MediaServer.exe!toolkit::EventPoller::runLoop(bool blocked, bool ref_self) 行 392 C++
[外部代码]
MediaServer.exe!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) 行 97 C++
[外部代码]
什么时候将encode放入track的呢
这里说明了什么时候用到了 getSDP()

> MediaServer.exe!mediakit::RtspMuxer::addTrack(const std::shared_ptr<mediakit::Track> & track) 行 59 C++
MediaServer.exe!mediakit::MultiMediaSourceMuxer::onTrackReady(const std::shared_ptr<mediakit::Track> & track) 行 486 C++
MediaServer.exe!mediakit::MediaSink::addTrack::__l2::<lambda>() 行 48 C++
[外部代码]
MediaServer.exe!mediakit::MediaSink::checkTrackIfReady() 行 104 C++
MediaServer.exe!mediakit::MediaSink::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 93 C++
MediaServer.exe!mediakit::FrameDispatcher::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 568 C++
MediaServer.exe!mediakit::VP9Track::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 190 C++
MediaServer.exe!mediakit::FrameDispatcher::inputFrame(const std::shared_ptr<mediakit::Frame> & frame) 行 568 C++
MediaServer.exe!mediakit::Vp9Codec::inputRtp(const std::shared_ptr<mediakit::RtpPacket> & rtp, bool key_pos) 行 44 C++
MediaServer.exe!mediakit::RtspDemuxer::inputRtp(const std::shared_ptr<mediakit::RtpPacket> & rtp) 行 59 C++
MediaServer.exe!mediakit::RtspMediaSourceImp::onWrite(std::shared_ptr<mediakit::RtpPacket> rtp, bool key_pos) 行 100 C++
MediaServer.exe!mediakit::WebRtcPusher::onRecvRtp(mediakit::MediaTrack & track, const std::string & rid, std::shared_ptr<mediakit::RtpPacket> rtp) 行 89 C++
MediaServer.exe!mediakit::WebRtcTransportImp::onSortedRtp(mediakit::MediaTrack & track, const std::string & rid, std::shared_ptr<mediakit::RtpPacket> rtp) 行 1126 C++
MediaServer.exe!mediakit::WebRtcTransportImp::createRtpChannel::__l2::<lambda>(std::shared_ptr<mediakit::RtpPacket> rtp) 行 1006 C++
[外部代码]
MediaServer.exe!mediakit::RtpTrackImp::onRtpSorted(std::shared_ptr<mediakit::RtpPacket> rtp) 行 133 C++
MediaServer.exe!mediakit::RtpTrack::{ctor}::__l2::<lambda>(unsigned short seq, std::shared_ptr<mediakit::RtpPacket> packet) 行 18 C++
[外部代码]
MediaServer.exe!mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>,unsigned short>::output(unsigned short seq, std::shared_ptr<mediakit::RtpPacket> packet) 行 174 C++
MediaServer.exe!mediakit::PacketSortor<std::shared_ptr<mediakit::RtpPacket>,unsigned short>::sortPacket(unsigned short seq, std::shared_ptr<mediakit::RtpPacket> packet) 行 66 C++
MediaServer.exe!mediakit::RtpTrack::inputRtp(mediakit::TrackType type, int sample_rate, unsigned char * ptr, unsigned __int64 len) 行 107 C++
MediaServer.exe!mediakit::RtpChannel::inputRtp(mediakit::TrackType type, int sample_rate, unsigned char * ptr, unsigned __int64 len, bool is_rtx) 行 811 C++
MediaServer.exe!mediakit::WrappedRtpTrack::inputRtp(const char * buf, unsigned __int64 len, unsigned __int64 stamp_ms, mediakit::RtpHeader * rtp) 行 1060 C++
MediaServer.exe!mediakit::WebRtcTransportImp::onRtp(const char * buf, unsigned __int64 len, unsigned __int64 stamp_ms) 行 1032 C++
MediaServer.exe!mediakit::WebRtcTransport::inputSockData(char * buf, int len, toolkit::Session * tuple) 行 458 C++
MediaServer.exe!mediakit::WebRtcSession::onRecv_l(const char * data, unsigned __int64 len) 行 90 C++
MediaServer.exe!mediakit::WebRtcSession::onRecv(const std::shared_ptr<toolkit::Buffer> & buffer) 行 98 C++
MediaServer.exe!toolkit::emitSessionRecv(const std::shared_ptr<toolkit::SessionHelper> & helper, const std::shared_ptr<toolkit::Buffer> & buf) 行 164 C++
MediaServer.exe!toolkit::UdpServer::onRead_l::__l10::<lambda>() 行 191 C++
[外部代码]
MediaServer.exe!toolkit::TaskCancelableImp<void __cdecl(void)>::operator()() 行 129 C++
MediaServer.exe!toolkit::EventPoller::onPipeEvent::__l2::<lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> & task) 行 316 C++
MediaServer.exe!toolkit::List<std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>>>::for_each<void <lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> &)>(toolkit::EventPoller::onPipeEvent::__l2::void <lambda>(const std::shared_ptr<toolkit::TaskCancelableImp<void __cdecl(void)>> &) && func) 行 203 C++
MediaServer.exe!toolkit::EventPoller::onPipeEvent(bool flush) 行 314 C++
MediaServer.exe!toolkit::EventPoller::addEventPipe::__l3::<lambda>(int event) 行 66 C++
[外部代码]
MediaServer.exe!toolkit::EventPoller::runLoop(bool blocked, bool ref_self) 行 392 C++
[外部代码]
MediaServer.exe!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) 行 97 C++
[外部代码]
1860

被折叠的 条评论
为什么被折叠?



