Index: extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h |
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h b/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h |
index 277771cb2bc6aa148ea1f4518aff5a33382b2383..9ff1a1dd83c53a0e92abf1ba4debbc50c3e34d28 100644 |
--- a/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h |
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h |
@@ -2,19 +2,25 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef EXTENSIONS_BROWSER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_MANAGER_H_ |
-#define EXTENSIONS_BROWSER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_MANAGER_H_ |
+#ifndef EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_MANAGER_H_ |
+#define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_MANAGER_H_ |
+#include <memory> |
#include <string> |
#include <utility> |
#include <vector> |
#include "base/callback.h" |
-#include "base/macros.h" |
-#include "third_party/WebKit/public/web/WebDOMMediaStreamTrack.h" |
+#include "base/memory/weak_ptr.h" |
+#include "extensions/renderer/api/display_source/wifi_display/wifi_display_media_packetizer.h" |
+#include "extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h" |
+#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
#include "third_party/wds/src/libwds/public/media_manager.h" |
namespace extensions { |
+class WiFiDisplayVideoSink; |
+class WiFiDisplayMediaPipeline; |
+class WiFiDisplaySessionService; |
class WiFiDisplayMediaManager : public wds::SourceMediaManager { |
public: |
@@ -52,18 +58,31 @@ class WiFiDisplayMediaManager : public wds::SourceMediaManager { |
std::string GetSessionId() const override; |
private: |
+ void OnPlayerCreated(std::unique_ptr<WiFiDisplayMediaPipeline> player); |
+ void OnMediaPipelineInitialized(bool success); |
+ |
blink::WebMediaStreamTrack video_track_; |
blink::WebMediaStreamTrack audio_track_; |
+ std::unique_ptr<WiFiDisplayVideoSink> video_sink_; |
+ |
std::pair<int, int> sink_rtp_ports_; |
wds::H264VideoFormat optimal_video_format_; |
wds::AudioCodec optimal_audio_codec_; |
+ WiFiDisplayVideoEncoder::InitParameters video_encoder_parameters_; |
+ WiFiDisplayMediaPipeline* player_; // Owned on IO thread. |
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
ErrorCallback error_callback_; |
+ bool is_playing_; |
+ bool is_initialized_; |
+ mutable std::string session_id_; // Lazily initialized. |
+ |
+ base::WeakPtrFactory<WiFiDisplayMediaManager> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(WiFiDisplayMediaManager); |
}; |
} // namespace extensions |
-#endif // EXTENSIONS_BROWSER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_MANAGER_H_ |
+#endif // EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_MANAGER_H_ |