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_FILTERS_MOCK_GPU_VIDEO_ACCELERATOR_FACTORIES_H_ 6 #define MEDIA_FILTERS_MOCK_GPU_VIDEO_ACCELERATOR_FACTORIES_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "base/single_thread_task_runner.h" 10 #include "media/filters/gpu_video_accelerator_factories.h" 11 #include "media/video/video_decode_accelerator.h" 12 #include "media/video/video_encode_accelerator.h" 13 #include "testing/gmock/include/gmock/gmock.h" 14 #include "third_party/skia/include/core/SkBitmap.h" 15 16 template <class T> 17 class scoped_refptr; 18 19 namespace base { 20 class SharedMemory; 21 } 22 23 namespace media { 24 25 class MockGpuVideoAcceleratorFactories : public GpuVideoAcceleratorFactories { 26 public: 27 MockGpuVideoAcceleratorFactories(); 28 29 // CreateVideo{Decode,Encode}Accelerator returns scoped_ptr, which the mocking 30 // framework does not want. Trampoline them. 31 MOCK_METHOD0(DoCreateVideoDecodeAccelerator, VideoDecodeAccelerator*()); 32 MOCK_METHOD0(DoCreateVideoEncodeAccelerator, VideoEncodeAccelerator*()); 33 34 MOCK_METHOD5(CreateTextures, 35 bool(int32 count, 36 const gfx::Size& size, 37 std::vector<uint32>* texture_ids, 38 std::vector<gpu::Mailbox>* texture_mailboxes, 39 uint32 texture_target)); 40 MOCK_METHOD1(DeleteTexture, void(uint32 texture_id)); 41 MOCK_METHOD1(WaitSyncPoint, void(uint32 sync_point)); 42 MOCK_METHOD3(ReadPixels, 43 void(uint32 texture_id, 44 const gfx::Rect& visible_rect, 45 const SkBitmap& pixels)); 46 MOCK_METHOD1(CreateSharedMemory, base::SharedMemory*(size_t size)); 47 MOCK_METHOD0(GetTaskRunner, scoped_refptr<base::SingleThreadTaskRunner>()); 48 49 virtual scoped_ptr<VideoDecodeAccelerator> CreateVideoDecodeAccelerator() 50 OVERRIDE; 51 52 virtual scoped_ptr<VideoEncodeAccelerator> CreateVideoEncodeAccelerator() 53 OVERRIDE; 54 55 private: 56 virtual ~MockGpuVideoAcceleratorFactories(); 57 58 DISALLOW_COPY_AND_ASSIGN(MockGpuVideoAcceleratorFactories); 59 }; 60 61 } // namespace media 62 63 #endif // MEDIA_FILTERS_MOCK_GPU_VIDEO_ACCELERATOR_FACTORIES_H_ 64