33 :
mutex(
"DefaultMediaPlayer"),
38 mse_player(clients, video_renderer, audio_renderer) {
57 impl_->mse_player.SetDecoders(video_decoder, audio_decoder);
62 return impl_->av_player.GetIosView();
70 return impl_->av_player.GetAvPlayer();
80 return impl_->av_player.DecodingInfo(config);
85 return impl_->mse_player.DecodingInfo(config);
90 std::unique_lock<Mutex> lock(impl_->mutex);
92 if (impl_->playing_src_)
93 return impl_->av_player.AudioTracks();
100 std::unique_lock<Mutex> lock(impl_->mutex);
102 if (impl_->playing_src_) {
111 std::unique_lock<Mutex> lock(impl_->mutex);
113 if (impl_->playing_src_)
114 return impl_->av_player.VideoTracks();
121 std::unique_lock<Mutex> lock(impl_->mutex);
123 if (impl_->playing_src_) {
132 std::unique_lock<Mutex> lock(impl_->mutex);
134 if (impl_->playing_src_)
135 return impl_->av_player.TextTracks();
137 return impl_->text_tracks_;
142 std::unique_lock<Mutex> lock(impl_->mutex);
144 if (impl_->playing_src_) {
148 return {impl_->text_tracks_.begin(), impl_->text_tracks_.end()};
152 TextTrackKind kind,
const std::string& label,
const std::string& language) {
153 std::shared_ptr<TextTrack> ret;
155 std::unique_lock<Mutex> lock(impl_->mutex);
156 ret.reset(
new TextTrack(kind, label, language,
""));
157 impl_->text_tracks_.emplace_back(ret);
166 impl_->playing_src_ =
true;
172 if (!impl_->mse_player.AttachMse())
174 return &impl_->mse_player;
176 MediaPlayer* DefaultMediaPlayer::CreateSource(
const std::string& src) {
178 if (!impl_->av_player.AttachSource(src))
180 impl_->playing_src_ =
true;
181 return &impl_->av_player;