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

Side by Side Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 2767063002: 16-bit video upload to float: intermediate R16_EXT and copy to float. (Closed)
Patch Set: Nit. Created 3 years, 7 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
OLDNEW
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/webmediaplayer_ms.h" 5 #include "content/renderer/media/webmediaplayer_ms.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 context_3d = media::Context3D(provider->ContextGL(), provider->GrContext()); 601 context_3d = media::Context3D(provider->ContextGL(), provider->GrContext());
602 DCHECK(context_3d.gl); 602 DCHECK(context_3d.gl);
603 return video_renderer_.CopyVideoFrameTexturesToGLTexture( 603 return video_renderer_.CopyVideoFrameTexturesToGLTexture(
604 context_3d, gl, video_frame.get(), texture, internal_format, format, type, 604 context_3d, gl, video_frame.get(), texture, internal_format, format, type,
605 premultiply_alpha, flip_y); 605 premultiply_alpha, flip_y);
606 } 606 }
607 607
608 bool WebMediaPlayerMS::TexImageImpl(TexImageFunctionID functionID, 608 bool WebMediaPlayerMS::TexImageImpl(TexImageFunctionID functionID,
609 unsigned target, 609 unsigned target,
610 gpu::gles2::GLES2Interface* gl, 610 gpu::gles2::GLES2Interface* gl,
611 unsigned int texture,
611 int level, 612 int level,
612 int internalformat, 613 int internalformat,
613 unsigned format, 614 unsigned format,
614 unsigned type, 615 unsigned type,
615 int xoffset, 616 int xoffset,
616 int yoffset, 617 int yoffset,
617 int zoffset, 618 int zoffset,
618 bool flip_y, 619 bool flip_y,
619 bool premultiply_alpha) { 620 bool premultiply_alpha) {
620 TRACE_EVENT0("media", "WebMediaPlayerMS:texImageImpl"); 621 TRACE_EVENT0("media", "WebMediaPlayerMS:texImageImpl");
621 DCHECK(thread_checker_.CalledOnValidThread()); 622 DCHECK(thread_checker_.CalledOnValidThread());
622 623
623 const scoped_refptr<media::VideoFrame> video_frame = 624 const scoped_refptr<media::VideoFrame> video_frame =
624 compositor_->GetCurrentFrameWithoutUpdatingStatistics(); 625 compositor_->GetCurrentFrameWithoutUpdatingStatistics();
625 if (!video_frame || !video_frame->IsMappable() || 626 if (!video_frame || !video_frame->IsMappable() ||
626 video_frame->HasTextures() || 627 video_frame->HasTextures() ||
627 video_frame->format() != media::PIXEL_FORMAT_Y16) { 628 video_frame->format() != media::PIXEL_FORMAT_Y16) {
628 return false; 629 return false;
629 } 630 }
630 631
631 if (functionID == kTexImage2D) { 632 if (functionID == kTexImage2D) {
633 auto* provider =
634 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
635 // GPU Process crashed.
636 if (!provider)
637 return false;
632 return media::SkCanvasVideoRenderer::TexImage2D( 638 return media::SkCanvasVideoRenderer::TexImage2D(
633 target, gl, video_frame.get(), level, internalformat, format, type, 639 target, texture, gl, provider->ContextCapabilities(), video_frame.get(),
634 flip_y, premultiply_alpha); 640 level, internalformat, format, type, flip_y, premultiply_alpha);
635 } else if (functionID == kTexSubImage2D) { 641 } else if (functionID == kTexSubImage2D) {
636 return media::SkCanvasVideoRenderer::TexSubImage2D( 642 return media::SkCanvasVideoRenderer::TexSubImage2D(
637 target, gl, video_frame.get(), level, format, type, xoffset, yoffset, 643 target, gl, video_frame.get(), level, format, type, xoffset, yoffset,
638 flip_y, premultiply_alpha); 644 flip_y, premultiply_alpha);
639 } 645 }
640 return false; 646 return false;
641 } 647 }
642 648
643 void WebMediaPlayerMS::OnFirstFrameReceived(media::VideoRotation video_rotation, 649 void WebMediaPlayerMS::OnFirstFrameReceived(media::VideoRotation video_rotation,
644 bool is_opaque) { 650 bool is_opaque) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 void WebMediaPlayerMS::ResetCanvasCache() { 713 void WebMediaPlayerMS::ResetCanvasCache() {
708 DCHECK(thread_checker_.CalledOnValidThread()); 714 DCHECK(thread_checker_.CalledOnValidThread());
709 video_renderer_.ResetCache(); 715 video_renderer_.ResetCache();
710 } 716 }
711 717
712 void WebMediaPlayerMS::TriggerResize() { 718 void WebMediaPlayerMS::TriggerResize() {
713 get_client()->SizeChanged(); 719 get_client()->SizeChanged();
714 } 720 }
715 721
716 } // namespace content 722 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webmediaplayer_ms.h ('k') | content/test/data/media/depth_stream_test_utilities.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698