1// Copyright 2013 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 MEDIA_VIDEO_MOCK_VIDEO_DECODE_ACCELERATOR_H_
6#define MEDIA_VIDEO_MOCK_VIDEO_DECODE_ACCELERATOR_H_
7
8#include "video_decode_accelerator.h"
9
10#include <vector>
11
12#include "base/basictypes.h"
13#include "media/base/bitstream_buffer.h"
14#include "media/base/video_decoder_config.h"
15#include "media/video/picture.h"
16#include "testing/gmock/include/gmock/gmock.h"
17
18namespace media {
19
20// Remember to use the default action of Destroy() when using EXPECT_CALL.
21// Otherwise, the mock will be leaked and the test runner will complain.
22class MockVideoDecodeAccelerator : public VideoDecodeAccelerator {
23 public:
24  MockVideoDecodeAccelerator();
25  virtual ~MockVideoDecodeAccelerator();
26
27  MOCK_METHOD2(Initialize, bool(VideoCodecProfile profile, Client* client));
28  MOCK_METHOD1(Decode, void(const BitstreamBuffer& bitstream_buffer));
29  MOCK_METHOD1(AssignPictureBuffers,
30               void(const std::vector<PictureBuffer>& buffers));
31  MOCK_METHOD1(ReusePictureBuffer, void(int32 picture_buffer_id));
32  MOCK_METHOD0(Flush, void());
33  MOCK_METHOD0(Reset, void());
34  MOCK_METHOD0(Destroy, void());
35  MOCK_METHOD0(CanDecodeOnIOThread, bool());
36
37 private:
38  void DeleteThis();
39  DISALLOW_COPY_AND_ASSIGN(MockVideoDecodeAccelerator);
40};
41
42}  // namespace media
43
44#endif  // MEDIA_VIDEO_MOCK_VIDEO_DECODE_ACCELERATOR_H_
45