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

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

Issue 1255083004: media: Mojo interfaces renaming. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 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_RENDERER_IMPL_H_ 5 #ifndef MEDIA_MOJO_SERVICES_MOJO_RENDERER_IMPL_H_
6 #define MEDIA_MOJO_SERVICES_MOJO_RENDERER_IMPL_H_ 6 #define MEDIA_MOJO_SERVICES_MOJO_RENDERER_IMPL_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "media/base/renderer.h" 10 #include "media/base/renderer.h"
11 #include "media/mojo/interfaces/media_renderer.mojom.h" 11 #include "media/mojo/interfaces/renderer.mojom.h"
12 12
13 namespace base { 13 namespace base {
14 class SingleThreadTaskRunner; 14 class SingleThreadTaskRunner;
15 } 15 }
16 16
17 namespace media { 17 namespace media {
18 18
19 class DemuxerStreamProvider; 19 class DemuxerStreamProvider;
20 20
21 // A media::Renderer that proxies to a interfaces::MediaRenderer. That 21 // A media::Renderer that proxies to a interfaces::Renderer. That
22 // interfaces::MediaRenderer proxies back to the MojoRendererImpl via the 22 // interfaces::Renderer proxies back to the MojoRendererImpl via the
23 // interfaces::MediaRendererClient interface. 23 // interfaces::RendererClient interface.
24 // 24 //
25 // MojoRendererImpl implements media::Renderer for use as either an audio 25 // MojoRendererImpl implements media::Renderer for use as either an audio
26 // or video renderer. 26 // or video renderer.
27 class MojoRendererImpl : public Renderer, 27 class MojoRendererImpl : public Renderer, public interfaces::RendererClient {
28 public interfaces::MediaRendererClient {
29 public: 28 public:
30 // |task_runner| is the TaskRunner on which all methods are invoked. 29 // |task_runner| is the TaskRunner on which all methods are invoked.
31 MojoRendererImpl( 30 MojoRendererImpl(
32 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 31 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
33 interfaces::MediaRendererPtr remote_media_renderer); 32 interfaces::RendererPtr remote_renderer);
34 ~MojoRendererImpl() override; 33 ~MojoRendererImpl() override;
35 34
36 // Renderer implementation. 35 // Renderer implementation.
37 void Initialize(DemuxerStreamProvider* demuxer_stream_provider, 36 void Initialize(DemuxerStreamProvider* demuxer_stream_provider,
38 const PipelineStatusCB& init_cb, 37 const PipelineStatusCB& init_cb,
39 const StatisticsCB& statistics_cb, 38 const StatisticsCB& statistics_cb,
40 const BufferingStateCB& buffering_state_cb, 39 const BufferingStateCB& buffering_state_cb,
41 const base::Closure& ended_cb, 40 const base::Closure& ended_cb,
42 const PipelineStatusCB& error_cb, 41 const PipelineStatusCB& error_cb,
43 const base::Closure& waiting_for_decryption_key_cb) override; 42 const base::Closure& waiting_for_decryption_key_cb) override;
44 void SetCdm(CdmContext* cdm_context, 43 void SetCdm(CdmContext* cdm_context,
45 const CdmAttachedCB& cdm_attached_cb) override; 44 const CdmAttachedCB& cdm_attached_cb) override;
46 void Flush(const base::Closure& flush_cb) override; 45 void Flush(const base::Closure& flush_cb) override;
47 void StartPlayingFrom(base::TimeDelta time) override; 46 void StartPlayingFrom(base::TimeDelta time) override;
48 void SetPlaybackRate(double playback_rate) override; 47 void SetPlaybackRate(double playback_rate) override;
49 void SetVolume(float volume) override; 48 void SetVolume(float volume) override;
50 base::TimeDelta GetMediaTime() override; 49 base::TimeDelta GetMediaTime() override;
51 bool HasAudio() override; 50 bool HasAudio() override;
52 bool HasVideo() override; 51 bool HasVideo() override;
53 52
54 // interfaces::MediaRendererClient implementation. 53 // interfaces::RendererClient implementation.
55 void OnTimeUpdate(int64_t time_usec, int64_t max_time_usec) override; 54 void OnTimeUpdate(int64_t time_usec, int64_t max_time_usec) override;
56 void OnBufferingStateChange(interfaces::BufferingState state) override; 55 void OnBufferingStateChange(interfaces::BufferingState state) override;
57 void OnEnded() override; 56 void OnEnded() override;
58 void OnError() override; 57 void OnError() override;
59 58
60 private: 59 private:
61 // Called when |remote_media_renderer_| has finished initializing. 60 // Called when |remote_renderer_| has finished initializing.
62 void OnInitialized(bool success); 61 void OnInitialized(bool success);
63 62
64 // Task runner used to execute pipeline tasks. 63 // Task runner used to execute pipeline tasks.
65 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 64 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
66 65
67 DemuxerStreamProvider* demuxer_stream_provider_; 66 DemuxerStreamProvider* demuxer_stream_provider_;
68 interfaces::MediaRendererPtr remote_media_renderer_; 67 interfaces::RendererPtr remote_renderer_;
69 mojo::Binding<MediaRendererClient> binding_; 68 mojo::Binding<RendererClient> binding_;
70 69
71 // Callbacks passed to Initialize() that we forward messages from 70 // Callbacks passed to Initialize() that we forward messages from
72 // |remote_media_renderer_| through. 71 // |remote_renderer_| through.
73 PipelineStatusCB init_cb_; 72 PipelineStatusCB init_cb_;
74 base::Closure ended_cb_; 73 base::Closure ended_cb_;
75 PipelineStatusCB error_cb_; 74 PipelineStatusCB error_cb_;
76 BufferingStateCB buffering_state_cb_; 75 BufferingStateCB buffering_state_cb_;
77 76
78 // Lock used to serialize access for the following data members. 77 // Lock used to serialize access for the following data members.
79 mutable base::Lock lock_; 78 mutable base::Lock lock_;
80 79
81 base::TimeDelta time_; 80 base::TimeDelta time_;
82 // TODO(xhwang): It seems we don't need |max_time_| now. Drop it! 81 // TODO(xhwang): It seems we don't need |max_time_| now. Drop it!
83 base::TimeDelta max_time_; 82 base::TimeDelta max_time_;
84 83
85 base::WeakPtrFactory<MojoRendererImpl> weak_factory_; 84 base::WeakPtrFactory<MojoRendererImpl> weak_factory_;
86 85
87 DISALLOW_COPY_AND_ASSIGN(MojoRendererImpl); 86 DISALLOW_COPY_AND_ASSIGN(MojoRendererImpl);
88 }; 87 };
89 88
90 } // namespace media 89 } // namespace media
91 90
92 #endif // MEDIA_MOJO_SERVICES_MOJO_RENDERER_IMPL_H_ 91 #endif // MEDIA_MOJO_SERVICES_MOJO_RENDERER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698