| Index: media/base/renderer_factory_selector.cc
|
| diff --git a/media/base/renderer_factory_selector.cc b/media/base/renderer_factory_selector.cc
|
| index 3eb41fced272095dd0f017d5f20e22767959930b..d1fc94bb4908ff9601037967822144ac9f4dfb58 100644
|
| --- a/media/base/renderer_factory_selector.cc
|
| +++ b/media/base/renderer_factory_selector.cc
|
| @@ -23,38 +23,40 @@ void RendererFactorySelector::AddFactory(
|
| void RendererFactorySelector::SetBaseFactoryType(FactoryType type) {
|
| DCHECK(factories_[type]);
|
| base_factory_type_ = type;
|
| - current_factory_needs_update_ = true;
|
| }
|
|
|
| -// For the moment, this method should only be called once or twice.
|
| -// This method will be regularly called whenever the logic in choosing a
|
| -// renderer type is moved out of the AdaptiveRendererFactory, into this method.
|
| -void RendererFactorySelector::UpdateCurrentFactory() {
|
| +RendererFactory* RendererFactorySelector::GetCurrentFactory() {
|
| + // We cannot use the MEDIA_PLAYER and the COURIER factory at the same time.
|
| + DCHECK(!use_media_player_ || !query_is_remoting_active_cb_);
|
| +
|
| DCHECK(base_factory_type_);
|
| FactoryType next_factory_type = base_factory_type_.value();
|
|
|
| if (use_media_player_)
|
| next_factory_type = FactoryType::MEDIA_PLAYER;
|
|
|
| + if (query_is_remoting_active_cb_ && query_is_remoting_active_cb_.Run())
|
| + next_factory_type = FactoryType::COURIER;
|
| +
|
| DVLOG(1) << __func__ << " Selecting factory type: " << next_factory_type;
|
|
|
| - current_factory_ = factories_[next_factory_type].get();
|
| - current_factory_needs_update_ = false;
|
| -}
|
| + RendererFactory* current_factory = factories_[next_factory_type].get();
|
|
|
| -RendererFactory* RendererFactorySelector::GetCurrentFactory() {
|
| - if (current_factory_needs_update_)
|
| - UpdateCurrentFactory();
|
| + DCHECK(current_factory);
|
|
|
| - DCHECK(current_factory_);
|
| - return current_factory_;
|
| + return current_factory;
|
| }
|
|
|
| #if defined(OS_ANDROID)
|
| void RendererFactorySelector::SetUseMediaPlayer(bool use_media_player) {
|
| use_media_player_ = use_media_player;
|
| - current_factory_needs_update_ = true;
|
| }
|
| #endif
|
|
|
| +void RendererFactorySelector::SetQueryIsRemotingActiveCB(
|
| + QueryIsRemotingActiveCB query_is_remoting_active_cb) {
|
| + DCHECK(!query_is_remoting_active_cb_);
|
| + query_is_remoting_active_cb_ = query_is_remoting_active_cb;
|
| +}
|
| +
|
| } // namespace media
|
|
|