OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 | 138 |
139 std::vector<VideoCodec> video_codecs_; | 139 std::vector<VideoCodec> video_codecs_; |
140 | 140 |
141 bool initialized_; | 141 bool initialized_; |
142 | 142 |
143 WebRtcVideoDecoderFactory* external_decoder_factory_; | 143 WebRtcVideoDecoderFactory* external_decoder_factory_; |
144 WebRtcVideoEncoderFactory* external_encoder_factory_; | 144 WebRtcVideoEncoderFactory* external_encoder_factory_; |
145 rtc::scoped_ptr<WebRtcVideoEncoderFactory> simulcast_encoder_factory_; | 145 rtc::scoped_ptr<WebRtcVideoEncoderFactory> simulcast_encoder_factory_; |
146 }; | 146 }; |
147 | 147 |
148 class WebRtcVideoChannel2 : public rtc::MessageHandler, | 148 class WebRtcVideoChannel2 : public VideoMediaChannel, |
149 public VideoMediaChannel, | |
150 public webrtc::Transport, | 149 public webrtc::Transport, |
151 public webrtc::LoadObserver { | 150 public webrtc::LoadObserver { |
152 public: | 151 public: |
153 WebRtcVideoChannel2(webrtc::Call* call, | 152 WebRtcVideoChannel2(webrtc::Call* call, |
154 const VideoOptions& options, | 153 const VideoOptions& options, |
155 const std::vector<VideoCodec>& recv_codecs, | 154 const std::vector<VideoCodec>& recv_codecs, |
156 WebRtcVideoEncoderFactory* external_encoder_factory, | 155 WebRtcVideoEncoderFactory* external_encoder_factory, |
157 WebRtcVideoDecoderFactory* external_decoder_factory); | 156 WebRtcVideoDecoderFactory* external_decoder_factory); |
158 ~WebRtcVideoChannel2() override; | 157 ~WebRtcVideoChannel2() override; |
159 | 158 |
160 // VideoMediaChannel implementation | 159 // VideoMediaChannel implementation |
161 bool SetSendParameters(const VideoSendParameters& params) override; | 160 bool SetSendParameters(const VideoSendParameters& params) override; |
162 bool SetRecvParameters(const VideoRecvParameters& params) override; | 161 bool SetRecvParameters(const VideoRecvParameters& params) override; |
163 bool GetSendCodec(VideoCodec* send_codec) override; | 162 bool GetSendCodec(VideoCodec* send_codec) override; |
164 bool SetSendStreamFormat(uint32_t ssrc, const VideoFormat& format) override; | 163 bool SetSendStreamFormat(uint32_t ssrc, const VideoFormat& format) override; |
165 bool SetSend(bool send) override; | 164 bool SetSend(bool send) override; |
166 bool SetVideoSend(uint32_t ssrc, | 165 bool SetVideoSend(uint32_t ssrc, |
167 bool mute, | 166 bool mute, |
168 const VideoOptions* options) override; | 167 const VideoOptions* options) override; |
169 bool AddSendStream(const StreamParams& sp) override; | 168 bool AddSendStream(const StreamParams& sp) override; |
170 bool RemoveSendStream(uint32_t ssrc) override; | 169 bool RemoveSendStream(uint32_t ssrc) override; |
171 bool AddRecvStream(const StreamParams& sp) override; | 170 bool AddRecvStream(const StreamParams& sp) override; |
172 bool AddRecvStream(const StreamParams& sp, bool default_stream); | 171 bool AddRecvStream(const StreamParams& sp, bool default_stream); |
173 bool RemoveRecvStream(uint32_t ssrc) override; | 172 bool RemoveRecvStream(uint32_t ssrc) override; |
174 bool SetRenderer(uint32_t ssrc, VideoRenderer* renderer) override; | 173 bool SetRenderer(uint32_t ssrc, VideoRenderer* renderer) override; |
175 bool GetStats(VideoMediaInfo* info) override; | 174 bool GetStats(VideoMediaInfo* info) override; |
176 bool SetCapturer(uint32_t ssrc, VideoCapturer* capturer) override; | 175 bool SetCapturer(uint32_t ssrc, VideoCapturer* capturer) override; |
177 bool SendIntraFrame() override; | |
178 bool RequestIntraFrame() override; | |
179 | 176 |
180 void OnPacketReceived(rtc::Buffer* packet, | 177 void OnPacketReceived(rtc::Buffer* packet, |
181 const rtc::PacketTime& packet_time) override; | 178 const rtc::PacketTime& packet_time) override; |
182 void OnRtcpReceived(rtc::Buffer* packet, | 179 void OnRtcpReceived(rtc::Buffer* packet, |
183 const rtc::PacketTime& packet_time) override; | 180 const rtc::PacketTime& packet_time) override; |
184 void OnReadyToSend(bool ready) override; | 181 void OnReadyToSend(bool ready) override; |
185 void SetInterface(NetworkInterface* iface) override; | 182 void SetInterface(NetworkInterface* iface) override; |
186 void UpdateAspectRatio(int ratio_w, int ratio_h) override; | |
187 | |
188 void OnMessage(rtc::Message* msg) override; | |
189 | 183 |
190 void OnLoadUpdate(Load load) override; | 184 void OnLoadUpdate(Load load) override; |
191 | 185 |
192 // Implemented for VideoMediaChannelTest. | 186 // Implemented for VideoMediaChannelTest. |
193 bool sending() const { return sending_; } | 187 bool sending() const { return sending_; } |
194 uint32_t GetDefaultSendChannelSsrc() { return default_send_ssrc_; } | 188 uint32_t GetDefaultSendChannelSsrc() { return default_send_ssrc_; } |
195 | 189 |
196 private: | 190 private: |
197 class WebRtcVideoReceiveStream; | 191 class WebRtcVideoReceiveStream; |
198 struct VideoCodecSettings { | 192 struct VideoCodecSettings { |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 VideoOptions options_; | 526 VideoOptions options_; |
533 // TODO(deadbeef): Don't duplicate information between | 527 // TODO(deadbeef): Don't duplicate information between |
534 // send_params/recv_params, rtp_extensions, options, etc. | 528 // send_params/recv_params, rtp_extensions, options, etc. |
535 VideoSendParameters send_params_; | 529 VideoSendParameters send_params_; |
536 VideoRecvParameters recv_params_; | 530 VideoRecvParameters recv_params_; |
537 }; | 531 }; |
538 | 532 |
539 } // namespace cricket | 533 } // namespace cricket |
540 | 534 |
541 #endif // TALK_MEDIA_WEBRTC_WEBRTCVIDEOENGINE2_H_ | 535 #endif // TALK_MEDIA_WEBRTC_WEBRTCVIDEOENGINE2_H_ |
OLD | NEW |