修复转码可能失败的bug

This commit is contained in:
xiongziliang
2018-11-16 18:46:05 +08:00
parent 65b5a1272b
commit 0efe7a26b5
4 changed files with 38 additions and 32 deletions

View File

@@ -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;
}