| 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/android/build_info.h" | 9 #include "base/android/build_info.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 } | 621 } |
| 622 | 622 |
| 623 bool WebMediaPlayerAndroid::copyVideoTextureToPlatformTexture( | 623 bool WebMediaPlayerAndroid::copyVideoTextureToPlatformTexture( |
| 624 blink::WebGraphicsContext3D* web_graphics_context, | 624 blink::WebGraphicsContext3D* web_graphics_context, |
| 625 unsigned int texture, | 625 unsigned int texture, |
| 626 unsigned int level, | 626 unsigned int level, |
| 627 unsigned int internal_format, | 627 unsigned int internal_format, |
| 628 unsigned int type, | 628 unsigned int type, |
| 629 bool premultiply_alpha, | 629 bool premultiply_alpha, |
| 630 bool flip_y) { | 630 bool flip_y) { |
| 631 return copyVideoTextureToPlatformTexture(web_graphics_context, texture, |
| 632 internal_format, type, |
| 633 premultiply_alpha, flip_y); |
| 634 } |
| 635 |
| 636 bool WebMediaPlayerAndroid::copyVideoTextureToPlatformTexture( |
| 637 blink::WebGraphicsContext3D* web_graphics_context, |
| 638 unsigned int texture, |
| 639 unsigned int internal_format, |
| 640 unsigned int type, |
| 641 bool premultiply_alpha, |
| 642 bool flip_y) { |
| 631 DCHECK(main_thread_checker_.CalledOnValidThread()); | 643 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 632 // Don't allow clients to copy an encrypted video frame. | 644 // Don't allow clients to copy an encrypted video frame. |
| 633 if (needs_external_surface_) | 645 if (needs_external_surface_) |
| 634 return false; | 646 return false; |
| 635 | 647 |
| 636 scoped_refptr<VideoFrame> video_frame; | 648 scoped_refptr<VideoFrame> video_frame; |
| 637 { | 649 { |
| 638 base::AutoLock auto_lock(current_frame_lock_); | 650 base::AutoLock auto_lock(current_frame_lock_); |
| 639 video_frame = current_frame_; | 651 video_frame = current_frame_; |
| 640 } | 652 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 657 // The video is stored in an unmultiplied format, so premultiply if | 669 // The video is stored in an unmultiplied format, so premultiply if |
| 658 // necessary. | 670 // necessary. |
| 659 web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, | 671 web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
| 660 premultiply_alpha); | 672 premultiply_alpha); |
| 661 | 673 |
| 662 // Application itself needs to take care of setting the right flip_y | 674 // Application itself needs to take care of setting the right flip_y |
| 663 // value down to get the expected result. | 675 // value down to get the expected result. |
| 664 // flip_y==true means to reverse the video orientation while | 676 // flip_y==true means to reverse the video orientation while |
| 665 // flip_y==false means to keep the intrinsic orientation. | 677 // flip_y==false means to keep the intrinsic orientation. |
| 666 web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, flip_y); | 678 web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, flip_y); |
| 667 web_graphics_context->copyTextureCHROMIUM(GL_TEXTURE_2D, src_texture, | 679 web_graphics_context->copyTextureCHROMIUM(GL_TEXTURE_2D, src_texture, texture, |
| 668 texture, level, internal_format, | 680 0, internal_format, type); |
| 669 type); | |
| 670 web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, false); | 681 web_graphics_context->pixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, false); |
| 671 web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, | 682 web_graphics_context->pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, |
| 672 false); | 683 false); |
| 673 | 684 |
| 674 web_graphics_context->deleteTexture(src_texture); | 685 web_graphics_context->deleteTexture(src_texture); |
| 675 web_graphics_context->flush(); | 686 web_graphics_context->flush(); |
| 676 | 687 |
| 677 SyncPointClientImpl client(web_graphics_context); | 688 SyncPointClientImpl client(web_graphics_context); |
| 678 video_frame->UpdateReleaseSyncPoint(&client); | 689 video_frame->UpdateReleaseSyncPoint(&client); |
| 679 return true; | 690 return true; |
| (...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1822 | 1833 |
| 1823 bool WebMediaPlayerAndroid::IsHLSStream() const { | 1834 bool WebMediaPlayerAndroid::IsHLSStream() const { |
| 1824 std::string mime; | 1835 std::string mime; |
| 1825 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; | 1836 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; |
| 1826 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) | 1837 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) |
| 1827 return false; | 1838 return false; |
| 1828 return !mime.compare("application/x-mpegurl"); | 1839 return !mime.compare("application/x-mpegurl"); |
| 1829 } | 1840 } |
| 1830 | 1841 |
| 1831 } // namespace content | 1842 } // namespace content |
| OLD | NEW |