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

Side by Side Diff: media/base/android/media_player_bridge.cc

Issue 2237943002: Remove now-unnecessary .obj() in Java method calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@switch-context
Patch Set: Rebase *again* :( Created 4 years, 4 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
« no previous file with comments | « media/base/android/media_drm_bridge.cc ('k') | media/base/android/sdk_media_codec_bridge.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "media/base/android/media_player_bridge.h" 5 #include "media/base/android/media_player_bridge.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/context_utils.h" 9 #include "base/android/context_utils.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 allow_credentials_(allow_credentials), 68 allow_credentials_(allow_credentials),
69 is_active_(false), 69 is_active_(false),
70 has_error_(false), 70 has_error_(false),
71 has_ever_started_(false), 71 has_ever_started_(false),
72 weak_factory_(this) {} 72 weak_factory_(this) {}
73 73
74 MediaPlayerBridge::~MediaPlayerBridge() { 74 MediaPlayerBridge::~MediaPlayerBridge() {
75 if (!j_media_player_bridge_.is_null()) { 75 if (!j_media_player_bridge_.is_null()) {
76 JNIEnv* env = base::android::AttachCurrentThread(); 76 JNIEnv* env = base::android::AttachCurrentThread();
77 CHECK(env); 77 CHECK(env);
78 Java_MediaPlayerBridge_destroy(env, j_media_player_bridge_.obj()); 78 Java_MediaPlayerBridge_destroy(env, j_media_player_bridge_);
79 } 79 }
80 Release(); 80 Release();
81 81
82 if (has_ever_started_) { 82 if (has_ever_started_) {
83 UMA_HISTOGRAM_ENUMERATION("Media.Android.MediaPlayerSuccess", 83 UMA_HISTOGRAM_ENUMERATION("Media.Android.MediaPlayerSuccess",
84 has_error_ ? UMA_EXIT_ERROR : UMA_EXIT_SUCCESS, 84 has_error_ ? UMA_EXIT_ERROR : UMA_EXIT_SUCCESS,
85 UMA_EXIT_STATUS_MAX + 1); 85 UMA_EXIT_STATUS_MAX + 1);
86 } 86 }
87 } 87 }
88 88
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 134
135 void MediaPlayerBridge::SetVideoSurface(gl::ScopedJavaSurface surface) { 135 void MediaPlayerBridge::SetVideoSurface(gl::ScopedJavaSurface surface) {
136 surface_ = std::move(surface); 136 surface_ = std::move(surface);
137 137
138 if (j_media_player_bridge_.is_null()) 138 if (j_media_player_bridge_.is_null())
139 return; 139 return;
140 140
141 JNIEnv* env = base::android::AttachCurrentThread(); 141 JNIEnv* env = base::android::AttachCurrentThread();
142 CHECK(env); 142 CHECK(env);
143 143
144 Java_MediaPlayerBridge_setSurface( 144 Java_MediaPlayerBridge_setSurface(env, j_media_player_bridge_,
145 env, j_media_player_bridge_.obj(), surface_.j_surface().obj()); 145 surface_.j_surface());
146 } 146 }
147 147
148 void MediaPlayerBridge::Prepare() { 148 void MediaPlayerBridge::Prepare() {
149 DCHECK(j_media_player_bridge_.is_null()); 149 DCHECK(j_media_player_bridge_.is_null());
150 CreateJavaMediaPlayerBridge(); 150 CreateJavaMediaPlayerBridge();
151 if (url_.SchemeIsFileSystem() || url_.SchemeIsBlob()) { 151 if (url_.SchemeIsFileSystem() || url_.SchemeIsBlob()) {
152 manager()->GetMediaResourceGetter()->GetPlatformPathFromURL( 152 manager()->GetMediaResourceGetter()->GetPlatformPathFromURL(
153 url_, 153 url_,
154 base::Bind(&MediaPlayerBridge::SetDataSource, 154 base::Bind(&MediaPlayerBridge::SetDataSource,
155 weak_factory_.GetWeakPtr())); 155 weak_factory_.GetWeakPtr()));
156 return; 156 return;
157 } 157 }
158 158
159 SetDataSource(url_.spec()); 159 SetDataSource(url_.spec());
160 } 160 }
161 161
162 void MediaPlayerBridge::SetDataSource(const std::string& url) { 162 void MediaPlayerBridge::SetDataSource(const std::string& url) {
163 if (j_media_player_bridge_.is_null()) 163 if (j_media_player_bridge_.is_null())
164 return; 164 return;
165 165
166 JNIEnv* env = base::android::AttachCurrentThread(); 166 JNIEnv* env = base::android::AttachCurrentThread();
167 CHECK(env); 167 CHECK(env);
168 168
169 int fd; 169 int fd;
170 int64_t offset; 170 int64_t offset;
171 int64_t size; 171 int64_t size;
172 if (InterceptMediaUrl(url, &fd, &offset, &size)) { 172 if (InterceptMediaUrl(url, &fd, &offset, &size)) {
173 if (!Java_MediaPlayerBridge_setDataSourceFromFd( 173 if (!Java_MediaPlayerBridge_setDataSourceFromFd(env, j_media_player_bridge_,
174 env, j_media_player_bridge_.obj(), fd, offset, size)) { 174 fd, offset, size)) {
175 OnMediaError(MEDIA_ERROR_FORMAT); 175 OnMediaError(MEDIA_ERROR_FORMAT);
176 return; 176 return;
177 } 177 }
178 } else { 178 } else {
179 // Create a Java String for the URL. 179 // Create a Java String for the URL.
180 ScopedJavaLocalRef<jstring> j_url_string = 180 ScopedJavaLocalRef<jstring> j_url_string =
181 ConvertUTF8ToJavaString(env, url); 181 ConvertUTF8ToJavaString(env, url);
182 182
183 const JavaRef<jobject>& j_context = base::android::GetApplicationContext(); 183 const JavaRef<jobject>& j_context = base::android::GetApplicationContext();
184 184
185 const std::string data_uri_prefix("data:"); 185 const std::string data_uri_prefix("data:");
186 if (base::StartsWith(url, data_uri_prefix, base::CompareCase::SENSITIVE)) { 186 if (base::StartsWith(url, data_uri_prefix, base::CompareCase::SENSITIVE)) {
187 if (!Java_MediaPlayerBridge_setDataUriDataSource( 187 if (!Java_MediaPlayerBridge_setDataUriDataSource(
188 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { 188 env, j_media_player_bridge_, j_context, j_url_string)) {
189 OnMediaError(MEDIA_ERROR_FORMAT); 189 OnMediaError(MEDIA_ERROR_FORMAT);
190 } 190 }
191 return; 191 return;
192 } 192 }
193 193
194 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString( 194 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString(
195 env, cookies_); 195 env, cookies_);
196 ScopedJavaLocalRef<jstring> j_user_agent = ConvertUTF8ToJavaString( 196 ScopedJavaLocalRef<jstring> j_user_agent = ConvertUTF8ToJavaString(
197 env, user_agent_); 197 env, user_agent_);
198 198
199 if (!Java_MediaPlayerBridge_setDataSource( 199 if (!Java_MediaPlayerBridge_setDataSource(
200 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), 200 env, j_media_player_bridge_, j_context, j_url_string, j_cookies,
201 j_cookies.obj(), j_user_agent.obj(), hide_url_log_)) { 201 j_user_agent, hide_url_log_)) {
202 OnMediaError(MEDIA_ERROR_FORMAT); 202 OnMediaError(MEDIA_ERROR_FORMAT);
203 return; 203 return;
204 } 204 }
205 } 205 }
206 206
207 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 207 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_))
208 OnMediaError(MEDIA_ERROR_FORMAT); 208 OnMediaError(MEDIA_ERROR_FORMAT);
209 } 209 }
210 210
211 bool MediaPlayerBridge::InterceptMediaUrl(const std::string& url, 211 bool MediaPlayerBridge::InterceptMediaUrl(const std::string& url,
212 int* fd, 212 int* fd,
213 int64_t* offset, 213 int64_t* offset,
214 int64_t* size) { 214 int64_t* size) {
215 // Sentinel value to check whether the output arguments have been set. 215 // Sentinel value to check whether the output arguments have been set.
216 const int kUnsetValue = -1; 216 const int kUnsetValue = -1;
217 217
(...skipping 13 matching lines...) Expand all
231 231
232 void MediaPlayerBridge::OnDidSetDataUriDataSource( 232 void MediaPlayerBridge::OnDidSetDataUriDataSource(
233 JNIEnv* env, 233 JNIEnv* env,
234 const JavaParamRef<jobject>& obj, 234 const JavaParamRef<jobject>& obj,
235 jboolean success) { 235 jboolean success) {
236 if (!success) { 236 if (!success) {
237 OnMediaError(MEDIA_ERROR_FORMAT); 237 OnMediaError(MEDIA_ERROR_FORMAT);
238 return; 238 return;
239 } 239 }
240 240
241 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 241 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_))
242 OnMediaError(MEDIA_ERROR_FORMAT); 242 OnMediaError(MEDIA_ERROR_FORMAT);
243 } 243 }
244 244
245 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { 245 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) {
246 cookies_ = cookies; 246 cookies_ = cookies;
247 manager()->GetMediaResourceGetter()->GetAuthCredentials( 247 manager()->GetMediaResourceGetter()->GetAuthCredentials(
248 url_, 248 url_,
249 base::Bind(&MediaPlayerBridge::OnAuthCredentialsRetrieved, 249 base::Bind(&MediaPlayerBridge::OnAuthCredentialsRetrieved,
250 weak_factory_.GetWeakPtr())); 250 weak_factory_.GetWeakPtr()));
251 } 251 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 332
333 is_active_ = false; 333 is_active_ = false;
334 } 334 }
335 335
336 bool MediaPlayerBridge::IsPlaying() { 336 bool MediaPlayerBridge::IsPlaying() {
337 if (!prepared_) 337 if (!prepared_)
338 return pending_play_; 338 return pending_play_;
339 339
340 JNIEnv* env = base::android::AttachCurrentThread(); 340 JNIEnv* env = base::android::AttachCurrentThread();
341 CHECK(env); 341 CHECK(env);
342 jboolean result = Java_MediaPlayerBridge_isPlaying( 342 jboolean result =
343 env, j_media_player_bridge_.obj()); 343 Java_MediaPlayerBridge_isPlaying(env, j_media_player_bridge_);
344 return result; 344 return result;
345 } 345 }
346 346
347 bool MediaPlayerBridge::HasVideo() const { 347 bool MediaPlayerBridge::HasVideo() const {
348 DCHECK(prepared_); 348 DCHECK(prepared_);
349 JNIEnv* env = base::android::AttachCurrentThread(); 349 JNIEnv* env = base::android::AttachCurrentThread();
350 return Java_MediaPlayerBridge_hasVideo(env, j_media_player_bridge_.obj()); 350 return Java_MediaPlayerBridge_hasVideo(env, j_media_player_bridge_);
351 } 351 }
352 352
353 bool MediaPlayerBridge::HasAudio() const { 353 bool MediaPlayerBridge::HasAudio() const {
354 DCHECK(prepared_); 354 DCHECK(prepared_);
355 JNIEnv* env = base::android::AttachCurrentThread(); 355 JNIEnv* env = base::android::AttachCurrentThread();
356 return Java_MediaPlayerBridge_hasAudio(env, j_media_player_bridge_.obj()); 356 return Java_MediaPlayerBridge_hasAudio(env, j_media_player_bridge_);
357 } 357 }
358 358
359 int MediaPlayerBridge::GetVideoWidth() { 359 int MediaPlayerBridge::GetVideoWidth() {
360 if (!prepared_) 360 if (!prepared_)
361 return width_; 361 return width_;
362 JNIEnv* env = base::android::AttachCurrentThread(); 362 JNIEnv* env = base::android::AttachCurrentThread();
363 return Java_MediaPlayerBridge_getVideoWidth( 363 return Java_MediaPlayerBridge_getVideoWidth(env, j_media_player_bridge_);
364 env, j_media_player_bridge_.obj());
365 } 364 }
366 365
367 int MediaPlayerBridge::GetVideoHeight() { 366 int MediaPlayerBridge::GetVideoHeight() {
368 if (!prepared_) 367 if (!prepared_)
369 return height_; 368 return height_;
370 JNIEnv* env = base::android::AttachCurrentThread(); 369 JNIEnv* env = base::android::AttachCurrentThread();
371 return Java_MediaPlayerBridge_getVideoHeight( 370 return Java_MediaPlayerBridge_getVideoHeight(env, j_media_player_bridge_);
372 env, j_media_player_bridge_.obj());
373 } 371 }
374 372
375 void MediaPlayerBridge::SeekTo(base::TimeDelta timestamp) { 373 void MediaPlayerBridge::SeekTo(base::TimeDelta timestamp) {
376 // Record the time to seek when OnMediaPrepared() is called. 374 // Record the time to seek when OnMediaPrepared() is called.
377 pending_seek_ = timestamp; 375 pending_seek_ = timestamp;
378 should_seek_on_prepare_ = true; 376 should_seek_on_prepare_ = true;
379 377
380 if (prepared_) 378 if (prepared_)
381 SeekInternal(GetCurrentTime(), timestamp); 379 SeekInternal(GetCurrentTime(), timestamp);
382 } 380 }
383 381
384 base::TimeDelta MediaPlayerBridge::GetCurrentTime() { 382 base::TimeDelta MediaPlayerBridge::GetCurrentTime() {
385 if (!prepared_) 383 if (!prepared_)
386 return pending_seek_; 384 return pending_seek_;
387 JNIEnv* env = base::android::AttachCurrentThread(); 385 JNIEnv* env = base::android::AttachCurrentThread();
388 return base::TimeDelta::FromMilliseconds( 386 return base::TimeDelta::FromMilliseconds(
389 Java_MediaPlayerBridge_getCurrentPosition( 387 Java_MediaPlayerBridge_getCurrentPosition(env, j_media_player_bridge_));
390 env, j_media_player_bridge_.obj()));
391 } 388 }
392 389
393 base::TimeDelta MediaPlayerBridge::GetDuration() { 390 base::TimeDelta MediaPlayerBridge::GetDuration() {
394 if (!prepared_) 391 if (!prepared_)
395 return duration_; 392 return duration_;
396 JNIEnv* env = base::android::AttachCurrentThread(); 393 JNIEnv* env = base::android::AttachCurrentThread();
397 const int duration_ms = 394 const int duration_ms =
398 Java_MediaPlayerBridge_getDuration(env, j_media_player_bridge_.obj()); 395 Java_MediaPlayerBridge_getDuration(env, j_media_player_bridge_);
399 return duration_ms < 0 ? media::kInfiniteDuration 396 return duration_ms < 0 ? media::kInfiniteDuration
400 : base::TimeDelta::FromMilliseconds(duration_ms); 397 : base::TimeDelta::FromMilliseconds(duration_ms);
401 } 398 }
402 399
403 void MediaPlayerBridge::Release() { 400 void MediaPlayerBridge::Release() {
404 is_active_ = false; 401 is_active_ = false;
405 402
406 on_decoder_resources_released_cb_.Run(player_id()); 403 on_decoder_resources_released_cb_.Run(player_id());
407 if (j_media_player_bridge_.is_null()) 404 if (j_media_player_bridge_.is_null())
408 return; 405 return;
409 406
410 time_update_timer_.Stop(); 407 time_update_timer_.Stop();
411 if (prepared_) { 408 if (prepared_) {
412 pending_seek_ = GetCurrentTime(); 409 pending_seek_ = GetCurrentTime();
413 should_seek_on_prepare_ = true; 410 should_seek_on_prepare_ = true;
414 } 411 }
415 412
416 prepared_ = false; 413 prepared_ = false;
417 pending_play_ = false; 414 pending_play_ = false;
418 SetVideoSurface(gl::ScopedJavaSurface()); 415 SetVideoSurface(gl::ScopedJavaSurface());
419 JNIEnv* env = base::android::AttachCurrentThread(); 416 JNIEnv* env = base::android::AttachCurrentThread();
420 Java_MediaPlayerBridge_release(env, j_media_player_bridge_.obj()); 417 Java_MediaPlayerBridge_release(env, j_media_player_bridge_);
421 j_media_player_bridge_.Reset(); 418 j_media_player_bridge_.Reset();
422 DetachListener(); 419 DetachListener();
423 } 420 }
424 421
425 void MediaPlayerBridge::UpdateEffectiveVolumeInternal(double effective_volume) { 422 void MediaPlayerBridge::UpdateEffectiveVolumeInternal(double effective_volume) {
426 if (j_media_player_bridge_.is_null()) { 423 if (j_media_player_bridge_.is_null()) {
427 return; 424 return;
428 } 425 }
429 426
430 JNIEnv* env = base::android::AttachCurrentThread(); 427 JNIEnv* env = base::android::AttachCurrentThread();
431 CHECK(env); 428 CHECK(env);
432 429
433 Java_MediaPlayerBridge_setVolume(env, j_media_player_bridge_.obj(), 430 Java_MediaPlayerBridge_setVolume(env, j_media_player_bridge_,
434 effective_volume); 431 effective_volume);
435 } 432 }
436 433
437 void MediaPlayerBridge::OnVideoSizeChanged(int width, int height) { 434 void MediaPlayerBridge::OnVideoSizeChanged(int width, int height) {
438 width_ = width; 435 width_ = width;
439 height_ = height; 436 height_ = height;
440 MediaPlayerAndroid::OnVideoSizeChanged(width, height); 437 MediaPlayerAndroid::OnVideoSizeChanged(width, height);
441 } 438 }
442 439
443 void MediaPlayerBridge::OnMediaError(int error_type) { 440 void MediaPlayerBridge::OnMediaError(int error_type) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 488
492 UpdateAllowedOperations(); 489 UpdateAllowedOperations();
493 manager()->OnMediaMetadataChanged( 490 manager()->OnMediaMetadataChanged(
494 player_id(), duration_, width_, height_, true); 491 player_id(), duration_, width_, height_, true);
495 } 492 }
496 493
497 ScopedJavaLocalRef<jobject> MediaPlayerBridge::GetAllowedOperations() { 494 ScopedJavaLocalRef<jobject> MediaPlayerBridge::GetAllowedOperations() {
498 JNIEnv* env = base::android::AttachCurrentThread(); 495 JNIEnv* env = base::android::AttachCurrentThread();
499 CHECK(env); 496 CHECK(env);
500 497
501 return Java_MediaPlayerBridge_getAllowedOperations( 498 return Java_MediaPlayerBridge_getAllowedOperations(env,
502 env, j_media_player_bridge_.obj()); 499 j_media_player_bridge_);
503 } 500 }
504 501
505 void MediaPlayerBridge::UpdateAllowedOperations() { 502 void MediaPlayerBridge::UpdateAllowedOperations() {
506 JNIEnv* env = base::android::AttachCurrentThread(); 503 JNIEnv* env = base::android::AttachCurrentThread();
507 CHECK(env); 504 CHECK(env);
508 505
509 ScopedJavaLocalRef<jobject> allowedOperations = GetAllowedOperations(); 506 ScopedJavaLocalRef<jobject> allowedOperations = GetAllowedOperations();
510 507
511 can_pause_ = Java_AllowedOperations_canPause(env, allowedOperations.obj()); 508 can_pause_ = Java_AllowedOperations_canPause(env, allowedOperations);
512 can_seek_forward_ = Java_AllowedOperations_canSeekForward( 509 can_seek_forward_ =
513 env, allowedOperations.obj()); 510 Java_AllowedOperations_canSeekForward(env, allowedOperations);
514 can_seek_backward_ = Java_AllowedOperations_canSeekBackward( 511 can_seek_backward_ =
515 env, allowedOperations.obj()); 512 Java_AllowedOperations_canSeekBackward(env, allowedOperations);
516 } 513 }
517 514
518 void MediaPlayerBridge::StartInternal() { 515 void MediaPlayerBridge::StartInternal() {
519 if (!manager()->RequestPlay(player_id(), duration_, HasAudio())) { 516 if (!manager()->RequestPlay(player_id(), duration_, HasAudio())) {
520 Pause(true); 517 Pause(true);
521 return; 518 return;
522 } 519 }
523 520
524 JNIEnv* env = base::android::AttachCurrentThread(); 521 JNIEnv* env = base::android::AttachCurrentThread();
525 Java_MediaPlayerBridge_start(env, j_media_player_bridge_.obj()); 522 Java_MediaPlayerBridge_start(env, j_media_player_bridge_);
526 if (!time_update_timer_.IsRunning()) { 523 if (!time_update_timer_.IsRunning()) {
527 time_update_timer_.Start( 524 time_update_timer_.Start(
528 FROM_HERE, 525 FROM_HERE,
529 base::TimeDelta::FromMilliseconds(kTimeUpdateInterval), 526 base::TimeDelta::FromMilliseconds(kTimeUpdateInterval),
530 this, &MediaPlayerBridge::OnTimeUpdateTimerFired); 527 this, &MediaPlayerBridge::OnTimeUpdateTimerFired);
531 } 528 }
532 } 529 }
533 530
534 void MediaPlayerBridge::PauseInternal() { 531 void MediaPlayerBridge::PauseInternal() {
535 JNIEnv* env = base::android::AttachCurrentThread(); 532 JNIEnv* env = base::android::AttachCurrentThread();
536 Java_MediaPlayerBridge_pause(env, j_media_player_bridge_.obj()); 533 Java_MediaPlayerBridge_pause(env, j_media_player_bridge_);
537 time_update_timer_.Stop(); 534 time_update_timer_.Stop();
538 } 535 }
539 536
540 void MediaPlayerBridge::PendingSeekInternal(const base::TimeDelta& time) { 537 void MediaPlayerBridge::PendingSeekInternal(const base::TimeDelta& time) {
541 SeekInternal(GetCurrentTime(), time); 538 SeekInternal(GetCurrentTime(), time);
542 } 539 }
543 540
544 bool MediaPlayerBridge::SeekInternal(base::TimeDelta current_time, 541 bool MediaPlayerBridge::SeekInternal(base::TimeDelta current_time,
545 base::TimeDelta time) { 542 base::TimeDelta time) {
546 // Seeking on content like live streams may cause the media player to 543 // Seeking on content like live streams may cause the media player to
(...skipping 10 matching lines...) Expand all
557 // Seeking to an invalid position may cause media player to stuck in an 554 // Seeking to an invalid position may cause media player to stuck in an
558 // error state. 555 // error state.
559 if (time < base::TimeDelta()) { 556 if (time < base::TimeDelta()) {
560 DCHECK_EQ(-1.0, time.InMillisecondsF()); 557 DCHECK_EQ(-1.0, time.InMillisecondsF());
561 return false; 558 return false;
562 } 559 }
563 560
564 JNIEnv* env = base::android::AttachCurrentThread(); 561 JNIEnv* env = base::android::AttachCurrentThread();
565 CHECK(env); 562 CHECK(env);
566 int time_msec = static_cast<int>(time.InMilliseconds()); 563 int time_msec = static_cast<int>(time.InMilliseconds());
567 Java_MediaPlayerBridge_seekTo( 564 Java_MediaPlayerBridge_seekTo(env, j_media_player_bridge_, time_msec);
568 env, j_media_player_bridge_.obj(), time_msec);
569 return true; 565 return true;
570 } 566 }
571 567
572 void MediaPlayerBridge::OnTimeUpdateTimerFired() { 568 void MediaPlayerBridge::OnTimeUpdateTimerFired() {
573 base::TimeDelta current_timestamp = GetCurrentTime(); 569 base::TimeDelta current_timestamp = GetCurrentTime();
574 if (last_time_update_timestamp_ == current_timestamp) 570 if (last_time_update_timestamp_ == current_timestamp)
575 return; 571 return;
576 manager()->OnTimeUpdate(player_id(), current_timestamp, 572 manager()->OnTimeUpdate(player_id(), current_timestamp,
577 base::TimeTicks::Now()); 573 base::TimeTicks::Now());
578 last_time_update_timestamp_ = current_timestamp; 574 last_time_update_timestamp_ = current_timestamp;
(...skipping 21 matching lines...) Expand all
600 596
601 GURL MediaPlayerBridge::GetUrl() { 597 GURL MediaPlayerBridge::GetUrl() {
602 return url_; 598 return url_;
603 } 599 }
604 600
605 GURL MediaPlayerBridge::GetFirstPartyForCookies() { 601 GURL MediaPlayerBridge::GetFirstPartyForCookies() {
606 return first_party_for_cookies_; 602 return first_party_for_cookies_;
607 } 603 }
608 604
609 } // namespace media 605 } // namespace media
OLDNEW
« no previous file with comments | « media/base/android/media_drm_bridge.cc ('k') | media/base/android/sdk_media_codec_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698