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 cf137dffac2915402165dbea2325c3bc4f80d2fa..9d88e5739863202be55864b46f7bebc09b949f88 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/logging.h" |
#include "media/base/bind_to_current_loop.h" |
namespace extensions { |
@@ -16,7 +17,12 @@ WiFiDisplayVideoEncoder::InitParameters::InitParameters(const InitParameters&) = |
default; |
WiFiDisplayVideoEncoder::InitParameters::~InitParameters() = default; |
-WiFiDisplayVideoEncoder::WiFiDisplayVideoEncoder() = default; |
+WiFiDisplayVideoEncoder::WiFiDisplayVideoEncoder( |
+ const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner) |
+ : media_task_runner_(media_task_runner), send_idr_(false) { |
+ DCHECK(media_task_runner_); |
+} |
+ |
WiFiDisplayVideoEncoder::~WiFiDisplayVideoEncoder() = default; |
void WiFiDisplayVideoEncoder::SetCallbacks( |
@@ -33,4 +39,14 @@ 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; |
+} |
+ |
} // namespace extensions |