提升单track情况下秒开体验

This commit is contained in:
xia-chu
2021-04-20 17:53:43 +08:00
parent 9b951ab69a
commit 0bb87858a3
7 changed files with 95 additions and 39 deletions

View File

@@ -19,6 +19,7 @@
#include "Util/mini.h"
#include "Util/RingBuffer.h"
#include "Common/MediaSource.h"
#include "Common/MediaSink.h"
#include "Extension/Frame.h"
#include "Extension/Track.h"
using namespace toolkit;
@@ -227,18 +228,10 @@ protected:
MediaSource::Ptr _pMediaSrc;
};
class Demuxer : public PlayerBase{
class Demuxer : public PlayerBase, public TrackListener{
public:
class Listener{
public:
Listener() = default;
virtual ~Listener() = default;
virtual void onAddTrack(const Track::Ptr &track) = 0;
};
Demuxer(){};
virtual ~Demuxer(){};
Demuxer() = default;
~Demuxer() override = default;
/**
* 返回是否完成初始化完毕
@@ -267,15 +260,19 @@ public:
/**
* 设置track监听器
*/
void setTrackListener(Listener *listener);
void setTrackListener(TrackListener *listener);
protected:
void onAddTrack(const Track::Ptr &track);
void addTrack(const Track::Ptr &track) override;
void addTrackCompleted() override;
void resetTracks() override;
protected:
Listener *_listener = nullptr;
float _fDuration = 0;
Ticker _ticker;
AudioTrack::Ptr _audioTrack;
VideoTrack::Ptr _videoTrack;
Ticker _ticker;
float _fDuration = 0;
TrackListener *_listener = nullptr;
};
} /* namespace mediakit */