Index: remoting/client/plugin/chromoting_instance.cc |
diff --git a/remoting/client/plugin/chromoting_instance.cc b/remoting/client/plugin/chromoting_instance.cc |
index ff8a06a1824a7631d82e06dffaeedb2f654d7092..aa48f077a77d6621893743117cb9d3d13a772549 100644 |
--- a/remoting/client/plugin/chromoting_instance.cc |
+++ b/remoting/client/plugin/chromoting_instance.cc |
@@ -636,18 +636,21 @@ void ChromotingInstance::HandleConnect(const base::DictionaryValue& data) { |
#endif |
input_handler_.set_input_stub(normalizing_input_filter_.get()); |
- // 3D renderer is currently disabled because it may be unstable. See |
- // crbug.com/447403 . |
- // |
- // video_renderer_.reset(new PepperVideoRenderer3D()); |
- // if (!video_renderer_->Initialize(this, context_, this)) |
- // video_renderer_.reset(); |
+ // PPB_VideoDecoder is not always enabled because it's broken in some versions |
+ // of Chrome. See crbug.com/447403 . |
+ bool enable_video_decode_renderer = false; |
+ if (data.GetBoolean("enableVideoDecodeRenderer", |
+ &enable_video_decode_renderer) && |
+ enable_video_decode_renderer) { |
+ LOG(ERROR) << "Initializing 3D renderer."; |
+ video_renderer_.reset(new PepperVideoRenderer3D()); |
+ if (!video_renderer_->Initialize(this, context_, this)) |
+ video_renderer_.reset(); |
+ } |
- // If we failed to initialize 3D renderer (because there is no hardware |
- // support on this machine) then use the 2D renderer. |
+ // If we didn't initialize 3D renderer then use the 2D renderer. |
if (!video_renderer_) { |
- LOG(WARNING) |
- << "Failed to initialize 3D renderer. Using 2D renderer instead."; |
+ LOG(ERROR) << "Initializing 2D renderer."; |
video_renderer_.reset(new PepperVideoRenderer2D()); |
if (!video_renderer_->Initialize(this, context_, this)) |
video_renderer_.reset(); |