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

Unified Diff: chrome/renderer/media/gles2_video_decode_context.h

Issue 6673090: Move core renderer subdirectories to content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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: chrome/renderer/media/gles2_video_decode_context.h
===================================================================
--- chrome/renderer/media/gles2_video_decode_context.h (revision 78386)
+++ chrome/renderer/media/gles2_video_decode_context.h (working copy)
@@ -1,113 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_RENDERER_MEDIA_GLES2_VIDEO_DECODE_CONTEXT_H_
-#define CHROME_RENDERER_MEDIA_GLES2_VIDEO_DECODE_CONTEXT_H_
-
-#include <vector>
-
-#include "media/video/video_decode_context.h"
-
-class MessageLoop;
-
-namespace ggl {
-class Context;
-} // namespace ggl
-
-// FUNCTIONS
-//
-// This is a class that provides a video decode context using a ggl::Context
-// backend.
-//
-// It provides resources for a VideoDecodeEngine to store decoded video frames.
-//
-// This class is aware of the command buffer implementation of GLES2 inside the
-// Chrome renderer and keeps a reference of ggl::Context. It might use GLES2
-// commands specific to Chrome's renderer process to provide needed resources.
-//
-// There are two different kinds of video frame storage provided by this class:
-// 1. Memory mapped textures (aka software decoding mode).
-// Each texture is memory mapped and appears to the VideoDecodeEngine as
-// system memory.
-//
-// The usage of the textures is that the VideoDecodeEngine is performing
-// software video decoding and use them as if they are allocated in plain
-// system memory (in fact they are allocated in system memory and shared
-// bwith the GPU process). An additional step of uploading the content to
-// video memory is needed. Since VideoDecodeEngine is unaware of the video
-// memory, this upload operation is performed by calling
-// ConvertToVideoFrame().
-//
-// After the content is uploaded to video memory, WebKit will see the video
-// frame as textures and will perform the necessary operations for
-// rendering.
-//
-// 2. Opaque textures (aka hardware decoding mode).
-// In this mode of operation each video frame is backed by some opaque
-// textures. This is used only when hardware video decoding is used. The
-// textures needs to be generated and allocated inside the renderer process
-// first. This will establish a translation between texture ID in the
-// renderer process and the GPU process.
-//
-// The texture ID generated is used by IpcVideoDecodeEngine only to be sent
-// the GPU process. Inside the GPU process the texture ID is translated to
-// a real texture ID inside the actual context. The real texture ID is then
-// assigned to the hardware video decoder for storing the video frame.
-//
-// WebKit will see the video frame as a normal textures and perform
-// necessary render operations.
-//
-// In both operation modes, the objective is to have WebKit see the video frames
-// as regular textures.
-//
-// THREAD SEMANTICS
-//
-// All methods of this class can be called on any thread. GLES2 context and all
-// OpenGL method calls are accessed on the Render Thread. As as result all Tasks
-// given to this object are executed on the Render Thread.
-//
-// Since this class is not refcounted, it is important to destroy objects of
-// this class only when the Task given to Destroy() is called.
-//
-class Gles2VideoDecodeContext : public media::VideoDecodeContext {
- public:
- // |message_loop| is the message of the Render Thread.
- // |memory_mapped| determines if textures allocated are memory mapped.
- // |context| is the graphics context for generating textures.
- Gles2VideoDecodeContext(MessageLoop* message_loop,
- bool memory_mapped, ggl::Context* context);
- virtual ~Gles2VideoDecodeContext();
-
- // media::VideoDecodeContext implementation.
- virtual void* GetDevice();
- virtual void AllocateVideoFrames(
- int frames_num, size_t width, size_t height,
- media::VideoFrame::Format format,
- std::vector<scoped_refptr<media::VideoFrame> >* frames_out, Task* task);
- virtual void ReleaseAllVideoFrames();
- virtual void ConvertToVideoFrame(void* buffer,
- scoped_refptr<media::VideoFrame> frame,
- Task* task);
- virtual void Destroy(Task* task);
-
- // Accessor of the current mode of this decode context.
- bool IsMemoryMapped() const { return memory_mapped_; }
-
- private:
- // Message loop for Render Thread.
- MessageLoop* message_loop_;
-
- // Type of storage provided by this class.
- bool memory_mapped_;
-
- // Pointer to the GLES2 context.
- ggl::Context* context_;
-
- // VideoFrames allocated.
- std::vector<scoped_refptr<media::VideoFrame> > frames_;
-
- DISALLOW_COPY_AND_ASSIGN(Gles2VideoDecodeContext);
-};
-
-#endif // CHROME_RENDERER_MEDIA_GLES2_VIDEO_DECODE_CONTEXT_H_
« no previous file with comments | « chrome/renderer/media/audio_renderer_impl_unittest.cc ('k') | chrome/renderer/media/gles2_video_decode_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698