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

Unified Diff: media/renderers/skcanvas_video_renderer.h

Issue 2791813003: Fix broken draw/upload paths from videos to 2D canvas and WebGL. (Closed)
Patch Set: Fix per review feedback from sandersd@. Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: media/renderers/skcanvas_video_renderer.h
diff --git a/media/renderers/skcanvas_video_renderer.h b/media/renderers/skcanvas_video_renderer.h
index 3831139c03cc49e8c1fbe1c687daa191921cb9eb..963b8adb91448fc44c039cbcb9938eed0f742719 100644
--- a/media/renderers/skcanvas_video_renderer.h
+++ b/media/renderers/skcanvas_video_renderer.h
@@ -64,16 +64,24 @@ class MEDIA_EXPORT SkCanvasVideoRenderer {
void* rgb_pixels,
size_t row_bytes);
+ enum SingleFrameCopyMode {
+ SingleFrameForVideoElementOrCanvas,
+ SingleFrameForWebGL
+ };
+
// Copy the contents of texture of |video_frame| to texture |texture|.
// |level|, |internal_format|, |type| specify target texture |texture|.
// The format of |video_frame| must be VideoFrame::NATIVE_TEXTURE.
- // Assumes |texture| has already been allocated with the appropriate
- // size and a compatible format, internal format and type; this is
- // effectively a "TexSubImage" operation.
+ // |copy_mode| alters how the copy is done, and takes into consideration
+ // whether the caller will clip the texture to the frame's |visible_rect|,
+ // or expects this to be done internally.
static void CopyVideoFrameSingleTextureToGLTexture(
gpu::gles2::GLES2Interface* gl,
VideoFrame* video_frame,
+ SingleFrameCopyMode copy_mode,
unsigned int texture,
+ unsigned int internal_format,
+ unsigned int type,
bool premultiply_alpha,
bool flip_y);
@@ -82,15 +90,14 @@ class MEDIA_EXPORT SkCanvasVideoRenderer {
// |level|, |internal_format|, |type| specify target texture |texture|.
// The format of |video_frame| must be VideoFrame::NATIVE_TEXTURE.
// |context_3d| has a GrContext that may be used during the copy.
- // Assumes |texture| has already been allocated with the appropriate
- // size and a compatible format, internal format and type; this is
- // effectively a "TexSubImage" operation.
// Returns true on success.
bool CopyVideoFrameTexturesToGLTexture(
const Context3D& context_3d,
gpu::gles2::GLES2Interface* destination_gl,
const scoped_refptr<VideoFrame>& video_frame,
unsigned int texture,
+ unsigned int internal_format,
+ unsigned int type,
bool premultiply_alpha,
bool flip_y);

Powered by Google App Engine
This is Rietveld 408576698