Index: media/mojo/services/mojo_renderer_service.h |
diff --git a/media/mojo/services/mojo_renderer_service.h b/media/mojo/services/mojo_renderer_service.h |
index 68e0dee5c3afc82de3b51f416056efed4df6b43c..12037d9a3e2deee0d2d1fda15dbffb2f15f19537 100644 |
--- a/media/mojo/services/mojo_renderer_service.h |
+++ b/media/mojo/services/mojo_renderer_service.h |
@@ -14,6 +14,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
#include "base/timer/timer.h" |
+#include "base/unguessable_token.h" |
#include "media/base/buffering_state.h" |
#include "media/base/demuxer_stream_provider.h" |
#include "media/base/pipeline_status.h" |
@@ -36,13 +37,16 @@ class MEDIA_MOJO_EXPORT MojoRendererService |
: NON_EXPORTED_BASE(public mojom::Renderer), |
public RendererClient { |
public: |
+ using InitiateSurfaceRequestCB = base::Callback<base::UnguessableToken()>; |
+ |
// |mojo_cdm_service_context| can be used to find the CDM to support |
// encrypted media. If null, encrypted media is not supported. |
MojoRendererService( |
base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context, |
scoped_refptr<AudioRendererSink> audio_sink, |
std::unique_ptr<VideoRendererSink> video_sink, |
- std::unique_ptr<media::Renderer> renderer); |
+ std::unique_ptr<media::Renderer> renderer, |
+ InitiateSurfaceRequestCB initiate_surface_request_cb); |
~MojoRendererService() final; |
// mojom::Renderer implementation. |
@@ -56,6 +60,8 @@ class MEDIA_MOJO_EXPORT MojoRendererService |
void SetPlaybackRate(double playback_rate) final; |
void SetVolume(float volume) final; |
void SetCdm(int32_t cdm_id, const SetCdmCallback& callback) final; |
+ void InitiateScopedSurfaceRequest( |
+ const InitiateScopedSurfaceRequestCallback& callback) final; |
private: |
enum State { |
@@ -127,6 +133,10 @@ class MEDIA_MOJO_EXPORT MojoRendererService |
// Must use "media::" because "Renderer" is ambiguous. |
std::unique_ptr<media::Renderer> renderer_; |
+ // Registers a new request in the ScopedSurfaceRequestManager. |
+ // Returns the token to be used to fulfill the request. |
+ InitiateSurfaceRequestCB initiate_surface_request_cb_; |
+ |
base::WeakPtr<MojoRendererService> weak_this_; |
base::WeakPtrFactory<MojoRendererService> weak_factory_; |