fake_video_encode_accelerator_factory.cc 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright 2015 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. #include "media/cast/test/fake_video_encode_accelerator_factory.h"
  5. #include <utility>
  6. #include "base/callback_helpers.h"
  7. namespace media {
  8. namespace cast {
  9. FakeVideoEncodeAcceleratorFactory::FakeVideoEncodeAcceleratorFactory(
  10. const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
  11. : task_runner_(task_runner) {}
  12. FakeVideoEncodeAcceleratorFactory::~FakeVideoEncodeAcceleratorFactory() =
  13. default;
  14. void FakeVideoEncodeAcceleratorFactory::SetInitializationWillSucceed(
  15. bool will_init_succeed) {
  16. will_init_succeed_ = will_init_succeed;
  17. }
  18. void FakeVideoEncodeAcceleratorFactory::SetAutoRespond(bool auto_respond) {
  19. auto_respond_ = auto_respond;
  20. if (auto_respond_) {
  21. if (!vea_response_callback_.is_null())
  22. RespondWithVideoEncodeAccelerator();
  23. }
  24. }
  25. void FakeVideoEncodeAcceleratorFactory::CreateVideoEncodeAccelerator(
  26. ReceiveVideoEncodeAcceleratorCallback callback) {
  27. DCHECK(!callback.is_null());
  28. DCHECK(!next_response_vea_);
  29. FakeVideoEncodeAccelerator* const vea =
  30. new FakeVideoEncodeAccelerator(task_runner_);
  31. vea->SetWillInitializationSucceed(will_init_succeed_);
  32. next_response_vea_.reset(vea);
  33. vea_response_callback_ = std::move(callback);
  34. if (auto_respond_)
  35. RespondWithVideoEncodeAccelerator();
  36. }
  37. void FakeVideoEncodeAcceleratorFactory::RespondWithVideoEncodeAccelerator() {
  38. DCHECK(next_response_vea_.get());
  39. ++vea_response_count_;
  40. std::move(vea_response_callback_)
  41. .Run(task_runner_, std::move(next_response_vea_));
  42. }
  43. } // namespace cast
  44. } // namespace media