| Index: cc/video_layer_impl.h
|
| diff --git a/cc/video_layer_impl.h b/cc/video_layer_impl.h
|
| index 47172d0139fd053e294d66cd0e81c8dde1addc16..964d35c69987fa1a76710b401134f68e9f09e976 100644
|
| --- a/cc/video_layer_impl.h
|
| +++ b/cc/video_layer_impl.h
|
| @@ -6,8 +6,10 @@
|
| #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>
|
| @@ -16,17 +18,24 @@ namespace WebKit {
|
| class WebVideoFrame;
|
| }
|
|
|
| +namespace media {
|
| +class SkCanvasVideoRenderer;
|
| +}
|
| +
|
| namespace cc {
|
|
|
| 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();
|
|
|
| @@ -58,9 +67,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*);
|
| @@ -68,6 +76,7 @@ private:
|
| bool copyPlaneData(ResourceProvider*);
|
| void freePlaneData(ResourceProvider*);
|
| void freeUnusedPlaneData(ResourceProvider*);
|
| + size_t numPlanes() const;
|
|
|
| // Guards the destruction of m_provider and the frame that it provides
|
| base::Lock m_providerLock;
|
| @@ -75,12 +84,16 @@ 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_convertYUV;
|
| ResourceProvider::ResourceId m_externalTextureResource;
|
| + scoped_ptr<media::SkCanvasVideoRenderer> m_videoRenderer;
|
|
|
| - // 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];
|
| };
|
|
|
| } // namespace cc
|
|
|