mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-16 04:55:58 +08:00
修复转码可能失败的bug
This commit is contained in:
@@ -52,33 +52,35 @@ PlayerBase::Ptr PlayerBase::createPlayer(const char* strUrl) {
|
||||
}
|
||||
|
||||
///////////////////////////Demuxer//////////////////////////////
|
||||
bool Demuxer::isInited() {
|
||||
if(_ticker.createdTime() < 500){
|
||||
//500毫秒内判断条件
|
||||
bool Demuxer::isInited(int analysisMs) {
|
||||
if(_ticker.createdTime() < analysisMs){
|
||||
//analysisMs毫秒内判断条件
|
||||
//如果音视频都准备好了 ,说明Track全部就绪
|
||||
return (_videoTrack && _videoTrack->ready() && _audioTrack && _audioTrack->ready());
|
||||
}
|
||||
|
||||
//500毫秒之后,去除还未就绪的Track
|
||||
if(_videoTrack && !_videoTrack->ready()){
|
||||
//有视频但是视频未就绪
|
||||
_videoTrack = nullptr;
|
||||
}
|
||||
|
||||
if(_audioTrack && !_audioTrack->ready()){
|
||||
//有音频但是音频未就绪
|
||||
_audioTrack = nullptr;
|
||||
}
|
||||
//analysisMs毫秒后强制初始化完毕
|
||||
return true;
|
||||
}
|
||||
|
||||
vector<Track::Ptr> Demuxer::getTracks() const {
|
||||
vector<Track::Ptr> Demuxer::getTracks(bool trackReady) const {
|
||||
vector<Track::Ptr> ret;
|
||||
if(_videoTrack){
|
||||
ret.emplace_back(_videoTrack);
|
||||
if(trackReady){
|
||||
if(_videoTrack->ready()){
|
||||
ret.emplace_back(_videoTrack);
|
||||
}
|
||||
}else{
|
||||
ret.emplace_back(_videoTrack);
|
||||
}
|
||||
}
|
||||
if(_audioTrack){
|
||||
ret.emplace_back(_audioTrack);
|
||||
if(trackReady){
|
||||
if(_audioTrack->ready()){
|
||||
ret.emplace_back(_audioTrack);
|
||||
}
|
||||
}else{
|
||||
ret.emplace_back(_audioTrack);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user