Index: media/mojo/services/mojo_media_client.h |
diff --git a/media/mojo/services/mojo_media_client.h b/media/mojo/services/mojo_media_client.h |
index 88508268f58a09727b90c6bef93b05683ef9ac50..7e6d07eab141c073fffc0eef4f7df7c08198646f 100644 |
--- a/media/mojo/services/mojo_media_client.h |
+++ b/media/mojo/services/mojo_media_client.h |
@@ -12,6 +12,7 @@ |
#include "media/base/audio_hardware_config.h" |
#include "media/base/audio_renderer_sink.h" |
#include "media/base/media_log.h" |
+#include "media/base/renderer_factory.h" |
#include "media/base/video_decoder.h" |
#include "media/base/video_renderer_sink.h" |
@@ -23,17 +24,23 @@ class PlatformMojoMediaClient { |
public: |
virtual ~PlatformMojoMediaClient() {}; |
- // The list of audio or video decoders for use with the AudioRenderer or |
- // VideoRenderer respectively. Ownership of the decoders is passed to the |
- // caller. The methods on each decoder will only be called on |
- // |media_task_runner|. |media_log_cb| should be used to log errors or |
- // important status information. |
+ // Returns the RendererFactory to be used by MojoRendererService. If returns |
+ // null, a RendererImpl will be used with audio/video decoders provided in |
+ // GetAudioDecoders() and GetVideoDecoders(). |
+ virtual scoped_ptr<RendererFactory> GetRendererFactory( |
+ const scoped_refptr<MediaLog>& media_log) = 0; |
+ |
+ // The list of audio or video decoders for use with RendererImpl when |
+ // GetRendererFactory() returns null. Ownership of the decoders is passed to |
+ // the caller. The methods on each decoder will only be called on |
+ // |media_task_runner|. |media_log| should be used to log errors or important |
+ // status information. |
virtual ScopedVector<AudioDecoder> GetAudioDecoders( |
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
- const LogCB& media_log_cb) = 0; |
+ const scoped_refptr<MediaLog>& media_log) = 0; |
virtual ScopedVector<VideoDecoder> GetVideoDecoders( |
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
- const LogCB& media_log_cb) = 0; |
+ const scoped_refptr<MediaLog>& media_log) = 0; |
// The output sink used for rendering audio or video respectively. |
virtual scoped_refptr<AudioRendererSink> GetAudioRendererSink() = 0; |
@@ -52,12 +59,14 @@ class MojoMediaClient { |
static MojoMediaClient* Get(); |
// Copy of the PlatformMojoMediaClient interface. |
+ scoped_ptr<RendererFactory> GetRendererFactory( |
+ const scoped_refptr<MediaLog>& media_log); |
ScopedVector<AudioDecoder> GetAudioDecoders( |
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
- const LogCB& media_log_cb); |
+ const scoped_refptr<MediaLog>& media_log); |
ScopedVector<VideoDecoder> GetVideoDecoders( |
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
- const LogCB& media_log_cb); |
+ const scoped_refptr<MediaLog>& media_log); |
scoped_refptr<AudioRendererSink> GetAudioRendererSink(); |
scoped_ptr<VideoRendererSink> GetVideoRendererSink( |
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); |