Chromium Code Reviews| Index: content/renderer/media/android/stream_texture_factory.h |
| diff --git a/content/renderer/media/android/stream_texture_factory.h b/content/renderer/media/android/stream_texture_factory.h |
| index 70d31e9391a8c2ac760ae5b2559866f30869093f..f6799f6ac2293ed507e259e89f076b7055ec7e3f 100644 |
| --- a/content/renderer/media/android/stream_texture_factory.h |
| +++ b/content/renderer/media/android/stream_texture_factory.h |
| @@ -7,6 +7,7 @@ |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/message_loop/message_loop_proxy.h" |
| #include "cc/layers/video_frame_provider.h" |
| #include "gpu/command_buffer/common/mailbox.h" |
| #include "ui/gfx/size.h" |
| @@ -25,13 +26,12 @@ class StreamTextureProxy { |
| public: |
| virtual ~StreamTextureProxy() {} |
| - // Initialize and bind to the current thread, which becomes the thread that |
| - // a connected client will receive callbacks on. |
| - virtual void BindToCurrentThread(int32 stream_id) = 0; |
| - |
| - // Setting the target for callback when a frame is available. This function |
| - // could be called on both the main thread and the compositor thread. |
| - virtual void SetClient(cc::VideoFrameProvider::Client* client) = 0; |
| + // Initialize and bind to the loop, which becomes the thread that |
| + // a connected client will receive callbacks on. This can be called |
| + // on any thread, but must be called with the same loop every time. |
| + virtual void BindToLoop(int32 stream_id, |
| + cc::VideoFrameProvider::Client* client, |
| + scoped_refptr<base::MessageLoopProxy> loop) = 0; |
| // Causes this instance to be deleted on the thread it is bound to. |
| virtual void Release() = 0; |
| @@ -44,6 +44,12 @@ class StreamTextureProxy { |
| typedef scoped_ptr<StreamTextureProxy, StreamTextureProxy::Deleter> |
| ScopedStreamTextureProxy; |
| +class StreamTextureFactoryContextObserver { |
| + public: |
| + ~StreamTextureFactoryContextObserver() {} |
|
no sievers
2014/09/17 01:29:52
virtual
boliu
2014/09/17 02:09:02
Woo, good catch. Done!
|
| + virtual void ResetStreamTextureProxy() = 0; |
| +}; |
| + |
| // Factory class for managing stream textures. |
| class StreamTextureFactory : public base::RefCounted<StreamTextureFactory> { |
| public: |
| @@ -69,6 +75,9 @@ class StreamTextureFactory : public base::RefCounted<StreamTextureFactory> { |
| virtual gpu::gles2::GLES2Interface* ContextGL() = 0; |
| + virtual void AddObserver(StreamTextureFactoryContextObserver* obs) = 0; |
| + virtual void RemoveObserver(StreamTextureFactoryContextObserver* obs) = 0; |
| + |
| protected: |
| friend class base::RefCounted<StreamTextureFactory>; |
| virtual ~StreamTextureFactory() {} |