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

Side by Side Diff: media/base/android/media_source_player.h

Issue 16823003: Replace erroneous use of base::Time with base::TimeTicks throughout media code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/PresubmitPromptWarning/PresubmitPromptOrNotify/ Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_BASE_ANDROID_MEDIA_SOURCE_PLAYER_H_ 5 #ifndef MEDIA_BASE_ANDROID_MEDIA_SOURCE_PLAYER_H_
6 #define MEDIA_BASE_ANDROID_MEDIA_SOURCE_PLAYER_H_ 6 #define MEDIA_BASE_ANDROID_MEDIA_SOURCE_PLAYER_H_
7 7
8 #include <jni.h> 8 #include <jni.h>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 28 matching lines...) Expand all
39 DECODE_TRY_AGAIN_LATER = 1, 39 DECODE_TRY_AGAIN_LATER = 1,
40 DECODE_FAILED = 2, 40 DECODE_FAILED = 2,
41 }; 41 };
42 42
43 virtual ~MediaDecoderJob(); 43 virtual ~MediaDecoderJob();
44 44
45 // Callback when a decoder job finishes its work. Args: whether decode 45 // Callback when a decoder job finishes its work. Args: whether decode
46 // finished successfully, presentation time, timestamp when the data is 46 // finished successfully, presentation time, timestamp when the data is
47 // rendered, whether decoder is reaching EOS. 47 // rendered, whether decoder is reaching EOS.
48 typedef base::Callback<void(DecodeStatus, const base::TimeDelta&, 48 typedef base::Callback<void(DecodeStatus, const base::TimeDelta&,
49 const base::Time&, bool)> DecoderCallback; 49 const base::TimeTicks&, bool)> DecoderCallback;
50 50
51 // Called by MediaSourcePlayer to decode some data. 51 // Called by MediaSourcePlayer to decode some data.
52 void Decode( 52 void Decode(
53 const MediaPlayerHostMsg_ReadFromDemuxerAck_Params::AccessUnit& unit, 53 const MediaPlayerHostMsg_ReadFromDemuxerAck_Params::AccessUnit& unit,
54 const base::Time& start_wallclock_time, 54 const base::TimeTicks& start_wallclock_time,
55 const base::TimeDelta& start_presentation_timestamp, 55 const base::TimeDelta& start_presentation_timestamp,
56 const MediaDecoderJob::DecoderCallback& callback); 56 const MediaDecoderJob::DecoderCallback& callback);
57 57
58 // Flush the decoder. 58 // Flush the decoder.
59 void Flush(); 59 void Flush();
60 60
61 struct Deleter { 61 struct Deleter {
62 inline void operator()(MediaDecoderJob* ptr) const { ptr->Release(); } 62 inline void operator()(MediaDecoderJob* ptr) const { ptr->Release(); }
63 }; 63 };
64 64
(...skipping 13 matching lines...) Expand all
78 bool end_of_stream, const MediaDecoderJob::DecoderCallback& callback); 78 bool end_of_stream, const MediaDecoderJob::DecoderCallback& callback);
79 79
80 // Helper function to decoder data on |thread_|. |unit| contains all the data 80 // Helper function to decoder data on |thread_|. |unit| contains all the data
81 // to be decoded. |start_wallclock_time| and |start_presentation_timestamp| 81 // to be decoded. |start_wallclock_time| and |start_presentation_timestamp|
82 // represent the system time and the presentation timestamp when the first 82 // represent the system time and the presentation timestamp when the first
83 // frame is rendered. We use these information to estimate when the current 83 // frame is rendered. We use these information to estimate when the current
84 // frame should be rendered. If |needs_flush| is true, codec needs to be 84 // frame should be rendered. If |needs_flush| is true, codec needs to be
85 // flushed at the beginning of this call. 85 // flushed at the beginning of this call.
86 void DecodeInternal( 86 void DecodeInternal(
87 const MediaPlayerHostMsg_ReadFromDemuxerAck_Params::AccessUnit& unit, 87 const MediaPlayerHostMsg_ReadFromDemuxerAck_Params::AccessUnit& unit,
88 const base::Time& start_wallclock_time, 88 const base::TimeTicks& start_wallclock_time,
89 const base::TimeDelta& start_presentation_timestamp, 89 const base::TimeDelta& start_presentation_timestamp,
90 bool needs_flush, 90 bool needs_flush,
91 const MediaDecoderJob::DecoderCallback& callback); 91 const MediaDecoderJob::DecoderCallback& callback);
92 92
93 // The media codec bridge used for decoding. 93 // The media codec bridge used for decoding.
94 scoped_ptr<MediaCodecBridge> media_codec_bridge_; 94 scoped_ptr<MediaCodecBridge> media_codec_bridge_;
95 95
96 // The message loop where callbacks should be dispatched. 96 // The message loop where callbacks should be dispatched.
97 scoped_refptr<base::MessageLoopProxy> message_loop_; 97 scoped_refptr<base::MessageLoopProxy> message_loop_;
98 98
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 virtual void ReadFromDemuxerAck( 154 virtual void ReadFromDemuxerAck(
155 const MediaPlayerHostMsg_ReadFromDemuxerAck_Params& params) OVERRIDE; 155 const MediaPlayerHostMsg_ReadFromDemuxerAck_Params& params) OVERRIDE;
156 156
157 // Called when the demuxer has changed the duration. 157 // Called when the demuxer has changed the duration.
158 virtual void DurationChanged(const base::TimeDelta& duration) OVERRIDE; 158 virtual void DurationChanged(const base::TimeDelta& duration) OVERRIDE;
159 159
160 private: 160 private:
161 // Update the timestamps for A/V sync scheduling. 161 // Update the timestamps for A/V sync scheduling.
162 void UpdateTimestamps( 162 void UpdateTimestamps(
163 const base::TimeDelta& presentation_timestamp, 163 const base::TimeDelta& presentation_timestamp,
164 const base::Time& wallclock_time); 164 const base::TimeTicks& wallclock_time);
165 165
166 // Helper function for starting media playback. 166 // Helper function for starting media playback.
167 void StartInternal(); 167 void StartInternal();
168 168
169 // Playback is completed for one channel. 169 // Playback is completed for one channel.
170 void PlaybackCompleted(bool is_audio); 170 void PlaybackCompleted(bool is_audio);
171 171
172 // Called when the decoder finishes its task. 172 // Called when the decoder finishes its task.
173 void MediaDecoderCallback( 173 void MediaDecoderCallback(
174 bool is_audio, MediaDecoderJob::DecodeStatus decode_status, 174 bool is_audio, MediaDecoderJob::DecodeStatus decode_status,
175 const base::TimeDelta& presentation_timestamp, 175 const base::TimeDelta& presentation_timestamp,
176 const base::Time& wallclock_time, bool end_of_stream); 176 const base::TimeTicks& wallclock_time, bool end_of_stream);
177 177
178 // Handle pending events when all the decoder jobs finished. 178 // Handle pending events when all the decoder jobs finished.
179 void ProcessPendingEvents(); 179 void ProcessPendingEvents();
180 180
181 // Helper method to create the decoder jobs. 181 // Helper method to create the decoder jobs.
182 void CreateVideoDecoderJob(); 182 void CreateVideoDecoderJob();
183 void CreateAudioDecoderJob(); 183 void CreateAudioDecoderJob();
184 184
185 // Flush the decoders and clean up all the data needs to be decoded. 185 // Flush the decoders and clean up all the data needs to be decoded.
186 void ClearDecodingData(); 186 void ClearDecodingData();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 bool audio_finished_; 224 bool audio_finished_;
225 bool video_finished_; 225 bool video_finished_;
226 bool playing_; 226 bool playing_;
227 227
228 // Timestamps for providing simple A/V sync. When start decoding an audio 228 // Timestamps for providing simple A/V sync. When start decoding an audio
229 // chunk, we record its presentation timestamp and the current system time. 229 // chunk, we record its presentation timestamp and the current system time.
230 // Then we use this information to estimate when the next audio/video frame 230 // Then we use this information to estimate when the next audio/video frame
231 // should be rendered. 231 // should be rendered.
232 // TODO(qinmin): Need to fix the problem if audio/video lagged too far behind 232 // TODO(qinmin): Need to fix the problem if audio/video lagged too far behind
233 // due to network or decoding problem. 233 // due to network or decoding problem.
234 base::Time start_wallclock_time_; 234 base::TimeTicks start_wallclock_time_;
235 base::TimeDelta start_presentation_timestamp_; 235 base::TimeDelta start_presentation_timestamp_;
236 236
237 // The surface object currently owned by the player. 237 // The surface object currently owned by the player.
238 gfx::ScopedJavaSurface surface_; 238 gfx::ScopedJavaSurface surface_;
239 239
240 // Decoder jobs 240 // Decoder jobs
241 ScopedMediaDecoderJob audio_decoder_job_; 241 ScopedMediaDecoderJob audio_decoder_job_;
242 ScopedMediaDecoderJob video_decoder_job_; 242 ScopedMediaDecoderJob video_decoder_job_;
243 243
244 bool reconfig_audio_decoder_; 244 bool reconfig_audio_decoder_;
(...skipping 11 matching lines...) Expand all
256 256
257 // Weak pointer passed to media decoder jobs for callbacks. 257 // Weak pointer passed to media decoder jobs for callbacks.
258 base::WeakPtrFactory<MediaSourcePlayer> weak_this_; 258 base::WeakPtrFactory<MediaSourcePlayer> weak_this_;
259 259
260 DISALLOW_COPY_AND_ASSIGN(MediaSourcePlayer); 260 DISALLOW_COPY_AND_ASSIGN(MediaSourcePlayer);
261 }; 261 };
262 262
263 } // namespace media 263 } // namespace media
264 264
265 #endif // MEDIA_BASE_ANDROID_MEDIA_SOURCE_PLAYER_H_ 265 #endif // MEDIA_BASE_ANDROID_MEDIA_SOURCE_PLAYER_H_
OLDNEW
« no previous file with comments | « media/audio/win/audio_unified_win_unittest.cc ('k') | media/base/android/media_source_player.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698