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 ebdb7bce7e7d042f3ec6ec1480080fb33ed4aaee..5a21291787b836c45bf8806c3723f4c63feb778b 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,8 @@ |
#include "extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h" |
+#include "base/logging.h" |
+ |
namespace extensions { |
WiFiDisplayVideoEncoder::InitParameters::InitParameters() = default; |
@@ -11,7 +13,12 @@ WiFiDisplayVideoEncoder::InitParameters::InitParameters(const InitParameters&) = |
default; |
WiFiDisplayVideoEncoder::InitParameters::~InitParameters() = default; |
-WiFiDisplayVideoEncoder::WiFiDisplayVideoEncoder() = default; |
+WiFiDisplayVideoEncoder::WiFiDisplayVideoEncoder( |
+ scoped_refptr<base::SingleThreadTaskRunner> media_task_runner) |
+ : media_task_runner_(std::move(media_task_runner)), send_idr_(false) { |
+ DCHECK(media_task_runner_); |
+} |
+ |
WiFiDisplayVideoEncoder::~WiFiDisplayVideoEncoder() = default; |
// static |
@@ -22,4 +29,18 @@ void WiFiDisplayVideoEncoder::Create( |
encoder_callback.Run(nullptr); |
} |
+void WiFiDisplayVideoEncoder::InsertRawVideoFrame( |
+ const scoped_refptr<media::VideoFrame>& video_frame, |
+ base::TimeTicks reference_time) { |
+ DCHECK(!encoded_callback_.is_null()); |
+ media_task_runner_->PostTask( |
+ FROM_HERE, base::Bind(&WiFiDisplayVideoEncoder::InsertFrameOnMediaThread, |
+ this, video_frame, reference_time, send_idr_)); |
+ send_idr_ = false; |
+} |
+ |
+void WiFiDisplayVideoEncoder::RequestIDRPicture() { |
+ send_idr_ = true; |
+} |
+ |
} // namespace extensions |