Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1075)

Unified Diff: media/mojo/services/mojo_media_client.h

Issue 1209363004: media: Support RendererFactory in MojoMediaClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix android build (hopefully) Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698