mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-07 12:18:12 +08:00
add addDelegate with std::function, remove FrameWriterInterfaceHelper
This commit is contained in:
@@ -37,7 +37,7 @@ bool MediaSink::addTrack(const Track::Ptr &track_in) {
|
||||
};
|
||||
_ticker.resetTime();
|
||||
|
||||
track->addDelegate(std::make_shared<FrameWriterInterfaceHelper>([this](const Frame::Ptr &frame) {
|
||||
track->addDelegate([this](const Frame::Ptr &frame) {
|
||||
if (_all_track_ready) {
|
||||
return onTrackFrame(frame);
|
||||
}
|
||||
@@ -52,7 +52,7 @@ bool MediaSink::addTrack(const Track::Ptr &track_in) {
|
||||
//还有Track未就绪,先缓存之
|
||||
frame_unread.emplace_back(Frame::getCacheAbleFrame(frame));
|
||||
return true;
|
||||
}));
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -247,13 +247,13 @@ bool MediaSink::addMuteAudioTrack() {
|
||||
}
|
||||
auto audio = std::make_shared<AACTrack>(makeAacConfig(MUTE_ADTS_DATA, ADTS_HEADER_LEN));
|
||||
_track_map[audio->getTrackType()] = std::make_pair(audio, true);
|
||||
audio->addDelegate(std::make_shared<FrameWriterInterfaceHelper>([this](const Frame::Ptr &frame) {
|
||||
audio->addDelegate([this](const Frame::Ptr &frame) {
|
||||
return onTrackFrame(frame);
|
||||
}));
|
||||
});
|
||||
_mute_audio_maker = std::make_shared<MuteAudioMaker>();
|
||||
_mute_audio_maker->addDelegate(std::make_shared<FrameWriterInterfaceHelper>([audio](const Frame::Ptr &frame) {
|
||||
_mute_audio_maker->addDelegate([audio](const Frame::Ptr &frame) {
|
||||
return audio->inputFrame(frame);
|
||||
}));
|
||||
});
|
||||
onTrackReady(audio);
|
||||
TraceL << "mute aac track added";
|
||||
return true;
|
||||
|
||||
@@ -318,6 +318,12 @@ public:
|
||||
_delegates.emplace(delegate.get(), delegate);
|
||||
}
|
||||
|
||||
FrameWriterInterface* addDelegate(const std::function<bool(const Frame::Ptr &frame)> &cb) {
|
||||
auto delegate = std::make_shared<FrameWriterInterfaceHelper>(cb);
|
||||
std::lock_guard<std::mutex> lck(_mtx);
|
||||
_delegates.emplace(delegate.get(), delegate);
|
||||
return delegate.get();
|
||||
}
|
||||
/**
|
||||
* 删除代理
|
||||
*/
|
||||
|
||||
@@ -112,9 +112,9 @@ bool Demuxer::addTrack(const Track::Ptr &track) {
|
||||
}
|
||||
|
||||
if (_sink->addTrack(track)) {
|
||||
track->addDelegate(std::make_shared<FrameWriterInterfaceHelper>([this](const Frame::Ptr &frame) {
|
||||
track->addDelegate([this](const Frame::Ptr &frame) {
|
||||
return _sink->inputFrame(frame);
|
||||
}));
|
||||
});
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -136,10 +136,10 @@ bool GB28181Process::inputRtp(bool, const char *data, size_t data_len) {
|
||||
}
|
||||
}
|
||||
// 设置frame回调
|
||||
_rtp_decoder[pt]->addDelegate(std::make_shared<FrameWriterInterfaceHelper>([this](const Frame::Ptr &frame) {
|
||||
_rtp_decoder[pt]->addDelegate([this](const Frame::Ptr &frame) {
|
||||
onRtpDecode(frame);
|
||||
return true;
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
return ref->inputRtp(TrackVideo, (unsigned char *)data, data_len);
|
||||
|
||||
Reference in New Issue
Block a user