12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_TEST_FAKE_VIDEO_FRAME_PROVIDER_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_TEST_FAKE_VIDEO_FRAME_PROVIDER_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/layers/video_frame_provider.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "media/base/video_frame.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Fake video frame provider that always provides the same VideoFrame.
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FakeVideoFrameProvider : public VideoFrameProvider {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  FakeVideoFrameProvider();
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual ~FakeVideoFrameProvider();
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void SetVideoFrameProviderClient(Client* client) OVERRIDE;
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual scoped_refptr<media::VideoFrame> GetCurrentFrame() OVERRIDE;
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void PutCurrentFrame(const scoped_refptr<media::VideoFrame>&)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      OVERRIDE {}
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  Client* client() { return client_; }
25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void set_frame(const scoped_refptr<media::VideoFrame>& frame) {
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    frame_ = frame;
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  scoped_refptr<media::VideoFrame> frame_;
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  Client* client_;
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_TEST_FAKE_VIDEO_FRAME_PROVIDER_H_
38