| Index: media/renderers/video_overlay_factory.cc
|
| diff --git a/chromecast/renderer/media/hole_frame_factory.cc b/media/renderers/video_overlay_factory.cc
|
| similarity index 54%
|
| copy from chromecast/renderer/media/hole_frame_factory.cc
|
| copy to media/renderers/video_overlay_factory.cc
|
| index 284e2c0ab2d419d696bf9d16dd72fb8bb6e573dc..0ea5d298c0b0b715f5d84e99440c9138d0e15c89 100644
|
| --- a/chromecast/renderer/media/hole_frame_factory.cc
|
| +++ b/media/renderers/video_overlay_factory.cc
|
| @@ -1,8 +1,8 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Copyright 2016 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 "chromecast/renderer/media/hole_frame_factory.h"
|
| +#include "media/renderers/video_overlay_factory.h"
|
|
|
| #include "base/bind.h"
|
| #include "base/location.h"
|
| @@ -11,15 +11,15 @@
|
| #include "media/base/video_frame.h"
|
| #include "media/renderers/gpu_video_accelerator_factories.h"
|
|
|
| -namespace chromecast {
|
| namespace media {
|
|
|
| -HoleFrameFactory::HoleFrameFactory(
|
| - ::media::GpuVideoAcceleratorFactories* gpu_factories)
|
| +VideoOverlayFactory::VideoOverlayFactory(
|
| + GpuVideoAcceleratorFactories* gpu_factories)
|
| : gpu_factories_(gpu_factories), texture_(0), image_id_(0) {
|
| if (gpu_factories_) {
|
| - std::unique_ptr<::media::GpuVideoAcceleratorFactories::ScopedGLContextLock>
|
| - lock(gpu_factories_->GetGLContextLock());
|
| + DCHECK(gpu_factories_->GetTaskRunner()->BelongsToCurrentThread());
|
| + std::unique_ptr<GpuVideoAcceleratorFactories::ScopedGLContextLock> lock(
|
| + gpu_factories_->GetGLContextLock());
|
| CHECK(lock);
|
| gpu::gles2::GLES2Interface* gl = lock->ContextGL();
|
|
|
| @@ -39,10 +39,11 @@ HoleFrameFactory::HoleFrameFactory(
|
| }
|
| }
|
|
|
| -HoleFrameFactory::~HoleFrameFactory() {
|
| +VideoOverlayFactory::~VideoOverlayFactory() {
|
| if (texture_) {
|
| - std::unique_ptr<::media::GpuVideoAcceleratorFactories::ScopedGLContextLock>
|
| - lock(gpu_factories_->GetGLContextLock());
|
| + DCHECK(gpu_factories_->GetTaskRunner()->BelongsToCurrentThread());
|
| + std::unique_ptr<GpuVideoAcceleratorFactories::ScopedGLContextLock> lock(
|
| + gpu_factories_->GetGLContextLock());
|
| CHECK(lock);
|
| gpu::gles2::GLES2Interface* gl = lock->ContextGL();
|
| gl->BindTexture(GL_TEXTURE_2D, texture_);
|
| @@ -52,31 +53,29 @@ HoleFrameFactory::~HoleFrameFactory() {
|
| }
|
| }
|
|
|
| -scoped_refptr<::media::VideoFrame> HoleFrameFactory::CreateHoleFrame(
|
| +scoped_refptr<VideoFrame> VideoOverlayFactory::CreateFrame(
|
| const gfx::Size& size) {
|
| // No texture => audio device. size empty => video has one dimension = 0.
|
| // Dimension 0 case triggers a DCHECK later on in TextureMailbox if we push
|
| // through the overlay path.
|
| if (!texture_ || size.IsEmpty()) {
|
| - LOG(INFO) << "Create black frame " << size.width() << "x" << size.height();
|
| - return ::media::VideoFrame::CreateBlackFrame(gfx::Size(1, 1));
|
| + DVLOG(1) << "Create black frame " << size.width() << "x" << size.height();
|
| + return VideoFrame::CreateBlackFrame(gfx::Size(1, 1));
|
| }
|
|
|
| - LOG(INFO) << "Create hole frame " << size.width() << "x" << size.height();
|
| - scoped_refptr<::media::VideoFrame> frame =
|
| - ::media::VideoFrame::WrapNativeTexture(
|
| - ::media::PIXEL_FORMAT_XRGB,
|
| - gpu::MailboxHolder(mailbox_, sync_token_, GL_TEXTURE_2D),
|
| - ::media::VideoFrame::ReleaseMailboxCB(),
|
| - size, // coded_size
|
| - gfx::Rect(size), // visible rect
|
| - size, // natural size
|
| - base::TimeDelta()); // timestamp
|
| + DCHECK(gpu_factories_->GetTaskRunner()->BelongsToCurrentThread());
|
| + DVLOG(1) << "Create overlay frame " << size.width() << "x" << size.height();
|
| + scoped_refptr<VideoFrame> frame = VideoFrame::WrapNativeTexture(
|
| + PIXEL_FORMAT_XRGB,
|
| + gpu::MailboxHolder(mailbox_, sync_token_, GL_TEXTURE_2D),
|
| + VideoFrame::ReleaseMailboxCB(),
|
| + size, // coded_size
|
| + gfx::Rect(size), // visible rect
|
| + size, // natural size
|
| + base::TimeDelta()); // timestamp
|
| CHECK(frame);
|
| - frame->metadata()->SetBoolean(::media::VideoFrameMetadata::ALLOW_OVERLAY,
|
| - true);
|
| + frame->metadata()->SetBoolean(VideoFrameMetadata::ALLOW_OVERLAY, true);
|
| return frame;
|
| }
|
|
|
| } // namespace media
|
| -} // namespace chromecast
|
|
|