Index: cc/video_layer_impl.h |
diff --git a/cc/video_layer_impl.h b/cc/video_layer_impl.h |
index 9f667a1cf6eb14b2cd3d99737d8ce26ad77e0bf3..f0847f70b97aacfc1df0bb64eff2bb8fe6a23f6a 100644 |
--- a/cc/video_layer_impl.h |
+++ b/cc/video_layer_impl.h |
@@ -6,12 +6,13 @@ |
#define CCVideoLayerImpl_h |
#include "IntSize.h" |
+#include "base/callback.h" |
#include "base/synchronization/lock.h" |
#include "cc/layer_impl.h" |
+#include "media/base/video_frame.h" |
#include "third_party/khronos/GLES2/gl2.h" |
#include <public/WebTransformationMatrix.h> |
#include <public/WebVideoFrameProvider.h> |
-#include <wtf/ThreadingPrimitives.h> |
namespace WebKit { |
class WebVideoFrame; |
@@ -23,11 +24,14 @@ class LayerTreeHostImpl; |
class VideoLayerImpl; |
class VideoLayerImpl : public LayerImpl |
- , public WebKit::WebVideoFrameProvider::Client { |
+ , public WebKit::WebVideoFrameProvider::Client { |
public: |
- static scoped_ptr<VideoLayerImpl> create(int id, WebKit::WebVideoFrameProvider* provider) |
+ typedef base::Callback<media::VideoFrame* (WebKit::WebVideoFrame*)> FrameUnwrapper; |
+ |
+ static scoped_ptr<VideoLayerImpl> create(int id, WebKit::WebVideoFrameProvider* provider, |
+ const FrameUnwrapper& unwrapper) |
{ |
- return make_scoped_ptr(new VideoLayerImpl(id, provider)); |
+ return make_scoped_ptr(new VideoLayerImpl(id, provider, unwrapper)); |
} |
virtual ~VideoLayerImpl(); |
@@ -59,9 +63,8 @@ public: |
}; |
private: |
- VideoLayerImpl(int, WebKit::WebVideoFrameProvider*); |
+ VideoLayerImpl(int, WebKit::WebVideoFrameProvider*, const FrameUnwrapper&); |
- static IntSize computeVisibleSize(const WebKit::WebVideoFrame&, unsigned plane); |
virtual const char* layerTypeAsString() const OVERRIDE; |
void willDrawInternal(ResourceProvider*); |
@@ -76,12 +79,15 @@ private: |
WebKit::WebTransformationMatrix m_streamTextureMatrix; |
- WebKit::WebVideoFrame* m_frame; |
+ FrameUnwrapper m_unwrapper; |
+ WebKit::WebVideoFrame *m_webFrame; |
+ media::VideoFrame* m_frame; |
GLenum m_format; |
+ bool m_emitFrameQuad; |
ResourceProvider::ResourceId m_externalTextureResource; |
- // Each index in this array corresponds to a plane in WebKit::WebVideoFrame. |
- FramePlane m_framePlanes[WebKit::WebVideoFrame::maxPlanes]; |
+ // Each index in this array corresponds to a plane in media::VideoFrame. |
+ FramePlane m_framePlanes[media::VideoFrame::kMaxPlanes]; |
}; |
} |