1 // Copyright 2014 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.
5 #ifndef MEDIA_CAST_TEST_FAKE_MOCK_VIDEO_ENCODE_ACCELERATOR_H_
6 #define MEDIA_CAST_TEST_FAKE_MOCK_VIDEO_ENCODE_ACCELERATOR_H_
8 #include "media/video/video_encode_accelerator.h"
13 #include "base/memory/weak_ptr.h"
14 #include "media/base/bitstream_buffer.h"
17 class SingleThreadTaskRunner
;
24 class FakeVideoEncodeAccelerator
: public VideoEncodeAccelerator
{
26 explicit FakeVideoEncodeAccelerator(
27 const scoped_refptr
<base::SingleThreadTaskRunner
>& task_runner
,
28 std::vector
<uint32
>* stored_bitrates
);
29 ~FakeVideoEncodeAccelerator() override
;
31 std::vector
<VideoEncodeAccelerator::SupportedProfile
> GetSupportedProfiles()
33 bool Initialize(media::VideoFrame::Format input_format
,
34 const gfx::Size
& input_visible_size
,
35 VideoCodecProfile output_profile
,
36 uint32 initial_bitrate
,
37 Client
* client
) override
;
39 void Encode(const scoped_refptr
<VideoFrame
>& frame
,
40 bool force_keyframe
) override
;
42 void UseOutputBitstreamBuffer(const BitstreamBuffer
& buffer
) override
;
44 void RequestEncodingParametersChange(uint32 bitrate
,
45 uint32 framerate
) override
;
47 void Destroy() override
;
49 void SendDummyFrameForTesting(bool key_frame
);
50 void SetWillInitializationSucceed(bool will_initialization_succeed
) {
51 will_initialization_succeed_
= will_initialization_succeed
;
55 void DoRequireBitstreamBuffers(unsigned int input_count
,
56 const gfx::Size
& input_coded_size
,
57 size_t output_buffer_size
) const;
58 void DoBitstreamBufferReady(int32 bitstream_buffer_id
,
60 bool key_frame
) const;
62 const scoped_refptr
<base::SingleThreadTaskRunner
> task_runner_
;
63 std::vector
<uint32
>* const stored_bitrates_
;
64 VideoEncodeAccelerator::Client
* client_
;
66 bool will_initialization_succeed_
;
68 std::list
<int32
> available_buffer_ids_
;
70 base::WeakPtrFactory
<FakeVideoEncodeAccelerator
> weak_this_factory_
;
72 DISALLOW_COPY_AND_ASSIGN(FakeVideoEncodeAccelerator
);
79 #endif // MEDIA_CAST_TEST_FAKE_MOCK_VIDEO_ENCODE_ACCELERATOR_H_