video_layer.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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.
4
5#ifndef CC_LAYERS_VIDEO_LAYER_H_
6#define CC_LAYERS_VIDEO_LAYER_H_
7
8#include "base/callback.h"
9#include "cc/base/cc_export.h"
10#include "cc/layers/layer.h"
11
12namespace media { class VideoFrame; }
13
14namespace cc {
15
16class VideoFrameProvider;
17class VideoLayerImpl;
18
19// A Layer that contains a Video element.
20class CC_EXPORT VideoLayer : public Layer {
21 public:
22  static scoped_refptr<VideoLayer> Create(VideoFrameProvider* provider);
23
24  virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
25      OVERRIDE;
26
27 private:
28  explicit VideoLayer(VideoFrameProvider* provider);
29  virtual ~VideoLayer();
30
31  // This pointer is only for passing to VideoLayerImpl's constructor. It should
32  // never be dereferenced by this class.
33  VideoFrameProvider* provider_;
34};
35
36}  // namespace cc
37
38#endif  // CC_LAYERS_VIDEO_LAYER_H_
39