OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 WEBKIT_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ | 5 #ifndef WEBKIT_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ |
6 #define WEBKIT_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ | 6 #define WEBKIT_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ |
7 | 7 |
8 #include <jni.h> | 8 #include <jni.h> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 // This class serves as the android implementation of WebKit::WebMediaPlayer. | 31 // This class serves as the android implementation of WebKit::WebMediaPlayer. |
32 // It implements all the playback functions by forwarding calls to android | 32 // It implements all the playback functions by forwarding calls to android |
33 // media player, and reports player state changes to the webkit. | 33 // media player, and reports player state changes to the webkit. |
34 class WebMediaPlayerAndroid : | 34 class WebMediaPlayerAndroid : |
35 public WebKit::WebMediaPlayer, | 35 public WebKit::WebMediaPlayer, |
36 public base::SupportsWeakPtr<WebMediaPlayerAndroid> { | 36 public base::SupportsWeakPtr<WebMediaPlayerAndroid> { |
37 public: | 37 public: |
38 WebMediaPlayerAndroid(WebKit::WebMediaPlayerClient* client, | 38 WebMediaPlayerAndroid(WebKit::WebMediaPlayerClient* client, |
39 WebKit::WebCookieJar* cookie_jar); | 39 WebKit::WebCookieJar* cookie_jar); |
40 virtual ~WebMediaPlayerAndroid() OVERRIDE; | 40 virtual ~WebMediaPlayerAndroid(); |
41 | 41 |
42 // Set |incognito_mode_| to true if in incognito mode. | 42 // Set |incognito_mode_| to true if in incognito mode. |
43 static void InitIncognito(bool incognito_mode); | 43 static void InitIncognito(bool incognito_mode); |
44 | 44 |
45 // Resource loading. | 45 // Resource loading. |
46 virtual void load(const WebKit::WebURL& url) OVERRIDE; | 46 virtual void load(const WebKit::WebURL& url); |
47 virtual void cancelLoad() OVERRIDE; | 47 virtual void cancelLoad(); |
48 | 48 |
49 // Playback controls. | 49 // Playback controls. |
50 virtual void play() OVERRIDE; | 50 virtual void play(); |
51 virtual void pause() OVERRIDE; | 51 virtual void pause(); |
52 virtual void seek(float seconds) OVERRIDE; | 52 virtual void seek(float seconds); |
53 virtual bool supportsFullscreen() const OVERRIDE; | 53 virtual bool supportsFullscreen() const; |
54 virtual bool supportsSave() const OVERRIDE; | 54 virtual bool supportsSave() const; |
55 virtual void setEndTime(float seconds) OVERRIDE; | 55 virtual void setEndTime(float seconds); |
56 virtual void setRate(float rate) OVERRIDE; | 56 virtual void setRate(float rate); |
57 virtual void setVolume(float volume) OVERRIDE; | 57 virtual void setVolume(float volume); |
58 virtual void setVisible(bool visible) OVERRIDE; | 58 virtual void setVisible(bool visible); |
59 virtual bool totalBytesKnown() OVERRIDE; | 59 virtual bool totalBytesKnown(); |
60 virtual const WebKit::WebTimeRanges& buffered() OVERRIDE; | 60 virtual const WebKit::WebTimeRanges& buffered(); |
61 virtual float maxTimeSeekable() const OVERRIDE; | 61 virtual float maxTimeSeekable() const; |
62 | 62 |
63 // Methods for painting. | 63 // Methods for painting. |
64 virtual void setSize(const WebKit::WebSize& size) OVERRIDE; | 64 virtual void setSize(const WebKit::WebSize& size); |
65 virtual void paint(WebKit::WebCanvas* canvas, | 65 virtual void paint(WebKit::WebCanvas* canvas, |
66 const WebKit::WebRect& rect, | 66 const WebKit::WebRect& rect, |
67 uint8_t alpha) OVERRIDE; | 67 uint8_t alpha); |
68 | 68 |
69 // True if the loaded media has a playable video/audio track. | 69 // True if the loaded media has a playable video/audio track. |
70 virtual bool hasVideo() const OVERRIDE; | 70 virtual bool hasVideo() const; |
71 virtual bool hasAudio() const OVERRIDE; | 71 virtual bool hasAudio() const; |
72 | 72 |
73 // Dimensions of the video. | 73 // Dimensions of the video. |
74 virtual WebKit::WebSize naturalSize() const OVERRIDE; | 74 virtual WebKit::WebSize naturalSize() const; |
75 | 75 |
76 // Getters of playback state. | 76 // Getters of playback state. |
77 virtual bool paused() const OVERRIDE; | 77 virtual bool paused() const; |
78 virtual bool seeking() const OVERRIDE; | 78 virtual bool seeking() const; |
79 virtual float duration() const OVERRIDE; | 79 virtual float duration() const; |
80 virtual float currentTime() const OVERRIDE; | 80 virtual float currentTime() const; |
81 | 81 |
82 // Get rate of loading the resource. | 82 // Get rate of loading the resource. |
83 virtual int32 dataRate() const OVERRIDE; | 83 virtual int32 dataRate() const; |
84 | 84 |
85 virtual unsigned long long bytesLoaded() const OVERRIDE; | 85 virtual unsigned long long bytesLoaded() const; |
86 virtual unsigned long long totalBytes() const OVERRIDE; | 86 virtual bool didLoadingProgress() const; |
| 87 virtual unsigned long long totalBytes() const; |
87 | 88 |
88 // Internal states of loading and network. | 89 // Internal states of loading and network. |
89 virtual WebKit::WebMediaPlayer::NetworkState networkState() const OVERRIDE; | 90 virtual WebKit::WebMediaPlayer::NetworkState networkState() const; |
90 virtual WebKit::WebMediaPlayer::ReadyState readyState() const OVERRIDE; | 91 virtual WebKit::WebMediaPlayer::ReadyState readyState() const; |
91 | 92 |
92 virtual bool hasSingleSecurityOrigin() const OVERRIDE; | 93 virtual bool hasSingleSecurityOrigin() const; |
93 virtual WebKit::WebMediaPlayer::MovieLoadType movieLoadType() const OVERRIDE; | 94 virtual WebKit::WebMediaPlayer::MovieLoadType movieLoadType() const; |
94 | 95 |
95 virtual float mediaTimeForTimeValue(float timeValue) const OVERRIDE; | 96 virtual float mediaTimeForTimeValue(float timeValue) const; |
96 | 97 |
97 // Provide statistics. | 98 // Provide statistics. |
98 virtual unsigned decodedFrameCount() const OVERRIDE; | 99 virtual unsigned decodedFrameCount() const; |
99 virtual unsigned droppedFrameCount() const OVERRIDE; | 100 virtual unsigned droppedFrameCount() const; |
100 virtual unsigned audioDecodedByteCount() const OVERRIDE; | 101 virtual unsigned audioDecodedByteCount() const; |
101 virtual unsigned videoDecodedByteCount() const OVERRIDE; | 102 virtual unsigned videoDecodedByteCount() const; |
102 | 103 |
103 // Methods called from VideoLayerChromium. These methods are running on the | 104 // Methods called from VideoLayerChromium. These methods are running on the |
104 // compositor thread. | 105 // compositor thread. |
105 virtual WebKit::WebVideoFrame* getCurrentFrame() OVERRIDE; | 106 virtual WebKit::WebVideoFrame* getCurrentFrame(); |
106 virtual void putCurrentFrame(WebKit::WebVideoFrame*) OVERRIDE; | 107 virtual void putCurrentFrame(WebKit::WebVideoFrame*); |
107 | 108 |
108 // Media player callback handlers. | 109 // Media player callback handlers. |
109 void OnMediaPrepared(); | 110 void OnMediaPrepared(); |
110 void OnPlaybackComplete(); | 111 void OnPlaybackComplete(); |
111 void OnBufferingUpdate(int percentage); | 112 void OnBufferingUpdate(int percentage); |
112 void OnSeekComplete(); | 113 void OnSeekComplete(); |
113 void OnMediaError(int error_type); | 114 void OnMediaError(int error_type); |
114 void OnMediaInfo(int info_type); | 115 void OnMediaInfo(int info_type); |
115 void OnVideoSizeChanged(int width, int height); | 116 void OnVideoSizeChanged(int width, int height); |
116 | 117 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 | 175 |
175 // Internal seek state. | 176 // Internal seek state. |
176 bool seeking_; | 177 bool seeking_; |
177 | 178 |
178 // Whether playback has completed. | 179 // Whether playback has completed. |
179 float playback_completed_; | 180 float playback_completed_; |
180 | 181 |
181 // Fake it by self increasing on every OnBufferingUpdate event. | 182 // Fake it by self increasing on every OnBufferingUpdate event. |
182 int64 buffered_bytes_; | 183 int64 buffered_bytes_; |
183 | 184 |
| 185 // Whether loading has progressed since the last call to didLoadingProgress. |
| 186 mutable bool did_loading_progress_; |
| 187 |
184 // Pointer to the cookie jar to get the cookie for the media url. | 188 // Pointer to the cookie jar to get the cookie for the media url. |
185 WebKit::WebCookieJar* cookie_jar_; | 189 WebKit::WebCookieJar* cookie_jar_; |
186 | 190 |
187 // Whether the user has clicked the play button while media player | 191 // Whether the user has clicked the play button while media player |
188 // is preparing. | 192 // is preparing. |
189 bool pending_play_event_; | 193 bool pending_play_event_; |
190 | 194 |
191 // Current player states. | 195 // Current player states. |
192 WebKit::WebMediaPlayer::NetworkState network_state_; | 196 WebKit::WebMediaPlayer::NetworkState network_state_; |
193 WebKit::WebMediaPlayer::ReadyState ready_state_; | 197 WebKit::WebMediaPlayer::ReadyState ready_state_; |
194 | 198 |
195 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid); | 199 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid); |
196 }; | 200 }; |
197 | 201 |
198 } // namespace webkit_media | 202 } // namespace webkit_media |
199 | 203 |
200 #endif // WEBKIT_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ | 204 #endif // WEBKIT_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ |
OLD | NEW |