| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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_BLINK_WEBMEDIAPLAYER_IMPL_H_ | 5 #ifndef MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ |
| 6 #define MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ | 6 #define MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| 11 #include <string> | 11 #include <string> |
| 12 #include <vector> | 12 #include <vector> |
| 13 | 13 |
| 14 #include "base/cancelable_callback.h" | 14 #include "base/cancelable_callback.h" |
| 15 #include "base/compiler_specific.h" | 15 #include "base/compiler_specific.h" |
| 16 #include "base/macros.h" | 16 #include "base/macros.h" |
| 17 #include "base/memory/linked_ptr.h" | 17 #include "base/memory/linked_ptr.h" |
| 18 #include "base/memory/ref_counted.h" | 18 #include "base/memory/ref_counted.h" |
| 19 #include "base/memory/weak_ptr.h" | 19 #include "base/memory/weak_ptr.h" |
| 20 #include "base/threading/thread.h" | 20 #include "base/threading/thread.h" |
| 21 #include "base/time/default_tick_clock.h" | 21 #include "base/time/default_tick_clock.h" |
| 22 #include "base/time/time.h" |
| 22 #include "base/timer/elapsed_timer.h" | 23 #include "base/timer/elapsed_timer.h" |
| 23 #include "base/timer/timer.h" | 24 #include "base/timer/timer.h" |
| 24 #include "build/build_config.h" | 25 #include "build/build_config.h" |
| 25 #include "media/base/media_observer.h" | 26 #include "media/base/media_observer.h" |
| 26 #include "media/base/media_tracks.h" | 27 #include "media/base/media_tracks.h" |
| 27 #include "media/base/pipeline_impl.h" | 28 #include "media/base/pipeline_impl.h" |
| 28 #include "media/base/renderer_factory.h" | 29 #include "media/base/renderer_factory.h" |
| 29 #include "media/base/surface_manager.h" | 30 #include "media/base/surface_manager.h" |
| 30 #include "media/base/text_track.h" | 31 #include "media/base/text_track.h" |
| 31 #include "media/blink/buffered_data_source_host_impl.h" | 32 #include "media/blink/buffered_data_source_host_impl.h" |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 // Returns true if the player is hidden. | 365 // Returns true if the player is hidden. |
| 365 bool IsHidden() const; | 366 bool IsHidden() const; |
| 366 | 367 |
| 367 // Return whether |pipeline_metadata_| is compatible with an overlay. This | 368 // Return whether |pipeline_metadata_| is compatible with an overlay. This |
| 368 // is intended for android. | 369 // is intended for android. |
| 369 bool DoesOverlaySupportMetadata() const; | 370 bool DoesOverlaySupportMetadata() const; |
| 370 | 371 |
| 371 // Whether the media should be paused when hidden. | 372 // Whether the media should be paused when hidden. |
| 372 bool ShouldPauseWhenHidden() const; | 373 bool ShouldPauseWhenHidden() const; |
| 373 | 374 |
| 375 // Whether the video should recover fast when shown if decoding was disabled |
| 376 // in the background. |
| 377 bool ShouldDecodeFastWhenShown() const; |
| 378 |
| 374 blink::WebLocalFrame* frame_; | 379 blink::WebLocalFrame* frame_; |
| 375 | 380 |
| 376 // The playback state last reported to |delegate_|, to avoid setting duplicate | 381 // The playback state last reported to |delegate_|, to avoid setting duplicate |
| 377 // states. (Which can have undesired effects like resetting the idle timer.) | 382 // states. (Which can have undesired effects like resetting the idle timer.) |
| 378 DelegateState delegate_state_; | 383 DelegateState delegate_state_; |
| 379 | 384 |
| 380 // Set when OnSuspendRequested() is called with |must_suspend| unset. | 385 // Set when OnSuspendRequested() is called with |must_suspend| unset. |
| 381 bool is_idle_; | 386 bool is_idle_; |
| 382 | 387 |
| 383 // Set when OnSuspendRequested() is called with |must_suspend| set. | 388 // Set when OnSuspendRequested() is called with |must_suspend| set. |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 base::TimeTicks last_time_loading_progressed_; | 597 base::TimeTicks last_time_loading_progressed_; |
| 593 | 598 |
| 594 std::unique_ptr<base::TickClock> tick_clock_; | 599 std::unique_ptr<base::TickClock> tick_clock_; |
| 595 | 600 |
| 596 // Monitors the player events. | 601 // Monitors the player events. |
| 597 base::WeakPtr<MediaObserver> observer_; | 602 base::WeakPtr<MediaObserver> observer_; |
| 598 | 603 |
| 599 // Whether the player is currently in autoplay muted state. | 604 // Whether the player is currently in autoplay muted state. |
| 600 bool autoplay_muted_ = false; | 605 bool autoplay_muted_ = false; |
| 601 | 606 |
| 607 // The maximum video keyframe distance that allows triggering background |
| 608 // playback optimizations. |
| 609 // 10 seconds by default but can be overridden by a Finch experiment. |
| 610 base::TimeDelta max_keyframe_distance_for_fast_decode_ = |
| 611 base::TimeDelta::FromSeconds(10); |
| 612 |
| 602 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); | 613 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); |
| 603 }; | 614 }; |
| 604 | 615 |
| 605 } // namespace media | 616 } // namespace media |
| 606 | 617 |
| 607 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ | 618 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ |
| OLD | NEW |