Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2015 Google Inc. | 3 * Copyright 2015 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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 137 | 137 |
| 138 VideoRtpSender::VideoRtpSender(VideoTrackInterface* track, | 138 VideoRtpSender::VideoRtpSender(VideoTrackInterface* track, |
| 139 uint32_t ssrc, | 139 uint32_t ssrc, |
| 140 VideoProviderInterface* provider) | 140 VideoProviderInterface* provider) |
| 141 : id_(track->id()), | 141 : id_(track->id()), |
| 142 track_(track), | 142 track_(track), |
| 143 ssrc_(ssrc), | 143 ssrc_(ssrc), |
| 144 provider_(provider), | 144 provider_(provider), |
| 145 cached_track_enabled_(track->enabled()) { | 145 cached_track_enabled_(track->enabled()) { |
| 146 track_->RegisterObserver(this); | 146 track_->RegisterObserver(this); |
| 147 VideoSourceInterface* source = track_->GetSource(); | |
| 148 if (source) { | |
| 149 provider_->SetCaptureDevice(ssrc_, source->GetVideoCapturer()); | |
| 150 } | |
| 151 Reconfigure(); | 147 Reconfigure(); |
| 152 } | 148 } |
| 153 | 149 |
| 154 VideoRtpSender::~VideoRtpSender() { | 150 VideoRtpSender::~VideoRtpSender() { |
| 155 track_->UnregisterObserver(this); | 151 track_->UnregisterObserver(this); |
| 156 Stop(); | 152 Stop(); |
| 157 } | 153 } |
| 158 | 154 |
| 159 void VideoRtpSender::OnChanged() { | 155 void VideoRtpSender::OnChanged() { |
| 160 if (cached_track_enabled_ != track_->enabled()) { | 156 if (cached_track_enabled_ != track_->enabled()) { |
| 161 cached_track_enabled_ = track_->enabled(); | 157 cached_track_enabled_ = track_->enabled(); |
| 162 Reconfigure(); | 158 SetVideoSend(); |
| 163 } | 159 } |
| 164 } | 160 } |
| 165 | 161 |
| 166 bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) { | 162 bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) { |
| 167 if (track->kind() != "video") { | 163 if (track->kind() != "video") { |
| 168 LOG(LS_ERROR) << "SetTrack called on video RtpSender with " << track->kind() | 164 LOG(LS_ERROR) << "SetTrack called on video RtpSender with " << track->kind() |
| 169 << " track."; | 165 << " track."; |
| 170 return false; | 166 return false; |
| 171 } | 167 } |
| 172 VideoTrackInterface* video_track = static_cast<VideoTrackInterface*>(track); | 168 VideoTrackInterface* video_track = static_cast<VideoTrackInterface*>(track); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 189 } | 185 } |
| 190 provider_->SetCaptureDevice(ssrc_, nullptr); | 186 provider_->SetCaptureDevice(ssrc_, nullptr); |
| 191 provider_->SetVideoSend(ssrc_, false, nullptr); | 187 provider_->SetVideoSend(ssrc_, false, nullptr); |
| 192 provider_ = nullptr; | 188 provider_ = nullptr; |
| 193 } | 189 } |
| 194 | 190 |
| 195 void VideoRtpSender::Reconfigure() { | 191 void VideoRtpSender::Reconfigure() { |
| 196 if (!provider_) { | 192 if (!provider_) { |
| 197 return; | 193 return; |
| 198 } | 194 } |
| 195 VideoSourceInterface* source = track_->GetSource(); | |
| 196 if (source) { | |
| 197 provider_->SetCaptureDevice(ssrc_, source->GetVideoCapturer()); | |
|
pthatcher1
2015/11/11 00:45:02
Is there any downside to calling this all the time
Taylor Brandstetter
2015/11/11 01:33:30
If you trace your way down to WebRtcVideoChannel2:
| |
| 198 } | |
| 199 SetVideoSend(); | |
| 200 } | |
| 201 | |
| 202 void VideoRtpSender::SetVideoSend() { | |
|
pthatcher1
2015/11/11 00:45:02
Actually, if this is separate, calling something l
Taylor Brandstetter
2015/11/11 01:33:30
Done.
| |
| 203 if (!provider_) { | |
| 204 return; | |
| 205 } | |
| 206 VideoSourceInterface* source = track_->GetSource(); | |
| 199 const cricket::VideoOptions* options = nullptr; | 207 const cricket::VideoOptions* options = nullptr; |
| 200 VideoSourceInterface* source = track_->GetSource(); | |
| 201 if (track_->enabled() && source) { | 208 if (track_->enabled() && source) { |
| 202 options = source->options(); | 209 options = source->options(); |
| 203 } | 210 } |
| 204 provider_->SetVideoSend(ssrc_, track_->enabled(), options); | 211 provider_->SetVideoSend(ssrc_, track_->enabled(), options); |
| 205 } | 212 } |
| 206 | 213 |
| 207 } // namespace webrtc | 214 } // namespace webrtc |
| OLD | NEW |