| 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 81c75b463399f4dea9a46db521612e76bd90dc8b..780424fccd3b03631f01dc6ee8fdd9828d7fa202 100644
|
| --- a/media/mojo/services/mojo_renderer_service.h
|
| +++ b/media/mojo/services/mojo_renderer_service.h
|
| @@ -31,7 +31,9 @@ class AudioRendererSink;
|
| class MediaResourceShim;
|
| class ContentDecryptionModule;
|
| class MojoCdmServiceContext;
|
| +class MojoDemuxerServiceContext;
|
| class Renderer;
|
| +class MediaUrlDemuxer;
|
| class VideoRendererSink;
|
|
|
| // A mojom::Renderer implementation that use a media::Renderer to render
|
| @@ -45,6 +47,7 @@ class MEDIA_MOJO_EXPORT MojoRendererService
|
| // Helper function to bind MojoRendererService with a StrongBinding,
|
| // which is safely accessible via the returned StrongBindingPtr.
|
| static mojo::StrongBindingPtr<mojom::Renderer> Create(
|
| + base::WeakPtr<MojoDemuxerServiceContext> mojo_demuxer_service_context,
|
| base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context,
|
| scoped_refptr<AudioRendererSink> audio_sink,
|
| std::unique_ptr<VideoRendererSink> video_sink,
|
| @@ -55,6 +58,7 @@ class MEDIA_MOJO_EXPORT MojoRendererService
|
| // |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<MojoDemuxerServiceContext> mojo_demuxer_service_context,
|
| base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context,
|
| scoped_refptr<AudioRendererSink> audio_sink,
|
| std::unique_ptr<VideoRendererSink> video_sink,
|
| @@ -65,6 +69,7 @@ class MEDIA_MOJO_EXPORT MojoRendererService
|
|
|
| // mojom::Renderer implementation.
|
| void Initialize(mojom::RendererClientAssociatedPtrInfo client,
|
| + int32_t demuxer_id,
|
| base::Optional<std::vector<mojom::DemuxerStreamPtr>> streams,
|
| mojom::AudioRendererSinkPtr audio_renderer_sink_ptr,
|
| mojom::VideoRendererSinkPtr video_renderer_sink_ptr,
|
| @@ -104,10 +109,10 @@ class MEDIA_MOJO_EXPORT MojoRendererService
|
|
|
| // Called when the MediaResourceShim is ready to go (has a config,
|
| // pipe handle, etc) and can be handed off to a renderer for use.
|
| - void OnStreamReady(const base::Callback<void(bool)>& callback);
|
| + void OnStreamReady(const InitializeCallback& callback);
|
|
|
| // Called when |audio_renderer_| initialization has completed.
|
| - void OnRendererInitializeDone(const base::Callback<void(bool)>& callback,
|
| + void OnRendererInitializeDone(const InitializeCallback& callback,
|
| PipelineStatus status);
|
|
|
| // Periodically polls the media time from the renderer and notifies the client
|
| @@ -126,12 +131,19 @@ class MEDIA_MOJO_EXPORT MojoRendererService
|
| const base::Callback<void(bool)>& callback,
|
| bool success);
|
|
|
| + void OnDemuxerInitialized(const InitializeCallback& callback,
|
| + PipelineStatus status);
|
| + void InitializeRenderer(const InitializeCallback& callback);
|
| +
|
| + base::WeakPtr<MojoDemuxerServiceContext> mojo_demuxer_service_context_;
|
| base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context_;
|
|
|
| State state_;
|
| double playback_rate_;
|
|
|
| - std::unique_ptr<MediaResource> media_resource_;
|
| + std::unique_ptr<MediaResourceShim> media_resource_shim_;
|
| + std::unique_ptr<MediaUrlDemuxer> media_url_demuxer_;
|
| + MediaResource* media_resource_;
|
|
|
| base::RepeatingTimer time_update_timer_;
|
| base::TimeDelta last_media_time_;
|
|
|