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 "media/blink/webmediaplayer_impl.h" | 5 #include "media/blink/webmediaplayer_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <limits> | 9 #include <limits> |
10 #include <string> | 10 #include <string> |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 | 645 |
646 unsigned WebMediaPlayerImpl::videoDecodedByteCount() const { | 646 unsigned WebMediaPlayerImpl::videoDecodedByteCount() const { |
647 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 647 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
648 | 648 |
649 PipelineStatistics stats = pipeline_.GetStatistics(); | 649 PipelineStatistics stats = pipeline_.GetStatistics(); |
650 return stats.video_bytes_decoded; | 650 return stats.video_bytes_decoded; |
651 } | 651 } |
652 | 652 |
653 bool WebMediaPlayerImpl::copyVideoTextureToPlatformTexture( | 653 bool WebMediaPlayerImpl::copyVideoTextureToPlatformTexture( |
654 blink::WebGraphicsContext3D* web_graphics_context, | 654 blink::WebGraphicsContext3D* web_graphics_context, |
655 unsigned int texture, | 655 const CopyVideoTextureParams& params) { |
656 unsigned int internal_format, | |
657 unsigned int type, | |
658 bool premultiply_alpha, | |
659 bool flip_y) { | |
660 TRACE_EVENT0("media", "WebMediaPlayerImpl:copyVideoTextureToPlatformTexture"); | 656 TRACE_EVENT0("media", "WebMediaPlayerImpl:copyVideoTextureToPlatformTexture"); |
| 657 DCHECK((params.copyType == CopyVideoTextureParams::FullCopy && |
| 658 !params.xoffset && !params.yoffset) || |
| 659 (params.copyType == CopyVideoTextureParams::SubCopy && |
| 660 !params.internalFormat && !params.type)); |
661 | 661 |
662 scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor(); | 662 scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor(); |
663 | 663 |
664 if (!video_frame.get() || !video_frame->HasTextures() || | 664 if (!video_frame.get() || !video_frame->HasTextures() || |
665 media::VideoFrame::NumPlanes(video_frame->format()) != 1) { | 665 media::VideoFrame::NumPlanes(video_frame->format()) != 1) { |
666 return false; | 666 return false; |
667 } | 667 } |
668 | 668 |
669 // TODO(dshwang): need more elegant way to convert WebGraphicsContext3D to | 669 // TODO(dshwang): need more elegant way to convert WebGraphicsContext3D to |
670 // GLES2Interface. | 670 // GLES2Interface. |
671 gpu::gles2::GLES2Interface* gl = | 671 gpu::gles2::GLES2Interface* gl = |
672 static_cast<gpu_blink::WebGraphicsContext3DImpl*>(web_graphics_context) | 672 static_cast<gpu_blink::WebGraphicsContext3DImpl*>(web_graphics_context) |
673 ->GetGLInterface(); | 673 ->GetGLInterface(); |
| 674 typedef SkCanvasVideoRenderer::CopyFrameSingleTextureParams CopyParams; |
674 SkCanvasVideoRenderer::CopyVideoFrameSingleTextureToGLTexture( | 675 SkCanvasVideoRenderer::CopyVideoFrameSingleTextureToGLTexture( |
675 gl, video_frame.get(), texture, internal_format, type, premultiply_alpha, | 676 gl, video_frame.get(), |
676 flip_y); | 677 CopyParams(params.copyType == CopyVideoTextureParams::FullCopy |
| 678 ? CopyParams::FullCopy |
| 679 : CopyParams::SubCopy, |
| 680 params.target, params.texture, params.internalFormat, |
| 681 params.type, params.level, params.xoffset, params.yoffset, |
| 682 params.premultiplyAlpha, params.flipY)); |
677 return true; | 683 return true; |
678 } | 684 } |
679 | 685 |
680 WebMediaPlayer::MediaKeyException | 686 WebMediaPlayer::MediaKeyException |
681 WebMediaPlayerImpl::generateKeyRequest(const WebString& key_system, | 687 WebMediaPlayerImpl::generateKeyRequest(const WebString& key_system, |
682 const unsigned char* init_data, | 688 const unsigned char* init_data, |
683 unsigned init_data_length) { | 689 unsigned init_data_length) { |
684 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 690 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
685 | 691 |
686 return encrypted_media_support_.GenerateKeyRequest( | 692 return encrypted_media_support_.GenerateKeyRequest( |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1106 << ", Video: " << stats.video_memory_usage << ", DataSource: " | 1112 << ", Video: " << stats.video_memory_usage << ", DataSource: " |
1107 << (data_source_ ? data_source_->GetMemoryUsage() : 0) | 1113 << (data_source_ ? data_source_->GetMemoryUsage() : 0) |
1108 << ", Demuxer: " << (demuxer_ ? demuxer_->GetMemoryUsage() : 0); | 1114 << ", Demuxer: " << (demuxer_ ? demuxer_->GetMemoryUsage() : 0); |
1109 | 1115 |
1110 const int64_t delta = current_memory_usage - last_reported_memory_usage_; | 1116 const int64_t delta = current_memory_usage - last_reported_memory_usage_; |
1111 last_reported_memory_usage_ = current_memory_usage; | 1117 last_reported_memory_usage_ = current_memory_usage; |
1112 adjust_allocated_memory_cb_.Run(delta); | 1118 adjust_allocated_memory_cb_.Run(delta); |
1113 } | 1119 } |
1114 | 1120 |
1115 } // namespace media | 1121 } // namespace media |
OLD | NEW |