OLD | NEW |
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_P
IPELINE_H_ | 5 #ifndef EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_P
IPELINE_H_ |
6 #define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_P
IPELINE_H_ | 6 #define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDIA_P
IPELINE_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 29 matching lines...) Expand all Loading... |
40 static std::unique_ptr<WiFiDisplayMediaPipeline> Create( | 40 static std::unique_ptr<WiFiDisplayMediaPipeline> Create( |
41 wds::SessionType type, | 41 wds::SessionType type, |
42 const WiFiDisplayVideoEncoder::InitParameters& video_parameters, | 42 const WiFiDisplayVideoEncoder::InitParameters& video_parameters, |
43 const wds::AudioCodec& audio_codec, | 43 const wds::AudioCodec& audio_codec, |
44 const std::string& sink_ip_address, | 44 const std::string& sink_ip_address, |
45 const std::pair<int, int>& sink_rtp_ports, | 45 const std::pair<int, int>& sink_rtp_ports, |
46 const RegisterMediaServiceCallback& service_callback, | 46 const RegisterMediaServiceCallback& service_callback, |
47 const ErrorCallback& error_callback); | 47 const ErrorCallback& error_callback); |
48 ~WiFiDisplayMediaPipeline(); | 48 ~WiFiDisplayMediaPipeline(); |
49 // Note: to be called only once. | 49 // Note: to be called only once. |
50 void Initialize( | 50 void Initialize(const InitCompletionCallback& callback); |
51 const InitCompletionCallback& callback); | |
52 | 51 |
53 void InsertRawVideoFrame( | 52 void InsertRawVideoFrame( |
54 const scoped_refptr<media::VideoFrame>& video_frame, | 53 const scoped_refptr<media::VideoFrame>& video_frame, |
55 base::TimeTicks reference_time); | 54 base::TimeTicks reference_time); |
56 | 55 |
57 void RequestIDRPicture(); | 56 void RequestIDRPicture(); |
58 | 57 |
59 private: | 58 private: |
| 59 using InitStepCompletionCallback = InitCompletionCallback; |
| 60 enum InitializationStep : unsigned; |
| 61 |
60 WiFiDisplayMediaPipeline( | 62 WiFiDisplayMediaPipeline( |
61 wds::SessionType type, | 63 wds::SessionType type, |
62 const WiFiDisplayVideoEncoder::InitParameters& video_parameters, | 64 const WiFiDisplayVideoEncoder::InitParameters& video_parameters, |
63 const wds::AudioCodec& audio_codec, | 65 const wds::AudioCodec& audio_codec, |
64 const std::string& sink_ip_address, | 66 const std::string& sink_ip_address, |
65 const std::pair<int, int>& sink_rtp_ports, | 67 const std::pair<int, int>& sink_rtp_ports, |
66 const RegisterMediaServiceCallback& service_callback, | 68 const RegisterMediaServiceCallback& service_callback, |
67 const ErrorCallback& error_callback); | 69 const ErrorCallback& error_callback); |
68 | 70 |
69 void CreateVideoEncoder(); | |
70 void CreateMediaPacketizer(); | 71 void CreateMediaPacketizer(); |
| 72 void OnInitialize(const InitCompletionCallback& callback, |
| 73 InitializationStep current_step, |
| 74 bool success); |
71 void OnVideoEncoderCreated( | 75 void OnVideoEncoderCreated( |
| 76 const InitStepCompletionCallback& callback, |
72 scoped_refptr<WiFiDisplayVideoEncoder> video_encoder); | 77 scoped_refptr<WiFiDisplayVideoEncoder> video_encoder); |
73 void OnMediaServiceRegistered(); | 78 void OnMediaServiceRegistered(const InitCompletionCallback& callback); |
74 | 79 |
75 void OnEncodedVideoFrame(const WiFiDisplayEncodedFrame& frame); | 80 void OnEncodedVideoFrame(const WiFiDisplayEncodedFrame& frame); |
76 | 81 |
77 bool OnPacketizedMediaDatagramPacket( | 82 bool OnPacketizedMediaDatagramPacket( |
78 WiFiDisplayMediaDatagramPacket media_datagram_packet); | 83 WiFiDisplayMediaDatagramPacket media_datagram_packet); |
79 | 84 |
80 scoped_refptr<WiFiDisplayVideoEncoder> video_encoder_; | 85 scoped_refptr<WiFiDisplayVideoEncoder> video_encoder_; |
81 std::unique_ptr<WiFiDisplayMediaPacketizer> packetizer_; | 86 std::unique_ptr<WiFiDisplayMediaPacketizer> packetizer_; |
82 | 87 |
83 wds::SessionType type_; | 88 wds::SessionType type_; |
84 WiFiDisplayVideoEncoder::InitParameters video_parameters_; | 89 WiFiDisplayVideoEncoder::InitParameters video_parameters_; |
85 wds::AudioCodec audio_codec_; | 90 wds::AudioCodec audio_codec_; |
86 std::string sink_ip_address_; | 91 std::string sink_ip_address_; |
87 std::pair<int, int> sink_rtp_ports_; | 92 std::pair<int, int> sink_rtp_ports_; |
88 | 93 |
89 RegisterMediaServiceCallback service_callback_; | 94 RegisterMediaServiceCallback service_callback_; |
90 ErrorCallback error_callback_; | 95 ErrorCallback error_callback_; |
91 InitCompletionCallback init_completion_callback_; | |
92 WiFiDisplayMediaServicePtr media_service_; | 96 WiFiDisplayMediaServicePtr media_service_; |
93 | 97 |
94 base::WeakPtrFactory<WiFiDisplayMediaPipeline> weak_factory_; | 98 base::WeakPtrFactory<WiFiDisplayMediaPipeline> weak_factory_; |
95 | 99 |
96 DISALLOW_COPY_AND_ASSIGN(WiFiDisplayMediaPipeline); | 100 DISALLOW_COPY_AND_ASSIGN(WiFiDisplayMediaPipeline); |
97 }; | 101 }; |
98 | 102 |
99 } // namespace extensions | 103 } // namespace extensions |
100 | 104 |
101 #endif // EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDI
A_PIPELINE_H_ | 105 #endif // EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_MEDI
A_PIPELINE_H_ |
OLD | NEW |