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 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 size_t WebMediaPlayerImpl::VideoDecodedByteCount() const { | 936 size_t WebMediaPlayerImpl::VideoDecodedByteCount() const { |
937 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 937 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
938 | 938 |
939 PipelineStatistics stats = GetPipelineStatistics(); | 939 PipelineStatistics stats = GetPipelineStatistics(); |
940 return stats.video_bytes_decoded; | 940 return stats.video_bytes_decoded; |
941 } | 941 } |
942 | 942 |
943 bool WebMediaPlayerImpl::CopyVideoTextureToPlatformTexture( | 943 bool WebMediaPlayerImpl::CopyVideoTextureToPlatformTexture( |
944 gpu::gles2::GLES2Interface* gl, | 944 gpu::gles2::GLES2Interface* gl, |
945 unsigned int texture, | 945 unsigned int texture, |
| 946 unsigned internal_format, |
| 947 unsigned format, |
| 948 unsigned type, |
946 bool premultiply_alpha, | 949 bool premultiply_alpha, |
947 bool flip_y) { | 950 bool flip_y) { |
948 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 951 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
949 TRACE_EVENT0("media", "WebMediaPlayerImpl:copyVideoTextureToPlatformTexture"); | 952 TRACE_EVENT0("media", "WebMediaPlayerImpl:copyVideoTextureToPlatformTexture"); |
950 | 953 |
951 // TODO(sandersd): Move this check into GetCurrentFrameFromCompositor() when | 954 // TODO(sandersd): Move this check into GetCurrentFrameFromCompositor() when |
952 // we have other ways to check if decoder owns video frame. | 955 // we have other ways to check if decoder owns video frame. |
953 // See http://crbug.com/595716 and http://crbug.com/602708 | 956 // See http://crbug.com/595716 and http://crbug.com/602708 |
954 if (cdm_) | 957 if (cdm_) |
955 return false; | 958 return false; |
956 | 959 |
957 scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor(); | 960 scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor(); |
958 if (!video_frame.get() || !video_frame->HasTextures()) { | 961 if (!video_frame.get() || !video_frame->HasTextures()) { |
959 return false; | 962 return false; |
960 } | 963 } |
961 | 964 |
962 Context3D context_3d; | 965 Context3D context_3d; |
963 if (!context_3d_cb_.is_null()) | 966 if (!context_3d_cb_.is_null()) |
964 context_3d = context_3d_cb_.Run(); | 967 context_3d = context_3d_cb_.Run(); |
965 return skcanvas_video_renderer_.CopyVideoFrameTexturesToGLTexture( | 968 return skcanvas_video_renderer_.CopyVideoFrameTexturesToGLTexture( |
966 context_3d, gl, video_frame.get(), texture, premultiply_alpha, flip_y); | 969 context_3d, gl, video_frame.get(), texture, internal_format, format, type, |
| 970 premultiply_alpha, flip_y); |
967 } | 971 } |
968 | 972 |
969 void WebMediaPlayerImpl::SetContentDecryptionModule( | 973 void WebMediaPlayerImpl::SetContentDecryptionModule( |
970 blink::WebContentDecryptionModule* cdm, | 974 blink::WebContentDecryptionModule* cdm, |
971 blink::WebContentDecryptionModuleResult result) { | 975 blink::WebContentDecryptionModuleResult result) { |
972 DVLOG(1) << __func__ << ": cdm = " << cdm; | 976 DVLOG(1) << __func__ << ": cdm = " << cdm; |
973 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 977 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
974 | 978 |
975 // Once the CDM is set it can't be cleared as there may be frames being | 979 // Once the CDM is set it can't be cleared as there may be frames being |
976 // decrypted on other threads. So fail this request. | 980 // decrypted on other threads. So fail this request. |
(...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2338 | 2342 |
2339 void WebMediaPlayerImpl::RecordUnderflowDuration(base::TimeDelta duration) { | 2343 void WebMediaPlayerImpl::RecordUnderflowDuration(base::TimeDelta duration) { |
2340 DCHECK(data_source_ || chunk_demuxer_); | 2344 DCHECK(data_source_ || chunk_demuxer_); |
2341 if (data_source_) | 2345 if (data_source_) |
2342 UMA_HISTOGRAM_TIMES("Media.UnderflowDuration", duration); | 2346 UMA_HISTOGRAM_TIMES("Media.UnderflowDuration", duration); |
2343 else | 2347 else |
2344 UMA_HISTOGRAM_TIMES("Media.UnderflowDuration.MSE", duration); | 2348 UMA_HISTOGRAM_TIMES("Media.UnderflowDuration.MSE", duration); |
2345 } | 2349 } |
2346 | 2350 |
2347 } // namespace media | 2351 } // namespace media |
OLD | NEW |