Refine: 精简复用MediaSink相关代码

This commit is contained in:
ziyue
2021-12-01 21:38:31 +08:00
parent 84baf920c1
commit 8f60ec9900
3 changed files with 42 additions and 68 deletions

View File

@@ -238,16 +238,37 @@ protected:
std::shared_ptr<Delegate> _delegate;
};
class MediaSinkDelegate : public MediaSink {
public:
MediaSinkDelegate() = default;
~MediaSinkDelegate() override = default;
/**
* 设置track监听器
*/
void setTrackListener(TrackListener *listener);
protected:
void resetTracks() override;
bool onTrackReady(const Track::Ptr & track) override;
void onAllTrackReady() override;
private:
TrackListener *_listener = nullptr;
};
class Demuxer : protected TrackListener, public TrackSource {
public:
Demuxer() = default;
~Demuxer() override = default;
void setTrackListener(TrackListener *listener, bool wait_track_ready = false);
vector<Track::Ptr> getTracks(bool trackReady = true) const override;
protected:
bool addTrack(const Track::Ptr &track) override;
void addTrackCompleted() override;
void resetTracks() override;
vector<Track::Ptr> getTracks(bool trackReady = true) const override;
private:
MediaSink::Ptr _sink;