Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(813)

Side by Side Diff: extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h

Issue 1871553003: [chrome.displaySource][WiFi Display] Send media stream to sink (renderer part) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_pipeline
Patch Set: Added result callback to WiFiDisplayMediaService.SetDestinationPoint Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_M ANAGER_H_ 5 #ifndef EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_M ANAGER_H_
6 #define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_M ANAGER_H_ 6 #define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_M ANAGER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "extensions/common/mojo/wifi_display_session_service.mojom.h"
15 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_media _packetizer.h" 16 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_media _packetizer.h"
16 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_video _encoder.h" 17 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_video _encoder.h"
17 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 18 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
18 #include "third_party/wds/src/libwds/public/media_manager.h" 19 #include "third_party/wds/src/libwds/public/media_manager.h"
19 20
21 namespace content {
22 class ServiceRegistry;
23 } // namespace content
24
20 namespace extensions { 25 namespace extensions {
21 class WiFiDisplayVideoSink; 26 class WiFiDisplayVideoSink;
22 class WiFiDisplayMediaPipeline; 27 class WiFiDisplayMediaPipeline;
23 class WiFiDisplaySessionService; 28 class WiFiDisplaySessionService;
24 29
25 class WiFiDisplayMediaManager : public wds::SourceMediaManager { 30 class WiFiDisplayMediaManager : public wds::SourceMediaManager {
26 public: 31 public:
27 using ErrorCallback = base::Callback<void(const std::string&)>; 32 using ErrorCallback = base::Callback<void(const std::string&)>;
28 33
29 WiFiDisplayMediaManager( 34 WiFiDisplayMediaManager(
30 const blink::WebMediaStreamTrack& video_track, 35 const blink::WebMediaStreamTrack& video_track,
31 const blink::WebMediaStreamTrack& audio_track, 36 const blink::WebMediaStreamTrack& audio_track,
37 const std::string& sink_ip_address,
38 content::ServiceRegistry* service_registry,
32 const ErrorCallback& error_callback); 39 const ErrorCallback& error_callback);
33 40
34 ~WiFiDisplayMediaManager() override; 41 ~WiFiDisplayMediaManager() override;
35 42
36 private: 43 private:
37 // wds::SourceMediaManager overrides. 44 // wds::SourceMediaManager overrides.
38 void Play() override; 45 void Play() override;
39 46
40 void Pause() override; 47 void Pause() override;
41 void Teardown() override; 48 void Teardown() override;
(...skipping 11 matching lines...) Expand all
53 const std::vector<wds::AudioCodec>& sink_supported_codecs) override; 60 const std::vector<wds::AudioCodec>& sink_supported_codecs) override;
54 wds::AudioCodec GetOptimalAudioFormat() const override; 61 wds::AudioCodec GetOptimalAudioFormat() const override;
55 62
56 void SendIDRPicture() override; 63 void SendIDRPicture() override;
57 64
58 std::string GetSessionId() const override; 65 std::string GetSessionId() const override;
59 66
60 private: 67 private:
61 void OnPlayerCreated(std::unique_ptr<WiFiDisplayMediaPipeline> player); 68 void OnPlayerCreated(std::unique_ptr<WiFiDisplayMediaPipeline> player);
62 void OnMediaPipelineInitialized(bool success); 69 void OnMediaPipelineInitialized(bool success);
63 70 void RegisterMediaService(
71 const scoped_refptr<base::SingleThreadTaskRunner>& main_runner,
72 WiFiDisplayMediaServiceRequest service,
73 const base::Closure& on_completed);
74 void ConnectToRemoteService(WiFiDisplayMediaServiceRequest request);
64 blink::WebMediaStreamTrack video_track_; 75 blink::WebMediaStreamTrack video_track_;
65 blink::WebMediaStreamTrack audio_track_; 76 blink::WebMediaStreamTrack audio_track_;
66 77
67 std::unique_ptr<WiFiDisplayVideoSink> video_sink_; 78 std::unique_ptr<WiFiDisplayVideoSink> video_sink_;
68 79
80 content::ServiceRegistry* service_registry_;
81 std::string sink_ip_address_;
69 std::pair<int, int> sink_rtp_ports_; 82 std::pair<int, int> sink_rtp_ports_;
70 wds::H264VideoFormat optimal_video_format_; 83 wds::H264VideoFormat optimal_video_format_;
71 wds::AudioCodec optimal_audio_codec_; 84 wds::AudioCodec optimal_audio_codec_;
72 85
73 WiFiDisplayVideoEncoder::InitParameters video_encoder_parameters_; 86 WiFiDisplayVideoEncoder::InitParameters video_encoder_parameters_;
74 WiFiDisplayMediaPipeline* player_; // Owned on IO thread. 87 WiFiDisplayMediaPipeline* player_; // Owned on IO thread.
75 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 88 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
76 ErrorCallback error_callback_; 89 ErrorCallback error_callback_;
77 bool is_playing_; 90 bool is_playing_;
78 bool is_initialized_; 91 bool is_initialized_;
79 mutable std::string session_id_; // Lazily initialized. 92 mutable std::string session_id_; // Lazily initialized.
80 93
81 base::WeakPtrFactory<WiFiDisplayMediaManager> weak_factory_; 94 base::WeakPtrFactory<WiFiDisplayMediaManager> weak_factory_;
82 95
83 DISALLOW_COPY_AND_ASSIGN(WiFiDisplayMediaManager); 96 DISALLOW_COPY_AND_ASSIGN(WiFiDisplayMediaManager);
84 }; 97 };
85 98
86 } // namespace extensions 99 } // namespace extensions
87 100
88 #endif // EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDI A_MANAGER_H_ 101 #endif // EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDI A_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698