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

Unified Diff: chrome/browser/renderer_host/video_layer_x.cc

Issue 4399003: Deleted code associated with --enable-gpu-rendering and... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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
« no previous file with comments | « chrome/browser/renderer_host/video_layer_x.h ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/video_layer_x.cc
===================================================================
--- chrome/browser/renderer_host/video_layer_x.cc (revision 65168)
+++ chrome/browser/renderer_host/video_layer_x.cc (working copy)
@@ -1,110 +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.
-
-#include "chrome/browser/renderer_host/video_layer_x.h"
-
-#include "app/x11_util_internal.h"
-#include "chrome/browser/renderer_host/render_process_host.h"
-#include "media/base/yuv_convert.h"
-
-
-// Assume that somewhere along the line, someone will do width * height * 4
-// with signed numbers. If the maximum value is 2**31, then 2**31 / 4 =
-// 2**29 and floor(sqrt(2**29)) = 23170.
-
-// Max height and width for layers
-static const int kMaxVideoLayerSize = 23170;
-
-VideoLayerX::VideoLayerX(RenderWidgetHost* widget,
- const gfx::Size& size,
- void* visual,
- int depth)
- : VideoLayer(widget, size),
- visual_(visual),
- depth_(depth),
- display_(x11_util::GetXDisplay()),
- rgb_frame_size_(0) {
- DCHECK(!size.IsEmpty());
-
- // Create our pixmap + GC representing an RGB version of a video frame.
- pixmap_ = XCreatePixmap(display_, x11_util::GetX11RootWindow(),
- size.width(), size.height(), depth_);
- pixmap_gc_ = XCreateGC(display_, pixmap_, 0, NULL);
- pixmap_bpp_ = x11_util::BitsPerPixelForPixmapDepth(display_, depth_);
-}
-
-VideoLayerX::~VideoLayerX() {
- // In unit tests, |display_| may be NULL.
- if (!display_)
- return;
-
- XFreePixmap(display_, pixmap_);
- XFreeGC(display_, static_cast<GC>(pixmap_gc_));
-}
-
-void VideoLayerX::CopyTransportDIB(RenderProcessHost* process,
- TransportDIB::Id bitmap,
- const gfx::Rect& bitmap_rect) {
- if (!display_)
- return;
-
- if (bitmap_rect.IsEmpty())
- return;
-
- if (bitmap_rect.size() != size()) {
- LOG(ERROR) << "Scaled video layer not supported.";
- return;
- }
-
- // Save location and size of destination bitmap.
- rgb_rect_ = bitmap_rect;
-
- const int width = bitmap_rect.width();
- const int height = bitmap_rect.height();
- const size_t new_rgb_frame_size = static_cast<size_t>(width * height * 4);
-
- if (width <= 0 || width > kMaxVideoLayerSize ||
- height <= 0 || height > kMaxVideoLayerSize)
- return;
-
- // Lazy allocate |rgb_frame_|.
- if (!rgb_frame_.get() || rgb_frame_size_ < new_rgb_frame_size) {
- // TODO(scherkus): handle changing dimensions and re-allocating.
- CHECK(size() == rgb_rect_.size());
- rgb_frame_.reset(new uint8[new_rgb_frame_size]);
- rgb_frame_size_ = new_rgb_frame_size;
- }
-
- TransportDIB* dib = process->GetTransportDIB(bitmap);
- if (!dib)
- return;
-
- // Perform colour space conversion.
- const uint8* y_plane = reinterpret_cast<uint8*>(dib->memory());
- const uint8* u_plane = y_plane + width * height;
- const uint8* v_plane = u_plane + ((width * height) >> 2);
- media::ConvertYUVToRGB32(y_plane,
- u_plane,
- v_plane,
- rgb_frame_.get(),
- width,
- height,
- width,
- width / 2,
- width * 4,
- media::YV12);
-
- // Draw ARGB frame onto our pixmap.
- x11_util::PutARGBImage(display_, visual_, depth_, pixmap_, pixmap_gc_,
- rgb_frame_.get(), width, height);
-}
-
-void VideoLayerX::XShow(XID target) {
- if (rgb_rect_.IsEmpty())
- return;
-
- XCopyArea(display_, pixmap_, target, static_cast<GC>(pixmap_gc_),
- 0, 0, rgb_rect_.width(), rgb_rect_.height(),
- rgb_rect_.x(), rgb_rect_.y());
-}
« no previous file with comments | « chrome/browser/renderer_host/video_layer_x.h ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698