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 |