| Index: content/renderer/media/webmediaplayer_ms.cc
|
| diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
|
| index b03fedd8d5365e00e9c19a7bc58af7418c6bf407..72f2456a20cac1a2c5efafb44baecf7d7140cef9 100644
|
| --- a/content/renderer/media/webmediaplayer_ms.cc
|
| +++ b/content/renderer/media/webmediaplayer_ms.cc
|
| @@ -25,6 +25,7 @@
|
| #include "content/renderer/render_thread_impl.h"
|
| #include "media/base/media_log.h"
|
| #include "media/base/video_frame.h"
|
| +#include "media/base/video_rotation.h"
|
| #include "media/blink/webmediaplayer_util.h"
|
| #include "third_party/WebKit/public/platform/WebMediaPlayerClient.h"
|
| #include "third_party/WebKit/public/platform/WebMediaPlayerSource.h"
|
| @@ -55,6 +56,7 @@ WebMediaPlayerMS::WebMediaPlayerMS(
|
| paused_(true),
|
| render_frame_suspended_(false),
|
| received_first_frame_(false),
|
| + video_rotation_(media::VIDEO_ROTATION_0),
|
| media_log_(media_log),
|
| renderer_factory_(std::move(factory)),
|
| media_task_runner_(media_task_runner),
|
| @@ -264,6 +266,11 @@ bool WebMediaPlayerMS::hasAudio() const {
|
|
|
| blink::WebSize WebMediaPlayerMS::naturalSize() const {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| + if (video_rotation_ == media::VIDEO_ROTATION_90 ||
|
| + video_rotation_ == media::VideoRotation::VIDEO_ROTATION_270) {
|
| + const gfx::Size& current_size = compositor_->GetCurrentSize();
|
| + return blink::WebSize(current_size.height(), current_size.width());
|
| + }
|
| return blink::WebSize(compositor_->GetCurrentSize());
|
| }
|
|
|
| @@ -345,7 +352,7 @@ void WebMediaPlayerMS::paint(blink::WebCanvas* canvas,
|
| }
|
| const gfx::RectF dest_rect(rect.x, rect.y, rect.width, rect.height);
|
| video_renderer_.Paint(frame, canvas, dest_rect, alpha, mode,
|
| - media::VIDEO_ROTATION_0, context_3d);
|
| + video_rotation_, context_3d);
|
| }
|
|
|
| bool WebMediaPlayerMS::hasSingleSecurityOrigin() const {
|
| @@ -494,8 +501,11 @@ void WebMediaPlayerMS::OnFrameAvailable(
|
| }
|
|
|
| if (video_frame_provider_.get()) {
|
| + ignore_result(frame->metadata()->GetRotation(
|
| + media::VideoFrameMetadata::ROTATION, &video_rotation_));
|
| +
|
| video_weblayer_.reset(new cc_blink::WebLayerImpl(
|
| - cc::VideoLayer::Create(compositor_.get(), media::VIDEO_ROTATION_0)));
|
| + cc::VideoLayer::Create(compositor_.get(), video_rotation_)));
|
| video_weblayer_->layer()->SetContentsOpaque(false);
|
| video_weblayer_->SetContentsOpaqueIsFixed(true);
|
| get_client()->setWebLayer(video_weblayer_.get());
|
|
|