diff options
author | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-16 00:00:09 +0000 |
---|---|---|
committer | vrk@google.com <vrk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-16 00:00:09 +0000 |
commit | a1d41ed5a126c9426f986930fb420e0c9c3f7faa (patch) | |
tree | 1f0a43e9b1a0edb2748dde1bc68a7915bba6b525 /webkit | |
parent | 8a6bf98805e68f6e00c7cc8a1aaa258fd2c2c7a5 (diff) | |
download | chromium_src-a1d41ed5a126c9426f986930fb420e0c9c3f7faa.zip chromium_src-a1d41ed5a126c9426f986930fb420e0c9c3f7faa.tar.gz chromium_src-a1d41ed5a126c9426f986930fb420e0c9c3f7faa.tar.bz2 |
Fix aspect ratio and clarify video frame dimensions
BUG=18941,94861
TEST=video-aspect-ratio.html
Review URL: http://codereview.chromium.org/7864009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101418 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/media/video_renderer_impl.cc | 12 | ||||
-rw-r--r-- | webkit/glue/media/video_renderer_impl.h | 4 | ||||
-rw-r--r-- | webkit/glue/webmediaplayer_impl.cc | 6 |
3 files changed, 11 insertions, 11 deletions
diff --git a/webkit/glue/media/video_renderer_impl.cc b/webkit/glue/media/video_renderer_impl.cc index 70dbe7a9a..4532935 100644 --- a/webkit/glue/media/video_renderer_impl.cc +++ b/webkit/glue/media/video_renderer_impl.cc @@ -21,9 +21,9 @@ VideoRendererImpl::VideoRendererImpl(bool pts_logging) VideoRendererImpl::~VideoRendererImpl() {} bool VideoRendererImpl::OnInitialize(media::VideoDecoder* decoder) { - video_size_.SetSize(decoder->width(), decoder->height()); + natural_size_ = decoder->natural_size(); bitmap_.setConfig(SkBitmap::kARGB_8888_Config, - decoder->width(), decoder->height()); + natural_size_.width(), natural_size_.height()); bitmap_.allocPixels(); bitmap_.eraseRGB(0x00, 0x00, 0x00); bitmap_.setIsVolatile(true); @@ -162,12 +162,12 @@ void VideoRendererImpl::SlowPaint(media::VideoFrame* video_frame, SkMatrix matrix; matrix.setTranslate(static_cast<SkScalar>(dest_rect.x()), static_cast<SkScalar>(dest_rect.y())); - if (dest_rect.width() != video_size_.width() || - dest_rect.height() != video_size_.height()) { + if (dest_rect.width() != natural_size_.width() || + dest_rect.height() != natural_size_.height()) { matrix.preScale(SkIntToScalar(dest_rect.width()) / - SkIntToScalar(video_size_.width()), + SkIntToScalar(natural_size_.width()), SkIntToScalar(dest_rect.height()) / - SkIntToScalar(video_size_.height())); + SkIntToScalar(natural_size_.height())); } SkPaint paint; paint.setFlags(SkPaint::kFilterBitmap_Flag); diff --git a/webkit/glue/media/video_renderer_impl.h b/webkit/glue/media/video_renderer_impl.h index 71977d0..aedadf2 100644 --- a/webkit/glue/media/video_renderer_impl.h +++ b/webkit/glue/media/video_renderer_impl.h @@ -68,8 +68,8 @@ class VideoRendererImpl : public WebVideoRenderer { media::VideoFrame* last_converted_frame_; base::TimeDelta last_converted_timestamp_; - // The size of the video. - gfx::Size video_size_; + // The natural size of the video. + gfx::Size natural_size_; // Whether we're logging video presentation timestamps (PTS). bool pts_logging_; diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc index b6f41d9a..9c46c89 100644 --- a/webkit/glue/webmediaplayer_impl.cc +++ b/webkit/glue/webmediaplayer_impl.cc @@ -399,9 +399,9 @@ bool WebMediaPlayerImpl::hasAudio() const { WebKit::WebSize WebMediaPlayerImpl::naturalSize() const { DCHECK(MessageLoop::current() == main_loop_); - size_t width, height; - pipeline_->GetVideoSize(&width, &height); - return WebKit::WebSize(width, height); + gfx::Size size; + pipeline_->GetNaturalVideoSize(&size); + return WebKit::WebSize(size); } bool WebMediaPlayerImpl::paused() const { |