diff --git a/srt/SrtTransportImp.cpp b/srt/SrtTransportImp.cpp index ab67f52b..087bb4ae 100644 --- a/srt/SrtTransportImp.cpp +++ b/srt/SrtTransportImp.cpp @@ -287,18 +287,7 @@ std::string SrtTransportImp::getIdentifier() const { bool SrtTransportImp::inputFrame(const Frame::Ptr &frame) { if (_muxer) { - //TraceL<<"before type "<getCodecName()<<" dts "<dts()<<" pts "<pts(); - auto frame_tmp = std::make_shared(frame, _type_to_stamp[frame->getTrackType()],false); - if(_type_to_stamp.size()>1){ - // 有音视频,检查是否时间戳是否差距过大 - auto diff = _type_to_stamp[TrackType::TrackVideo].getRelativeStamp() - _type_to_stamp[TrackType::TrackAudio].getRelativeStamp(); - if(std::abs(diff) > 5000){ - // 超过5s,应该同步 TODO - WarnL << _media_info.full_url <<" video or audio not sync : "<getCodecName()<<" dts "<dts()<<" pts "<pts(); - return _muxer->inputFrame(frame_tmp); + return _muxer->inputFrame(frame); } if (_cached_func.size() > 200) { WarnL << "cached frame of track(" << frame->getCodecName() << ") is too much, now dropped"; @@ -306,17 +295,11 @@ bool SrtTransportImp::inputFrame(const Frame::Ptr &frame) { } auto frame_cached = Frame::getCacheAbleFrame(frame); lock_guard lck(_func_mtx); - _cached_func.emplace_back([this, frame_cached]() { - //TraceL<<"before type "<getCodecName()<<" dts "<dts()<<" pts "<pts(); - auto frame_tmp = std::make_shared(frame_cached, _type_to_stamp[frame_cached->getTrackType()],false); - //TraceL<<"after type "<getCodecName()<<" dts "<dts()<<" pts "<pts(); - _muxer->inputFrame(frame_tmp); - }); + _cached_func.emplace_back([this, frame_cached]() { _muxer->inputFrame(frame_cached); }); return true; } bool SrtTransportImp::addTrack(const Track::Ptr &track) { - _type_to_stamp.emplace(track->getTrackType(),Stamp()); if (_muxer) { return _muxer->addTrack(track); } @@ -333,9 +316,6 @@ void SrtTransportImp::addTrackCompleted() { lock_guard lck(_func_mtx); _cached_func.emplace_back([this]() { _muxer->addTrackCompleted(); }); } - if(_type_to_stamp.size() >1){ - _type_to_stamp[TrackType::TrackAudio].syncTo(_type_to_stamp[TrackType::TrackVideo]); - } } void SrtTransportImp::doCachedFunc() { diff --git a/srt/SrtTransportImp.hpp b/srt/SrtTransportImp.hpp index 71478605..9c1ac47e 100644 --- a/srt/SrtTransportImp.hpp +++ b/srt/SrtTransportImp.hpp @@ -86,8 +86,6 @@ private: DecoderImp::Ptr _decoder; std::recursive_mutex _func_mtx; std::deque> _cached_func; - - std::unordered_map _type_to_stamp; }; } // namespace SRT