Allow injecting a Vp8FrameBufferControllerFactory

Injection is made possible through VP8Encoder::Create.
According to native-api.md, it is a defacto public API despite
not being in the api/ folder.

Bug: webrtc:10259, webrtc:10382
Change-Id: Ifc5d55aa99613cfee0fcb4f0c6690121c85b2e3e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128883
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27281}
This commit is contained in:
Elad Alon
2019-03-25 13:19:43 +01:00
committed by Commit Bot
parent 2214b91c1f
commit f2ca8c5341
4 changed files with 42 additions and 6 deletions

View File

@ -36,7 +36,12 @@ namespace webrtc {
class LibvpxVp8Encoder : public VideoEncoder {
public:
LibvpxVp8Encoder();
explicit LibvpxVp8Encoder(std::unique_ptr<Vp8FrameBufferControllerFactory>
frame_buffer_controller_factory);
explicit LibvpxVp8Encoder(std::unique_ptr<LibvpxInterface> interface);
LibvpxVp8Encoder(std::unique_ptr<Vp8FrameBufferControllerFactory>
frame_buffer_controller_factory,
std::unique_ptr<LibvpxInterface> interface);
~LibvpxVp8Encoder() override;
int Release() override;
@ -102,6 +107,8 @@ class LibvpxVp8Encoder : public VideoEncoder {
int cpu_speed_default_;
int number_of_cores_;
uint32_t rc_max_intra_target_;
const std::unique_ptr<Vp8FrameBufferControllerFactory>
frame_buffer_controller_factory_;
std::unique_ptr<Vp8FrameBufferController> frame_buffer_controller_;
std::vector<bool> key_frame_request_;
std::vector<bool> send_stream_;