17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file.
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef MEDIA_VIDEO_MOCK_VIDEO_DECODE_ACCELERATOR_H_
67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define MEDIA_VIDEO_MOCK_VIDEO_DECODE_ACCELERATOR_H_
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "video_decode_accelerator.h"
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <vector>
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/basictypes.h"
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "media/base/bitstream_buffer.h"
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "media/base/video_decoder_config.h"
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "media/video/picture.h"
167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "testing/gmock/include/gmock/gmock.h"
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace media {
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Remember to use the default action of Destroy() when using EXPECT_CALL.
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Otherwise, the mock will be leaked and the test runner will complain.
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass MockVideoDecodeAccelerator : public VideoDecodeAccelerator {
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public:
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MockVideoDecodeAccelerator();
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual ~MockVideoDecodeAccelerator();
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  MOCK_METHOD2(Initialize, bool(VideoCodecProfile profile, Client* client));
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MOCK_METHOD1(Decode, void(const BitstreamBuffer& bitstream_buffer));
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MOCK_METHOD1(AssignPictureBuffers,
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch               void(const std::vector<PictureBuffer>& buffers));
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MOCK_METHOD1(ReusePictureBuffer, void(int32 picture_buffer_id));
327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MOCK_METHOD0(Flush, void());
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MOCK_METHOD0(Reset, void());
347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  MOCK_METHOD0(Destroy, void());
35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  MOCK_METHOD0(CanDecodeOnIOThread, bool());
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch private:
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  void DeleteThis();
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(MockVideoDecodeAccelerator);
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch};
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}  // namespace media
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif  // MEDIA_VIDEO_MOCK_VIDEO_DECODE_ACCELERATOR_H_
45