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

Side by Side Diff: media/mojo/services/mojo_media_client.h

Issue 2544523002: Pass Connector* into MojoMediaClient::Initialize(). (Closed)
Patch Set: Rebase. Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_MOJO_SERVICES_MOJO_MEDIA_CLIENT_H_ 5 #ifndef MEDIA_MOJO_SERVICES_MOJO_MEDIA_CLIENT_H_
6 #define MEDIA_MOJO_SERVICES_MOJO_MEDIA_CLIENT_H_ 6 #define MEDIA_MOJO_SERVICES_MOJO_MEDIA_CLIENT_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "media/mojo/services/media_mojo_export.h" 12 #include "media/mojo/services/media_mojo_export.h"
13 13
14 namespace base { 14 namespace base {
15 class SingleThreadTaskRunner; 15 class SingleThreadTaskRunner;
16 } 16 }
17 17
18 namespace service_manager { 18 namespace service_manager {
19 class Connector;
19 namespace mojom { 20 namespace mojom {
20 class InterfaceProvider; 21 class InterfaceProvider;
21 } 22 }
22 } 23 }
23 24
24 namespace media { 25 namespace media {
25 26
26 class AudioDecoder; 27 class AudioDecoder;
27 class AudioRendererSink; 28 class AudioRendererSink;
28 class CdmFactory; 29 class CdmFactory;
29 class MediaLog; 30 class MediaLog;
30 class RendererFactory; 31 class RendererFactory;
31 class VideoDecoder; 32 class VideoDecoder;
32 class VideoRendererSink; 33 class VideoRendererSink;
33 34
34 class MEDIA_MOJO_EXPORT MojoMediaClient { 35 class MEDIA_MOJO_EXPORT MojoMediaClient {
35 public: 36 public:
36 // Called before the host application is scheduled to quit. 37 // Called before the host application is scheduled to quit.
37 // The application message loop is still valid at this point, so all clean 38 // The application message loop is still valid at this point, so all clean
38 // up tasks requiring the message loop must be completed before returning. 39 // up tasks requiring the message loop must be completed before returning.
39 virtual ~MojoMediaClient(); 40 virtual ~MojoMediaClient();
40 41
41 // Called exactly once before any other method. 42 // Called exactly once before any other method. |connector| can be used by
42 virtual void Initialize(); 43 // this to connect to other services. It is guaranteed to outlive this.
xhwang 2016/11/30 18:49:31 s/this/|this|
slan 2016/12/01 00:47:22 Done.
44 virtual void Initialize(service_manager::Connector* connector);
43 45
44 virtual std::unique_ptr<AudioDecoder> CreateAudioDecoder( 46 virtual std::unique_ptr<AudioDecoder> CreateAudioDecoder(
45 scoped_refptr<base::SingleThreadTaskRunner> task_runner); 47 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
46 48
47 virtual std::unique_ptr<VideoDecoder> CreateVideoDecoder( 49 virtual std::unique_ptr<VideoDecoder> CreateVideoDecoder(
48 scoped_refptr<base::SingleThreadTaskRunner> task_runner); 50 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
49 51
50 // Returns the output sink used for rendering audio on |audio_device_id|. 52 // Returns the output sink used for rendering audio on |audio_device_id|.
51 // May be null if the RendererFactory doesn't need an audio sink. 53 // May be null if the RendererFactory doesn't need an audio sink.
52 virtual scoped_refptr<AudioRendererSink> CreateAudioRendererSink( 54 virtual scoped_refptr<AudioRendererSink> CreateAudioRendererSink(
53 const std::string& audio_device_id); 55 const std::string& audio_device_id);
54 56
55 // Returns the output sink used for rendering video. 57 // Returns the output sink used for rendering video.
56 // May be null if the RendererFactory doesn't need a video sink. 58 // May be null if the RendererFactory doesn't need a video sink.
57 virtual std::unique_ptr<VideoRendererSink> CreateVideoRendererSink( 59 virtual std::unique_ptr<VideoRendererSink> CreateVideoRendererSink(
58 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); 60 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner);
59 61
60 // Returns the RendererFactory to be used by MojoRendererService. 62 // Returns the RendererFactory to be used by MojoRendererService.
61 virtual std::unique_ptr<RendererFactory> CreateRendererFactory( 63 virtual std::unique_ptr<RendererFactory> CreateRendererFactory(
62 const scoped_refptr<MediaLog>& media_log); 64 const scoped_refptr<MediaLog>& media_log);
63 65
64 // Returns the CdmFactory to be used by MojoCdmService. 66 // Returns the CdmFactory to be used by MojoCdmService. |interface_provider|
67 // can be used to request interfaces provided by the remote client. It may be
xhwang 2016/11/30 18:49:31 s/by the remote client/remotely? In chrome, the i
slan 2016/12/01 00:47:22 Yes, I like this phrasing. Done.
68 // a nullptr if the client chose not to bind the InterfacePtr.
65 virtual std::unique_ptr<CdmFactory> CreateCdmFactory( 69 virtual std::unique_ptr<CdmFactory> CreateCdmFactory(
66 service_manager::mojom::InterfaceProvider* interface_provider); 70 service_manager::mojom::InterfaceProvider* interface_provider);
67 71
68 protected: 72 protected:
69 MojoMediaClient(); 73 MojoMediaClient();
70 }; 74 };
71 75
72 } // namespace media 76 } // namespace media
73 77
74 #endif // MEDIA_MOJO_SERVICES_MOJO_MEDIA_CLIENT_H_ 78 #endif // MEDIA_MOJO_SERVICES_MOJO_MEDIA_CLIENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698