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

Side by Side Diff: media/mojo/services/mojo_renderer_service.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
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_SERVICE_H_ 5 #ifndef MEDIA_MOJO_SERVICES_MOJO_RENDERER_SERVICE_H_
6 #define MEDIA_MOJO_SERVICES_MOJO_RENDERER_SERVICE_H_ 6 #define MEDIA_MOJO_SERVICES_MOJO_RENDERER_SERVICE_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 80
81 // Called when the DemuxerStreamProviderShim is ready to go (has a config, 81 // Called when the DemuxerStreamProviderShim is ready to go (has a config,
82 // pipe handle, etc) and can be handed off to a renderer for use. 82 // pipe handle, etc) and can be handed off to a renderer for use.
83 void OnStreamReady(const base::Callback<void(bool)>& callback); 83 void OnStreamReady(const base::Callback<void(bool)>& callback);
84 84
85 // Called when |audio_renderer_| initialization has completed. 85 // Called when |audio_renderer_| initialization has completed.
86 void OnRendererInitializeDone(const base::Callback<void(bool)>& callback, 86 void OnRendererInitializeDone(const base::Callback<void(bool)>& callback,
87 PipelineStatus status); 87 PipelineStatus status);
88 88
89 // Periodically polls the media time from the renderer and notifies the client 89 // Periodically polls the media time from the renderer and notifies the client
90 // if the media time has changed since the last update. If |force| is true, 90 // if the media time has changed since the last update.
91 // the client is notified even if the time is unchanged. 91 // If |force| is true, the client is notified even if the time is unchanged.
92 // If |range| is true, an interpolation time range is reported.
92 void UpdateMediaTime(bool force); 93 void UpdateMediaTime(bool force);
93 void CancelPeriodicMediaTimeUpdates(); 94 void CancelPeriodicMediaTimeUpdates();
94 void SchedulePeriodicMediaTimeUpdates(); 95 void SchedulePeriodicMediaTimeUpdates();
95 96
96 // Callback executed once Flush() completes. 97 // Callback executed once Flush() completes.
97 void OnFlushCompleted(const FlushCallback& callback); 98 void OnFlushCompleted(const FlushCallback& callback);
98 99
99 // Callback executed once SetCdm() completes. 100 // Callback executed once SetCdm() completes.
100 void OnCdmAttached(scoped_refptr<MediaKeys> cdm, 101 void OnCdmAttached(scoped_refptr<MediaKeys> cdm,
101 const base::Callback<void(bool)>& callback, 102 const base::Callback<void(bool)>& callback,
102 bool success); 103 bool success);
103 104
104 mojo::StrongBinding<mojom::Renderer> binding_; 105 mojo::StrongBinding<mojom::Renderer> binding_;
105 106
106 base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context_; 107 base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context_;
107 108
108 State state_; 109 State state_;
110 double playback_rate_;
109 111
110 std::unique_ptr<DemuxerStreamProvider> stream_provider_; 112 std::unique_ptr<DemuxerStreamProvider> stream_provider_;
111 113
112 base::RepeatingTimer time_update_timer_; 114 base::RepeatingTimer time_update_timer_;
113 base::TimeDelta last_media_time_; 115 base::TimeDelta last_media_time_;
114 116
115 mojom::RendererClientPtr client_; 117 mojom::RendererClientPtr client_;
116 118
117 // Hold a reference to the CDM set on the |renderer_| so that the CDM won't be 119 // Hold a reference to the CDM set on the |renderer_| so that the CDM won't be
118 // destructed while the |renderer_| is still using it. 120 // destructed while the |renderer_| is still using it.
(...skipping 12 matching lines...) Expand all
131 133
132 base::WeakPtr<MojoRendererService> weak_this_; 134 base::WeakPtr<MojoRendererService> weak_this_;
133 base::WeakPtrFactory<MojoRendererService> weak_factory_; 135 base::WeakPtrFactory<MojoRendererService> weak_factory_;
134 136
135 DISALLOW_COPY_AND_ASSIGN(MojoRendererService); 137 DISALLOW_COPY_AND_ASSIGN(MojoRendererService);
136 }; 138 };
137 139
138 } // namespace media 140 } // namespace media
139 141
140 #endif // MEDIA_MOJO_SERVICES_MOJO_RENDERER_SERVICE_H_ 142 #endif // MEDIA_MOJO_SERVICES_MOJO_RENDERER_SERVICE_H_
OLDNEW
« no previous file with comments | « media/mojo/services/media_mojo_unittest.cc ('k') | media/mojo/services/mojo_renderer_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698