改为按 Session 查找媒体源以支持 TCP/UDP Session

This commit is contained in:
wxf 2021-07-15 11:25:06 +08:00
parent 0d48275115
commit ece7186e6c
2 changed files with 5 additions and 5 deletions

View File

@ -280,7 +280,7 @@ static MediaSource::Ptr find_l(const string &schema, const string &vhost_in, con
return ret;
}
static void findAsync_l(const MediaInfo &info, const std::shared_ptr<TcpSession> &session, bool retry,
static void findAsync_l(const MediaInfo &info, const std::shared_ptr<Session> &session, bool retry,
const function<void(const MediaSource::Ptr &src)> &cb){
auto src = find_l(info._schema, info._vhost, info._app, info._streamid, true);
if (src || !retry) {
@ -314,7 +314,7 @@ static void findAsync_l(const MediaInfo &info, const std::shared_ptr<TcpSession>
NoticeCenter::Instance().delListener(listener_tag, Broadcast::kBroadcastMediaChanged);
};
weak_ptr<TcpSession> weak_session = session;
weak_ptr<Session> weak_session = session;
auto on_register = [weak_session, info, cb_once, cancel_all, poller](BroadcastMediaChangedArgs) {
if (!bRegist ||
sender.getSchema() != info._schema ||
@ -352,7 +352,7 @@ static void findAsync_l(const MediaInfo &info, const std::shared_ptr<TcpSession>
NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastNotFoundStream, info, static_cast<SockInfo &>(*session), close_player);
}
void MediaSource::findAsync(const MediaInfo &info, const std::shared_ptr<TcpSession> &session,const function<void(const Ptr &src)> &cb){
void MediaSource::findAsync(const MediaInfo &info, const std::shared_ptr<Session> &session, const function<void (const Ptr &)> &cb) {
return findAsync_l(info, session, true, cb);
}

View File

@ -32,7 +32,7 @@ using namespace std;
using namespace toolkit;
namespace toolkit{
class TcpSession;
class Session;
}// namespace toolkit
namespace mediakit {
@ -271,7 +271,7 @@ public:
static Ptr find(const string &vhost, const string &app, const string &stream_id);
// 异步查找流
static void findAsync(const MediaInfo &info, const std::shared_ptr<TcpSession> &session, const function<void(const Ptr &src)> &cb);
static void findAsync(const MediaInfo &info, const std::shared_ptr<Session> &session, const function<void(const Ptr &src)> &cb);
// 遍历所有流
static void for_each_media(const function<void(const Ptr &src)> &cb,
const string &schema = "",