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

Side by Side Diff: remoting/base/decoder_vp8.cc

Issue 9583020: Disable rendering on up-scale. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pick nits. Created 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | remoting/client/plugin/pepper_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "remoting/base/decoder_vp8.h" 5 #include "remoting/base/decoder_vp8.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "media/base/media.h" 10 #include "media/base/media.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 114 }
115 } 115 }
116 116
117 void DecoderVp8::RenderFrame(const SkISize& view_size, 117 void DecoderVp8::RenderFrame(const SkISize& view_size,
118 const SkIRect& clip_area, 118 const SkIRect& clip_area,
119 uint8* image_buffer, 119 uint8* image_buffer,
120 int image_stride, 120 int image_stride,
121 SkRegion* output_region) { 121 SkRegion* output_region) {
122 SkIRect source_clip = SkIRect::MakeWH(last_image_->d_w, last_image_->d_h); 122 SkIRect source_clip = SkIRect::MakeWH(last_image_->d_w, last_image_->d_h);
123 123
124 // ScaleYUVToRGB32WithRect doesn't support up-scaling, and our web-app never
125 // intentionally up-scales, so if we see up-scaling (e.g. during host resize
126 // or if the user applies page zoom) just don't render anything.
127 // TODO(wez): Remove this hack when ScaleYUVToRGB32WithRect can up-scale.
128 if (source_clip.width() < view_size.width() ||
129 source_clip.height() < view_size.height()) {
130 return;
131 }
132
124 for (SkRegion::Iterator i(updated_region_); !i.done(); i.next()) { 133 for (SkRegion::Iterator i(updated_region_); !i.done(); i.next()) {
125 // Determine the scaled area affected by this rectangle changing. 134 // Determine the scaled area affected by this rectangle changing.
126 SkIRect rect = i.rect(); 135 SkIRect rect = i.rect();
127 if (!rect.intersect(source_clip)) 136 if (!rect.intersect(source_clip))
128 continue; 137 continue;
129 rect = ScaleRect(rect, screen_size_, view_size); 138 rect = ScaleRect(rect, screen_size_, view_size);
130 if (!rect.intersect(clip_area)) 139 if (!rect.intersect(clip_area))
131 continue; 140 continue;
132 141
133 ConvertAndScaleYUVToRGB32Rect(last_image_->planes[0], 142 ConvertAndScaleYUVToRGB32Rect(last_image_->planes[0],
(...skipping 10 matching lines...) Expand all
144 rect); 153 rect);
145 154
146 output_region->op(rect, SkRegion::kUnion_Op); 155 output_region->op(rect, SkRegion::kUnion_Op);
147 } 156 }
148 157
149 updated_region_.op(ScaleRect(clip_area, view_size, screen_size_), 158 updated_region_.op(ScaleRect(clip_area, view_size, screen_size_),
150 SkRegion::kDifference_Op); 159 SkRegion::kDifference_Op);
151 } 160 }
152 161
153 } // namespace remoting 162 } // namespace remoting
OLDNEW
« no previous file with comments | « no previous file | remoting/client/plugin/pepper_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698