| Index: content/renderer/media/stream_texture_factory_impl_android.cc
|
| diff --git a/content/renderer/media/stream_texture_factory_impl_android.cc b/content/renderer/media/stream_texture_factory_impl_android.cc
|
| deleted file mode 100644
|
| index b33c9246628f5f071fc8a06a2a36acce8b6c7220..0000000000000000000000000000000000000000
|
| --- a/content/renderer/media/stream_texture_factory_impl_android.cc
|
| +++ /dev/null
|
| @@ -1,137 +0,0 @@
|
| -// Copyright (c) 2012 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 "content/renderer/media/stream_texture_factory_impl_android.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/message_loop/message_loop_proxy.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "content/common/android/surface_texture_peer.h"
|
| -#include "content/common/gpu/client/gpu_channel_host.h"
|
| -#include "content/common/gpu/gpu_messages.h"
|
| -#include "content/renderer/render_thread_impl.h"
|
| -#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
|
| -#include "ui/gfx/size.h"
|
| -
|
| -namespace {
|
| -
|
| -// Implementation of the StreamTextureProxy class. This class listens to all
|
| -// the stream texture updates and forward them to the
|
| -// cc::VideoFrameProvider::Client.
|
| -class StreamTextureProxyImpl : public webkit_media::StreamTextureProxy,
|
| - public content::StreamTextureHost::Listener {
|
| - public:
|
| - explicit StreamTextureProxyImpl(content::StreamTextureHost* host);
|
| - virtual ~StreamTextureProxyImpl() {}
|
| -
|
| - // webkit_media::StreamTextureProxy implementation:
|
| - virtual void BindToCurrentThread(
|
| - int stream_id, int width, int height) OVERRIDE;
|
| - virtual bool IsBoundToThread() OVERRIDE { return !!loop_.get(); }
|
| - virtual void SetClient(cc::VideoFrameProvider::Client* client) OVERRIDE;
|
| - virtual void Release() OVERRIDE;
|
| -
|
| - // StreamTextureHost::Listener implementation:
|
| - virtual void OnFrameAvailable() OVERRIDE;
|
| - virtual void OnMatrixChanged(const float matrix[16]) OVERRIDE;
|
| -
|
| - private:
|
| - scoped_ptr<content::StreamTextureHost> host_;
|
| - scoped_refptr<base::MessageLoopProxy> loop_;
|
| -
|
| - base::Lock client_lock_;
|
| - cc::VideoFrameProvider::Client* client_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(StreamTextureProxyImpl);
|
| -};
|
| -
|
| -StreamTextureProxyImpl::StreamTextureProxyImpl(
|
| - content::StreamTextureHost* host)
|
| - : host_(host),
|
| - client_(NULL) {
|
| - DCHECK(host);
|
| - host->SetListener(this);
|
| -}
|
| -
|
| -void StreamTextureProxyImpl::Release() {
|
| - SetClient(NULL);
|
| - if (loop_.get() && loop_.get() != base::MessageLoopProxy::current())
|
| - loop_->DeleteSoon(FROM_HERE, this);
|
| - else
|
| - delete this;
|
| -}
|
| -
|
| -void StreamTextureProxyImpl::SetClient(cc::VideoFrameProvider::Client* client) {
|
| - base::AutoLock lock(client_lock_);
|
| - client_ = client;
|
| -}
|
| -
|
| -void StreamTextureProxyImpl::BindToCurrentThread(
|
| - int stream_id, int width, int height) {
|
| - loop_ = base::MessageLoopProxy::current();
|
| - host_->Initialize(stream_id, gfx::Size(width, height));
|
| -}
|
| -
|
| -void StreamTextureProxyImpl::OnFrameAvailable() {
|
| - base::AutoLock lock(client_lock_);
|
| - if (client_)
|
| - client_->DidReceiveFrame();
|
| -}
|
| -
|
| -void StreamTextureProxyImpl::OnMatrixChanged(const float matrix[16]) {
|
| - base::AutoLock lock(client_lock_);
|
| - if (client_)
|
| - client_->DidUpdateMatrix(matrix);
|
| -}
|
| -
|
| -} // anonymous namespace
|
| -
|
| -namespace content {
|
| -
|
| -StreamTextureFactoryImpl::StreamTextureFactoryImpl(
|
| - WebKit::WebGraphicsContext3D* context,
|
| - GpuChannelHost* channel,
|
| - int view_id)
|
| - : context_(context),
|
| - channel_(channel),
|
| - view_id_(view_id) {
|
| - DCHECK(context_);
|
| - DCHECK(channel);
|
| -}
|
| -
|
| -StreamTextureFactoryImpl::~StreamTextureFactoryImpl() {
|
| -}
|
| -
|
| -webkit_media::StreamTextureProxy* StreamTextureFactoryImpl::CreateProxy() {
|
| - DCHECK(channel_.get());
|
| - StreamTextureHost* host = new StreamTextureHost(channel_.get());
|
| - return new StreamTextureProxyImpl(host);
|
| -}
|
| -
|
| -void StreamTextureFactoryImpl::EstablishPeer(int stream_id, int player_id) {
|
| - DCHECK(channel_.get());
|
| - channel_->Send(new GpuChannelMsg_EstablishStreamTexture(
|
| - stream_id, view_id_, player_id));
|
| -}
|
| -
|
| -unsigned StreamTextureFactoryImpl::CreateStreamTexture(unsigned* texture_id) {
|
| - unsigned stream_id = 0;
|
| - if (context_->makeContextCurrent()) {
|
| - *texture_id = context_->createTexture();
|
| - stream_id = context_->createStreamTextureCHROMIUM(*texture_id);
|
| - context_->flush();
|
| - }
|
| - return stream_id;
|
| -}
|
| -
|
| -void StreamTextureFactoryImpl::DestroyStreamTexture(unsigned texture_id) {
|
| - if (context_->makeContextCurrent()) {
|
| - context_->destroyStreamTextureCHROMIUM(texture_id);
|
| - context_->deleteTexture(texture_id);
|
| - context_->flush();
|
| - }
|
| -}
|
| -
|
| -} // namespace content
|
|
|