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

Side by Side Diff: talk/media/webrtc/webrtcvideoengine2.h

Issue 1327933002: Full impl of NnChannel::SetSendParameters and NnChannel::SetRecvParameters (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 3 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
« no previous file with comments | « talk/media/sctp/sctpdataengine.cc ('k') | talk/media/webrtc/webrtcvideoengine2.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 rtc::scoped_ptr<WebRtcVideoEncoderFactory> simulcast_encoder_factory_; 154 rtc::scoped_ptr<WebRtcVideoEncoderFactory> simulcast_encoder_factory_;
155 }; 155 };
156 156
157 class WebRtcVideoChannel2 : public rtc::MessageHandler, 157 class WebRtcVideoChannel2 : public rtc::MessageHandler,
158 public VideoMediaChannel, 158 public VideoMediaChannel,
159 public webrtc::newapi::Transport, 159 public webrtc::newapi::Transport,
160 public webrtc::LoadObserver { 160 public webrtc::LoadObserver {
161 public: 161 public:
162 WebRtcVideoChannel2(webrtc::Call* call, 162 WebRtcVideoChannel2(webrtc::Call* call,
163 const VideoOptions& options, 163 const VideoOptions& options,
164 const std::vector<VideoCodec>& recv_codecs,
164 WebRtcVideoEncoderFactory* external_encoder_factory, 165 WebRtcVideoEncoderFactory* external_encoder_factory,
165 WebRtcVideoDecoderFactory* external_decoder_factory); 166 WebRtcVideoDecoderFactory* external_decoder_factory);
166 ~WebRtcVideoChannel2() override; 167 ~WebRtcVideoChannel2() override;
167 168
168 // VideoMediaChannel implementation 169 // VideoMediaChannel implementation
169 bool SetSendParameters(const VideoSendParameters& params) override; 170 bool SetSendParameters(const VideoSendParameters& params) override;
170 bool SetRecvParameters(const VideoRecvParameters& params) override; 171 bool SetRecvParameters(const VideoRecvParameters& params) override;
171 bool SetRecvCodecs(const std::vector<VideoCodec>& codecs) override;
172 bool SetSendCodecs(const std::vector<VideoCodec>& codecs) override;
173 bool GetSendCodec(VideoCodec* send_codec) override; 172 bool GetSendCodec(VideoCodec* send_codec) override;
174 bool SetSendStreamFormat(uint32 ssrc, const VideoFormat& format) override; 173 bool SetSendStreamFormat(uint32 ssrc, const VideoFormat& format) override;
175 bool SetRender(bool render) override; 174 bool SetRender(bool render) override;
176 bool SetSend(bool send) override; 175 bool SetSend(bool send) override;
177 bool SetVideoSend(uint32 ssrc, bool mute, 176 bool SetVideoSend(uint32 ssrc, bool mute,
178 const VideoOptions* options) override; 177 const VideoOptions* options) override;
179 bool AddSendStream(const StreamParams& sp) override; 178 bool AddSendStream(const StreamParams& sp) override;
180 bool RemoveSendStream(uint32 ssrc) override; 179 bool RemoveSendStream(uint32 ssrc) override;
181 bool AddRecvStream(const StreamParams& sp) override; 180 bool AddRecvStream(const StreamParams& sp) override;
182 bool AddRecvStream(const StreamParams& sp, bool default_stream); 181 bool AddRecvStream(const StreamParams& sp, bool default_stream);
183 bool RemoveRecvStream(uint32 ssrc) override; 182 bool RemoveRecvStream(uint32 ssrc) override;
184 bool SetRenderer(uint32 ssrc, VideoRenderer* renderer) override; 183 bool SetRenderer(uint32 ssrc, VideoRenderer* renderer) override;
185 bool GetStats(VideoMediaInfo* info) override; 184 bool GetStats(VideoMediaInfo* info) override;
186 bool SetCapturer(uint32 ssrc, VideoCapturer* capturer) override; 185 bool SetCapturer(uint32 ssrc, VideoCapturer* capturer) override;
187 bool SendIntraFrame() override; 186 bool SendIntraFrame() override;
188 bool RequestIntraFrame() override; 187 bool RequestIntraFrame() override;
189 188
190 void OnPacketReceived(rtc::Buffer* packet, 189 void OnPacketReceived(rtc::Buffer* packet,
191 const rtc::PacketTime& packet_time) override; 190 const rtc::PacketTime& packet_time) override;
192 void OnRtcpReceived(rtc::Buffer* packet, 191 void OnRtcpReceived(rtc::Buffer* packet,
193 const rtc::PacketTime& packet_time) override; 192 const rtc::PacketTime& packet_time) override;
194 void OnReadyToSend(bool ready) override; 193 void OnReadyToSend(bool ready) override;
195
196 // Set send/receive RTP header extensions. This must be done before creating
197 // streams as it only has effect on future streams.
198 bool SetRecvRtpHeaderExtensions(
199 const std::vector<RtpHeaderExtension>& extensions) override;
200 bool SetSendRtpHeaderExtensions(
201 const std::vector<RtpHeaderExtension>& extensions) override;
202 bool SetMaxSendBandwidth(int bps) override;
203 bool SetOptions(const VideoOptions& options) override;
204 void SetInterface(NetworkInterface* iface) override; 194 void SetInterface(NetworkInterface* iface) override;
205 void UpdateAspectRatio(int ratio_w, int ratio_h) override; 195 void UpdateAspectRatio(int ratio_w, int ratio_h) override;
206 196
207 void OnMessage(rtc::Message* msg) override; 197 void OnMessage(rtc::Message* msg) override;
208 198
209 void OnLoadUpdate(Load load) override; 199 void OnLoadUpdate(Load load) override;
210 200
211 // Implemented for VideoMediaChannelTest. 201 // Implemented for VideoMediaChannelTest.
212 bool sending() const { return sending_; } 202 bool sending() const { return sending_; }
213 uint32 GetDefaultSendChannelSsrc() { return default_send_ssrc_; } 203 uint32 GetDefaultSendChannelSsrc() { return default_send_ssrc_; }
214 bool GetRenderer(uint32 ssrc, VideoRenderer** renderer); 204 bool GetRenderer(uint32 ssrc, VideoRenderer** renderer);
215 205
216 private: 206 private:
217 bool MuteStream(uint32 ssrc, bool mute); 207 bool MuteStream(uint32 ssrc, bool mute);
218 class WebRtcVideoReceiveStream; 208 class WebRtcVideoReceiveStream;
209
210 bool SetSendCodecs(const std::vector<VideoCodec>& codecs);
211 bool SetSendRtpHeaderExtensions(
212 const std::vector<RtpHeaderExtension>& extensions);
213 bool SetMaxSendBandwidth(int bps);
214 bool SetOptions(const VideoOptions& options);
215 bool SetRecvCodecs(const std::vector<VideoCodec>& codecs);
216 bool SetRecvRtpHeaderExtensions(
217 const std::vector<RtpHeaderExtension>& extensions);
218
219 void ConfigureReceiverRtp(webrtc::VideoReceiveStream::Config* config, 219 void ConfigureReceiverRtp(webrtc::VideoReceiveStream::Config* config,
220 const StreamParams& sp) const; 220 const StreamParams& sp) const;
221 bool CodecIsExternallySupported(const std::string& name) const; 221 bool CodecIsExternallySupported(const std::string& name) const;
222 bool ValidateSendSsrcAvailability(const StreamParams& sp) const 222 bool ValidateSendSsrcAvailability(const StreamParams& sp) const
223 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); 223 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_);
224 bool ValidateReceiveSsrcAvailability(const StreamParams& sp) const 224 bool ValidateReceiveSsrcAvailability(const StreamParams& sp) const
225 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); 225 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_);
226 void DeleteReceiveStream(WebRtcVideoReceiveStream* stream) 226 void DeleteReceiveStream(WebRtcVideoReceiveStream* stream)
227 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); 227 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_);
228 228
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 WebRtcVideoDecoderFactory* const external_decoder_factory_; 518 WebRtcVideoDecoderFactory* const external_decoder_factory_;
519 std::vector<VideoCodecSettings> recv_codecs_; 519 std::vector<VideoCodecSettings> recv_codecs_;
520 std::vector<webrtc::RtpExtension> recv_rtp_extensions_; 520 std::vector<webrtc::RtpExtension> recv_rtp_extensions_;
521 webrtc::Call::Config::BitrateConfig bitrate_config_; 521 webrtc::Call::Config::BitrateConfig bitrate_config_;
522 VideoOptions options_; 522 VideoOptions options_;
523 }; 523 };
524 524
525 } // namespace cricket 525 } // namespace cricket
526 526
527 #endif // TALK_MEDIA_WEBRTC_WEBRTCVIDEOENGINE2_H_ 527 #endif // TALK_MEDIA_WEBRTC_WEBRTCVIDEOENGINE2_H_
OLDNEW
« no previous file with comments | « talk/media/sctp/sctpdataengine.cc ('k') | talk/media/webrtc/webrtcvideoengine2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698