| 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 |