| Index: extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
|
| diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc b/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
|
| index 9d852eb9d5d8711328f5c2047c47682fd7680e68..6735511ff68f5fa491f0fb8d0b5bed4c4c16940d 100644
|
| --- a/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
|
| +++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/logging.h"
|
|
|
| namespace extensions {
|
| @@ -25,7 +26,21 @@ WiFiDisplayVideoEncoder::~WiFiDisplayVideoEncoder() = default;
|
| void WiFiDisplayVideoEncoder::Create(
|
| const InitParameters& params,
|
| const VideoEncoderCallback& encoder_callback) {
|
| - CreateVEA(params, encoder_callback);
|
| + CreateVEA(params, base::Bind(&OnCreatedVEA, params, encoder_callback));
|
| +}
|
| +
|
| +// static
|
| +void WiFiDisplayVideoEncoder::OnCreatedVEA(
|
| + const InitParameters& params,
|
| + const VideoEncoderCallback& encoder_callback,
|
| + scoped_refptr<WiFiDisplayVideoEncoder> vea_encoder) {
|
| + if (vea_encoder) {
|
| + // An accelerated encoder was created successfully. Pass it on.
|
| + encoder_callback.Run(vea_encoder);
|
| + } else {
|
| + // An accelerated encoder was not created. Fall back to a software encoder.
|
| + CreateSVC(params, encoder_callback);
|
| + }
|
| }
|
|
|
| void WiFiDisplayVideoEncoder::InsertRawVideoFrame(
|
|
|