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 #include "content/renderer/media/android/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
65 using media::VideoFrame; | 65 using media::VideoFrame; |
66 | 66 |
67 namespace { | 67 namespace { |
68 // Prefix for histograms related to Encrypted Media Extensions. | 68 // Prefix for histograms related to Encrypted Media Extensions. |
69 const char* kMediaEme = "Media.EME."; | 69 const char* kMediaEme = "Media.EME."; |
70 | 70 |
71 // File-static function is to allow it to run even after WMPA is deleted. | 71 // File-static function is to allow it to run even after WMPA is deleted. |
72 void OnReleaseTexture( | 72 void OnReleaseTexture( |
73 const scoped_refptr<content::StreamTextureFactory>& factories, | 73 const scoped_refptr<content::StreamTextureFactory>& factories, |
74 uint32 texture_id, | 74 uint32 texture_id, |
75 const std::vector<uint32>& release_sync_points) { | 75 const std::map<uintptr_t, uint32>& release_sync_points) { |
76 GLES2Interface* gl = factories->ContextGL(); | 76 GLES2Interface* gl = factories->ContextGL(); |
77 for (size_t i = 0; i < release_sync_points.size(); i++) | 77 for (std::map<uintptr_t, uint32>::const_iterator iter = |
78 gl->WaitSyncPointCHROMIUM(release_sync_points[i]); | 78 release_sync_points.begin(); |
79 iter != release_sync_points.end(); | |
80 iter++) { | |
81 gl->WaitSyncPointCHROMIUM(iter->second); | |
82 } | |
79 gl->DeleteTextures(1, &texture_id); | 83 gl->DeleteTextures(1, &texture_id); |
80 } | 84 } |
81 } // namespace | 85 } // namespace |
82 | 86 |
83 namespace content { | 87 namespace content { |
84 | 88 |
85 WebMediaPlayerAndroid::WebMediaPlayerAndroid( | 89 WebMediaPlayerAndroid::WebMediaPlayerAndroid( |
86 blink::WebFrame* frame, | 90 blink::WebFrame* frame, |
87 blink::WebMediaPlayerClient* client, | 91 blink::WebMediaPlayerClient* client, |
88 base::WeakPtr<WebMediaPlayerDelegate> delegate, | 92 base::WeakPtr<WebMediaPlayerDelegate> delegate, |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
529 web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, false); | 533 web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, false); |
530 web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, | 534 web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
531 false); | 535 false); |
532 | 536 |
533 if (mailbox_holder->texture_target == GL_TEXTURE_EXTERNAL_OES) | 537 if (mailbox_holder->texture_target == GL_TEXTURE_EXTERNAL_OES) |
534 web_graphics_context->bindTexture(GL_TEXTURE_EXTERNAL_OES, 0); | 538 web_graphics_context->bindTexture(GL_TEXTURE_EXTERNAL_OES, 0); |
535 else | 539 else |
536 web_graphics_context->bindTexture(GL_TEXTURE_2D, texture); | 540 web_graphics_context->bindTexture(GL_TEXTURE_2D, texture); |
537 web_graphics_context->deleteTexture(source_texture); | 541 web_graphics_context->deleteTexture(source_texture); |
538 web_graphics_context->flush(); | 542 web_graphics_context->flush(); |
539 video_frame->AppendReleaseSyncPoint(web_graphics_context->insertSyncPoint()); | 543 |
544 video_frame->AppendReleaseSyncPoint( | |
545 reinterpret_cast<uintptr_t>(web_graphics_context), | |
546 web_graphics_context->insertSyncPoint()); | |
dshwang
2014/06/05 14:38:30
reinterpret_cast here
| |
540 return true; | 547 return true; |
541 } | 548 } |
542 | 549 |
543 bool WebMediaPlayerAndroid::hasSingleSecurityOrigin() const { | 550 bool WebMediaPlayerAndroid::hasSingleSecurityOrigin() const { |
544 if (info_loader_) | 551 if (info_loader_) |
545 return info_loader_->HasSingleOrigin(); | 552 return info_loader_->HasSingleOrigin(); |
546 // The info loader may have failed. | 553 // The info loader may have failed. |
547 if (player_type_ == MEDIA_PLAYER_TYPE_URL) | 554 if (player_type_ == MEDIA_PLAYER_TYPE_URL) |
548 return false; | 555 return false; |
549 return true; | 556 return true; |
(...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1563 | 1570 |
1564 void WebMediaPlayerAndroid::exitFullscreen() { | 1571 void WebMediaPlayerAndroid::exitFullscreen() { |
1565 player_manager_->ExitFullscreen(player_id_); | 1572 player_manager_->ExitFullscreen(player_id_); |
1566 } | 1573 } |
1567 | 1574 |
1568 bool WebMediaPlayerAndroid::canEnterFullscreen() const { | 1575 bool WebMediaPlayerAndroid::canEnterFullscreen() const { |
1569 return player_manager_->CanEnterFullscreen(frame_); | 1576 return player_manager_->CanEnterFullscreen(frame_); |
1570 } | 1577 } |
1571 | 1578 |
1572 } // namespace content | 1579 } // namespace content |
OLD | NEW |