1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_VIDEO_LAYER_H_
6 #define CC_VIDEO_LAYER_H_
8 #include "base/callback.h"
9 #include "cc/cc_export.h"
14 class WebVideoFrameProvider
;
25 // A Layer that contains a Video element.
26 class CC_EXPORT VideoLayer
: public Layer
{
28 typedef base::Callback
<media::VideoFrame
* (WebKit::WebVideoFrame
*)> FrameUnwrapper
;
30 static scoped_refptr
<VideoLayer
> create(WebKit::WebVideoFrameProvider
*,
31 const FrameUnwrapper
&);
33 virtual scoped_ptr
<LayerImpl
> createLayerImpl() OVERRIDE
;
36 VideoLayer(WebKit::WebVideoFrameProvider
*, const FrameUnwrapper
&);
37 virtual ~VideoLayer();
39 // This pointer is only for passing to VideoLayerImpl's constructor. It should never be dereferenced by this class.
40 WebKit::WebVideoFrameProvider
* m_provider
;
41 FrameUnwrapper m_unwrapper
;
46 #endif // CC_VIDEO_LAYER_H_