OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_CODEC_PLAYER_H_ | 5 #ifndef MEDIA_BASE_ANDROID_MEDIA_CODEC_PLAYER_H_ |
6 #define MEDIA_BASE_ANDROID_MEDIA_CODEC_PLAYER_H_ | 6 #define MEDIA_BASE_ANDROID_MEDIA_CODEC_PLAYER_H_ |
7 | 7 |
8 #include "base/android/scoped_java_ref.h" | 8 #include "base/android/scoped_java_ref.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 void SetCdm(BrowserCdm* cdm) override; | 194 void SetCdm(BrowserCdm* cdm) override; |
195 | 195 |
196 // DemuxerAndroidClient implementation. | 196 // DemuxerAndroidClient implementation. |
197 void OnDemuxerConfigsAvailable(const DemuxerConfigs& params) override; | 197 void OnDemuxerConfigsAvailable(const DemuxerConfigs& params) override; |
198 void OnDemuxerDataAvailable(const DemuxerData& params) override; | 198 void OnDemuxerDataAvailable(const DemuxerData& params) override; |
199 void OnDemuxerSeekDone(base::TimeDelta actual_browser_seek_time) override; | 199 void OnDemuxerSeekDone(base::TimeDelta actual_browser_seek_time) override; |
200 void OnDemuxerDurationChanged(base::TimeDelta duration) override; | 200 void OnDemuxerDurationChanged(base::TimeDelta duration) override; |
201 | 201 |
202 // For testing only. | 202 // For testing only. |
203 void SetDecodersTimeCallbackForTests(DecodersTimeCallback cb); | 203 void SetDecodersTimeCallbackForTests(DecodersTimeCallback cb); |
| 204 void SetAlwaysReconfigureForTests(DemuxerStream::Type type); |
204 bool IsPrerollingForTests(DemuxerStream::Type type) const; | 205 bool IsPrerollingForTests(DemuxerStream::Type type) const; |
205 | 206 |
206 private: | 207 private: |
207 // The state machine states. | 208 // The state machine states. |
208 enum PlayerState { | 209 enum PlayerState { |
209 kStatePaused, | 210 kStatePaused, |
210 kStateWaitingForConfig, | 211 kStateWaitingForConfig, |
211 kStatePrefetching, | 212 kStatePrefetching, |
212 kStatePlaying, | 213 kStatePlaying, |
213 kStateStopping, | 214 kStateStopping, |
(...skipping 28 matching lines...) Expand all Loading... |
242 const gfx::Size& video_size) override; | 243 const gfx::Size& video_size) override; |
243 | 244 |
244 // This method caches the current time and calls manager's OnTimeUpdate(). | 245 // This method caches the current time and calls manager's OnTimeUpdate(). |
245 void OnTimeUpdate(base::TimeDelta current_timestamp, | 246 void OnTimeUpdate(base::TimeDelta current_timestamp, |
246 base::TimeTicks current_time_ticks) override; | 247 base::TimeTicks current_time_ticks) override; |
247 | 248 |
248 // Callbacks from decoders | 249 // Callbacks from decoders |
249 void RequestDemuxerData(DemuxerStream::Type stream_type); | 250 void RequestDemuxerData(DemuxerStream::Type stream_type); |
250 void OnPrefetchDone(); | 251 void OnPrefetchDone(); |
251 void OnPrerollDone(); | 252 void OnPrerollDone(); |
252 void OnStopDone(); | 253 void OnDecoderDrained(DemuxerStream::Type type); |
| 254 void OnStopDone(DemuxerStream::Type type); |
253 void OnError(); | 255 void OnError(); |
254 void OnStarvation(DemuxerStream::Type stream_type); | 256 void OnStarvation(DemuxerStream::Type stream_type); |
255 void OnTimeIntervalUpdate(DemuxerStream::Type stream_type, | 257 void OnTimeIntervalUpdate(DemuxerStream::Type stream_type, |
256 base::TimeDelta now_playing, | 258 base::TimeDelta now_playing, |
257 base::TimeDelta last_buffered); | 259 base::TimeDelta last_buffered); |
258 | 260 |
259 // Callbacks from video decoder | 261 // Callbacks from video decoder |
260 void OnVideoCodecCreated(); | 262 void OnVideoCodecCreated(); |
261 void OnVideoResolutionChanged(const gfx::Size& size); | 263 void OnVideoResolutionChanged(const gfx::Size& size); |
262 | 264 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 base::WeakPtr<MediaCodecPlayer> media_weak_this_; | 354 base::WeakPtr<MediaCodecPlayer> media_weak_this_; |
353 // NOTE: Weak pointers must be invalidated before all other member variables. | 355 // NOTE: Weak pointers must be invalidated before all other member variables. |
354 base::WeakPtrFactory<MediaCodecPlayer> media_weak_factory_; | 356 base::WeakPtrFactory<MediaCodecPlayer> media_weak_factory_; |
355 | 357 |
356 DISALLOW_COPY_AND_ASSIGN(MediaCodecPlayer); | 358 DISALLOW_COPY_AND_ASSIGN(MediaCodecPlayer); |
357 }; | 359 }; |
358 | 360 |
359 } // namespace media | 361 } // namespace media |
360 | 362 |
361 #endif // MEDIA_BASE_ANDROID_MEDIA_CODEC_PLAYER_H_ | 363 #endif // MEDIA_BASE_ANDROID_MEDIA_CODEC_PLAYER_H_ |
OLD | NEW |