| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> ZLMediakit 源码分析 -> 正文阅读 |
|
[JavaScript知识库]ZLMediakit 源码分析 |
基本概念: twcc:接收端twcc主要功能就是通过fb通知发送端每一个rtp的接收时间。 SSRC:在RTP协议中, 定义同步源(SSRC,Synchronization source)为RTP包流的源,用RTP报头中32位数值的SSRC标识符进行标识,使其不依赖于网络地址。通常麦克风,音频接口,摄像头,视频接口的变化,都会导致SSRC的变化。? 1 重点类
2 webrtc play堆栈 void EventPoller::runLoop(bool blocked,bool regist_self) bool Socket::attachEvent(const SockFD::Ptr &sock, bool is_udp) /lambda表达式 ssize_t Socket::onRead(const SockFD::Ptr &sock, bool is_udp) noexcept void TcpServer::onAcceptConnection(const Socket::Ptr &sock) /lambda表达式 void HttpSession::onRecv(const Buffer::Ptr &pBuf) void HttpRequestSplitter::input(const char *data,size_t len) void HttpSession::onRecvContent(const char *data,size_t len) void HttpSession::Handle_Req_POST(ssize_t &content_len) /lambda表达式 bool HttpSession::emitHttpEvent(bool doInvoke) int NoticeCenter::emitEvent(const string &strEvent, ArgsType &&...args) int EventDispatcher::emitEvent(ArgsType &&...args) static inline void addHttpListener() /lambda表达式 static HttpApi toApi(const function<void(API_ARGS_STRING_ASYNC)> &cb)/lambda表达式 api_regist("/index/api/webrtc",[](API_ARGS_STRING_ASYNC) void WebRtcPluginManager::getAnswerSdp(Session &sender, const string &type, const string &offer, const WebRtcArgs &args,const onCreateRtc &cb) void play_plugin(Session &sender, const string &offer_sdp, const WebRtcArgs &args, const WebRtcPluginManager::onCreateRtc &cb)/lambda表达式 void MediaSource::findAsync(const MediaInfo &info, const std::shared_ptr<Session> &session, const function<void (const Ptr &)> &cb)? static void findAsync_l(const MediaInfo &info, const std::shared_ptr<Session> &session, bool retry,const function<void(const MediaSource::Ptr &src)> &cb) WebRtcPlayer::Ptr WebRtcPlayer::create(const EventPoller::Ptr &poller,const RtspMediaSource::Ptr &src,const MediaInfo &info) void WebRtcTransportImp::onCreate() WebRtcTransport::onCreate()/lambda表达式 const Session::Ptr& UdpServer::createSession( static void emitSessionRecv(const Session::Ptr &session, const Buffer::Ptr &buf) void WebRtcSession::onRecv(const Buffer::Ptr &buffer) void WebRtcTransport::inputSockData(char *buf, int len, RTC::TransportTuple *tuple)? void DtlsTransport::ProcessDtlsData(const uint8_t* data, size_t len) inline bool DtlsTransport::CheckStatus(int returnCode) inline bool DtlsTransport::ProcessHandshake() inline void DtlsTransport::ExtractSrtpKeys(RTC::SrtpSession::CryptoSuite srtpCryptoSuite) void WebRtcTransport::OnDtlsTransportConnected( void WebRtcPlayer::onStartWebRTC() void WebRtcTransportImp::onSendRtp(const RtpPacket::Ptr &rtp, bool flush, bool rtx) void WebRtcTransport::sendRtpPacket(const char *buf, int len, bool flush, void *ctx) void WebRtcTransportImp::onSendSockData(Buffer::Ptr buf, bool flush, RTC::TransportTuple *tuple)? ssize_t SocketHelper::send(Buffer::Ptr buf)? ssize_t Socket::send(Buffer::Ptr buf, struct sockaddr *addr, socklen_t addr_len, bool try_flush)? ssize_t Socket::send_l(Buffer::Ptr buf, bool is_buf_sock, bool try_flush)? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:26:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |