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

Side by Side Diff: media/mojo/clients/mojo_renderer.h

Issue 2239243002: Interpolate media time for mojo rendering pipeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moves media-time clamping to PipelineImpl Created 4 years, 3 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
« no previous file with comments | « media/base/time_delta_interpolator_unittest.cc ('k') | media/mojo/clients/mojo_renderer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_CLIENTS_MOJO_RENDERER_H_ 5 #ifndef MEDIA_MOJO_CLIENTS_MOJO_RENDERER_H_
6 #define MEDIA_MOJO_CLIENTS_MOJO_RENDERER_H_ 6 #define MEDIA_MOJO_CLIENTS_MOJO_RENDERER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/time/default_tick_clock.h"
11 #include "media/base/demuxer_stream.h" 12 #include "media/base/demuxer_stream.h"
12 #include "media/base/renderer.h" 13 #include "media/base/renderer.h"
14 #include "media/base/time_delta_interpolator.h"
13 #include "media/mojo/interfaces/renderer.mojom.h" 15 #include "media/mojo/interfaces/renderer.mojom.h"
14 #include "mojo/public/cpp/bindings/binding.h" 16 #include "mojo/public/cpp/bindings/binding.h"
15 17
16 namespace base { 18 namespace base {
17 class SingleThreadTaskRunner; 19 class SingleThreadTaskRunner;
18 } 20 }
19 21
20 namespace media { 22 namespace media {
21 23
22 class DemuxerStreamProvider; 24 class DemuxerStreamProvider;
(...skipping 29 matching lines...) Expand all
52 void StartPlayingFrom(base::TimeDelta time) override; 54 void StartPlayingFrom(base::TimeDelta time) override;
53 void SetPlaybackRate(double playback_rate) override; 55 void SetPlaybackRate(double playback_rate) override;
54 void SetVolume(float volume) override; 56 void SetVolume(float volume) override;
55 base::TimeDelta GetMediaTime() override; 57 base::TimeDelta GetMediaTime() override;
56 bool HasAudio() override; 58 bool HasAudio() override;
57 bool HasVideo() override; 59 bool HasVideo() override;
58 60
59 private: 61 private:
60 // mojom::RendererClient implementation, dispatched on the 62 // mojom::RendererClient implementation, dispatched on the
61 // |task_runner_|. 63 // |task_runner_|.
62 void OnTimeUpdate(base::TimeDelta time, base::TimeDelta max_time) override; 64 void OnTimeUpdate(base::TimeDelta time,
65 base::TimeDelta max_time,
66 base::TimeTicks capture_time) override;
63 void OnBufferingStateChange(mojom::BufferingState state) override; 67 void OnBufferingStateChange(mojom::BufferingState state) override;
64 void OnEnded() override; 68 void OnEnded() override;
65 void OnError() override; 69 void OnError() override;
66 void OnVideoNaturalSizeChange(const gfx::Size& size) override; 70 void OnVideoNaturalSizeChange(const gfx::Size& size) override;
67 void OnVideoOpacityChange(bool opaque) override; 71 void OnVideoOpacityChange(bool opaque) override;
68 void OnWaitingForDecryptionKey() override; 72 void OnWaitingForDecryptionKey() override;
69 void OnStatisticsUpdate(const PipelineStatistics& stats) override; 73 void OnStatisticsUpdate(const PipelineStatistics& stats) override;
70 void OnDurationChange(base::TimeDelta duration) override; 74 void OnDurationChange(base::TimeDelta duration) override;
71 75
72 // Binds |remote_renderer_| to the mojo message pipe. Can be called multiple 76 // Binds |remote_renderer_| to the mojo message pipe. Can be called multiple
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 137
134 // Binding for RendererClient, bound to the |task_runner_|. 138 // Binding for RendererClient, bound to the |task_runner_|.
135 mojo::Binding<RendererClient> binding_; 139 mojo::Binding<RendererClient> binding_;
136 140
137 bool encountered_error_ = false; 141 bool encountered_error_ = false;
138 142
139 PipelineStatusCB init_cb_; 143 PipelineStatusCB init_cb_;
140 base::Closure flush_cb_; 144 base::Closure flush_cb_;
141 CdmAttachedCB cdm_attached_cb_; 145 CdmAttachedCB cdm_attached_cb_;
142 146
143 // Lock used to serialize access for |time_|. 147 // Lock used to serialize access for |time_interpolator_|.
144 mutable base::Lock lock_; 148 mutable base::Lock lock_;
145 base::TimeDelta time_; 149 base::DefaultTickClock media_clock_;
150 media::TimeDeltaInterpolator media_time_interpolator_;
146 151
147 DISALLOW_COPY_AND_ASSIGN(MojoRenderer); 152 DISALLOW_COPY_AND_ASSIGN(MojoRenderer);
148 }; 153 };
149 154
150 } // namespace media 155 } // namespace media
151 156
152 #endif // MEDIA_MOJO_CLIENTS_MOJO_RENDERER_H_ 157 #endif // MEDIA_MOJO_CLIENTS_MOJO_RENDERER_H_
OLDNEW
« no previous file with comments | « media/base/time_delta_interpolator_unittest.cc ('k') | media/mojo/clients/mojo_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698