Index: extensions/renderer/api/display_source/wifi_display/wifi_display_media_encoder.cc |
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_media_encoder.cc b/extensions/renderer/api/display_source/wifi_display/wifi_display_media_encoder.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4245f0457dd5d875321de127e1df3ef593068fad |
--- /dev/null |
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_media_encoder.cc |
@@ -0,0 +1,43 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "extensions/renderer/api/display_source/wifi_display/wifi_display_media_encoder.h" |
+ |
+#include "base/logging.h" |
+#include "media/base/bind_to_current_loop.h" |
+ |
+namespace extensions { |
+ |
+WiFiDisplayEncodedUnit::WiFiDisplayEncodedUnit( |
+ std::string data, |
+ base::TimeTicks reference_timestamp, |
+ bool key_frame) |
+ : data(std::move(data)), pts(reference_timestamp), key_frame(key_frame) {} |
+ |
+WiFiDisplayEncodedUnit::WiFiDisplayEncodedUnit( |
+ std::string data, |
+ base::TimeTicks reference_timestamp, |
+ base::TimeTicks encode_timestamp, |
+ bool key_frame) |
+ : WiFiDisplayEncodedUnit(std::move(data), reference_timestamp, key_frame) { |
+ if (encode_timestamp >= reference_timestamp) { |
+ dts = reference_timestamp - (encode_timestamp - reference_timestamp); |
+ DCHECK_LE(dts, pts); |
+ } |
+} |
+ |
+WiFiDisplayMediaEncoder::WiFiDisplayMediaEncoder() = default; |
+WiFiDisplayMediaEncoder::~WiFiDisplayMediaEncoder() = default; |
+ |
+void WiFiDisplayMediaEncoder::SetCallbacks( |
+ const EncodedUnitCallback& encoded_callback, |
+ const base::Closure& error_callback) { |
+ // This is not thread-safe if encoding has been started thus allow |
+ // this to be called only once. |
+ DCHECK(encoded_callback_.is_null() && error_callback_.is_null()); |
+ encoded_callback_ = media::BindToCurrentLoop(encoded_callback); |
+ error_callback_ = media::BindToCurrentLoop(error_callback); |
+} |
+ |
+} // namespace extensions |