Index: media/mojo/services/mojo_renderer_service.cc |
diff --git a/media/mojo/services/mojo_renderer_service.cc b/media/mojo/services/mojo_renderer_service.cc |
index 9c6f2adf0d11eb581920b6ee7244d8dadd8f09fa..6a9a02d85517398fcfd72f6a330e197d655c33c0 100644 |
--- a/media/mojo/services/mojo_renderer_service.cc |
+++ b/media/mojo/services/mojo_renderer_service.cc |
@@ -7,8 +7,11 @@ |
#include <utility> |
#include "base/bind.h" |
+#include "media/base/android/media_player_renderer.h" |
+#include "media/base/android/url_demuxer_stream_provider.h" |
#include "media/base/media_keys.h" |
#include "media/base/renderer.h" |
+#include "media/media_features.h" |
#include "media/mojo/services/demuxer_stream_provider_shim.h" |
#include "media/mojo/services/mojo_cdm_service_context.h" |
@@ -40,14 +43,28 @@ void MojoRendererService::Initialize( |
mojom::RendererClientPtr client, |
mojom::DemuxerStreamPtr audio, |
mojom::DemuxerStreamPtr video, |
+ const mojo::String& url, |
+ int64_t surface_id, |
const mojo::Callback<void(bool)>& callback) { |
DVLOG(1) << __FUNCTION__; |
DCHECK_EQ(state_, STATE_UNINITIALIZED); |
client_ = std::move(client); |
state_ = STATE_INITIALIZING; |
+#if BUILDFLAG(FORCE_MOJO_MEDIA_PLAYER_RENDERER) |
+ // TODO(tguilbert): For review: are c-style casts acceptable? |
xhwang
2016/06/22 17:39:02
no :) use static_cast instead
|
+ MediaPlayerRenderer* temp = (MediaPlayerRenderer*)renderer_.get(); |
+ temp->SetSurfaceId(surface_id); |
+ |
+ stream_provider_.reset(new UrlDemuxerStreamProvider(GURL(url.get()))); |
+ renderer_->Initialize( |
+ stream_provider_.get(), this, |
+ base::Bind(&MojoRendererService::OnRendererInitializeDone, weak_this_, |
+ callback)); |
+#else |
stream_provider_.reset(new DemuxerStreamProviderShim( |
std::move(audio), std::move(video), |
base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback))); |
+#endif // defined(FORCE_MOJO_MEDIA_PLAYER_RENDERER) |
} |
void MojoRendererService::Flush(const mojo::Closure& callback) { |
@@ -133,6 +150,10 @@ void MojoRendererService::OnVideoNaturalSizeChange(const gfx::Size& size) { |
client_->OnVideoNaturalSizeChange(size); |
} |
+void MojoRendererService::OnDurationChange(base::TimeDelta duration) { |
+ client_->OnDurationChange(duration.InMicroseconds()); |
+} |
+ |
void MojoRendererService::OnVideoOpacityChange(bool opaque) { |
DVLOG(2) << __FUNCTION__ << "(" << opaque << ")"; |
client_->OnVideoOpacityChange(opaque); |