Index: media/video/fake_video_encode_accelerator.h |
diff --git a/media/cast/test/fake_video_encode_accelerator.h b/media/video/fake_video_encode_accelerator.h |
similarity index 65% |
rename from media/cast/test/fake_video_encode_accelerator.h |
rename to media/video/fake_video_encode_accelerator.h |
index 65cc36c3abd9cd7cc0b3ff447b323f8ebfdfd463..6c7c348b46d5da26461be2896e5692d3863dd8fa 100644 |
--- a/media/cast/test/fake_video_encode_accelerator.h |
+++ b/media/video/fake_video_encode_accelerator.h |
@@ -2,78 +2,84 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef MEDIA_CAST_TEST_FAKE_MOCK_VIDEO_ENCODE_ACCELERATOR_H_ |
-#define MEDIA_CAST_TEST_FAKE_MOCK_VIDEO_ENCODE_ACCELERATOR_H_ |
- |
-#include "media/video/video_encode_accelerator.h" |
+#ifndef MEDIA_VIDEO_FAKE_VIDEO_ENCODE_ACCELERATOR_H_ |
+#define MEDIA_VIDEO_FAKE_VIDEO_ENCODE_ACCELERATOR_H_ |
#include <list> |
+#include <queue> |
#include <vector> |
#include "base/memory/weak_ptr.h" |
#include "media/base/bitstream_buffer.h" |
+#include "media/base/media_export.h" |
+#include "media/video/video_encode_accelerator.h" |
namespace base { |
+ |
class SingleThreadTaskRunner; |
+ |
} // namespace base |
namespace media { |
-namespace cast { |
-namespace test { |
-class FakeVideoEncodeAccelerator : public VideoEncodeAccelerator { |
+class MEDIA_EXPORT FakeVideoEncodeAccelerator : public VideoEncodeAccelerator { |
public: |
explicit FakeVideoEncodeAccelerator( |
- const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
- std::vector<uint32>* stored_bitrates); |
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); |
~FakeVideoEncodeAccelerator() override; |
std::vector<VideoEncodeAccelerator::SupportedProfile> GetSupportedProfiles() |
override; |
- bool Initialize(media::VideoFrame::Format input_format, |
+ bool Initialize(VideoFrame::Format input_format, |
const gfx::Size& input_visible_size, |
VideoCodecProfile output_profile, |
uint32 initial_bitrate, |
Client* client) override; |
- |
void Encode(const scoped_refptr<VideoFrame>& frame, |
bool force_keyframe) override; |
- |
void UseOutputBitstreamBuffer(const BitstreamBuffer& buffer) override; |
- |
void RequestEncodingParametersChange(uint32 bitrate, |
uint32 framerate) override; |
- |
void Destroy() override; |
- void SendDummyFrameForTesting(bool key_frame); |
- void SetWillInitializationSucceed(bool will_initialization_succeed) { |
- will_initialization_succeed_ = will_initialization_succeed; |
+ const std::vector<uint32>& stored_bitrates() const { |
+ return stored_bitrates_; |
} |
+ void SendDummyFrameForTesting(bool key_frame); |
+ void SetWillInitializationSucceed(bool will_initialization_succeed); |
private: |
void DoRequireBitstreamBuffers(unsigned int input_count, |
const gfx::Size& input_coded_size, |
size_t output_buffer_size) const; |
+ void EncodeTask(); |
void DoBitstreamBufferReady(int32 bitstream_buffer_id, |
size_t payload_size, |
bool key_frame) const; |
+ // Our original (constructor) calling message loop used for all tasks. |
const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
- std::vector<uint32>* const stored_bitrates_; |
- VideoEncodeAccelerator::Client* client_; |
- bool first_; |
+ std::vector<uint32> stored_bitrates_; |
bool will_initialization_succeed_; |
- std::list<int32> available_buffer_ids_; |
+ VideoEncodeAccelerator::Client* client_; |
+ |
+ // Keeps track of if the current frame is the first encoded frame. This |
+ // is used to force a fake key frame for the first encoded frame. |
+ bool next_frame_is_first_frame_; |
+ |
+ // A queue containing the necessary data for incoming frames. The boolean |
+ // represent whether the queued frame should force a key frame. |
+ std::queue<bool> queued_frames_; |
+ |
+ // A list of buffers available for putting fake encoded frames in. |
+ std::list<BitstreamBuffer> available_buffers_; |
base::WeakPtrFactory<FakeVideoEncodeAccelerator> weak_this_factory_; |
DISALLOW_COPY_AND_ASSIGN(FakeVideoEncodeAccelerator); |
}; |
-} // namespace test |
-} // namespace cast |
} // namespace media |
-#endif // MEDIA_CAST_TEST_FAKE_MOCK_VIDEO_ENCODE_ACCELERATOR_H_ |
+#endif // MEDIA_VIDEO_FAKE_VIDEO_ENCODE_ACCELERATOR_H_ |