(Auto)update libjingle 63503990-> 63547048
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5751 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -1843,6 +1843,10 @@ bool WebRtcVideoMediaChannel::AddSendStream(const StreamParams& sp) {
|
||||
|
||||
send_channel->set_stream_params(sp);
|
||||
|
||||
if (IsSimulcastStream(sp)) {
|
||||
DisableAllExternalEncoders(send_channel, channel_id);
|
||||
}
|
||||
|
||||
// Reset send codec after stream parameters changed.
|
||||
if (send_codec_) {
|
||||
if (!SetSendCodec(send_channel, *send_codec_, send_min_bitrate_,
|
||||
@ -3908,6 +3912,24 @@ void WebRtcVideoMediaChannel::MaybeDisconnectCapturer(VideoCapturer* capturer) {
|
||||
}
|
||||
}
|
||||
|
||||
void WebRtcVideoMediaChannel::DisableAllExternalEncoders(
|
||||
WebRtcVideoChannelSendInfo* send_channel,
|
||||
int channel_id) {
|
||||
const WebRtcVideoChannelSendInfo::EncoderMap& encoder_map =
|
||||
send_channel->registered_encoders();
|
||||
for (WebRtcVideoChannelSendInfo::EncoderMap::const_iterator it =
|
||||
encoder_map.begin(); it != encoder_map.end(); ++it) {
|
||||
if (engine()->vie()->ext_codec()->DeRegisterExternalSendCodec(
|
||||
channel_id, it->first) != 0) {
|
||||
LOG_RTCERR1(DeregisterEncoderObserver, channel_id);
|
||||
}
|
||||
engine()->DestroyExternalEncoder(it->second);
|
||||
}
|
||||
send_channel->ClearRegisteredEncoders();
|
||||
|
||||
engine()->SetExternalEncoderFactory(NULL);
|
||||
}
|
||||
|
||||
} // namespace cricket
|
||||
|
||||
#endif // HAVE_WEBRTC_VIDEO
|
||||
|
@ -414,6 +414,11 @@ class WebRtcVideoMediaChannel : public talk_base::MessageHandler,
|
||||
// to one send channel, i.e. the last send channel.
|
||||
void MaybeDisconnectCapturer(VideoCapturer* capturer);
|
||||
|
||||
// Deregister and free all the external encoders previously register to
|
||||
// |send_channel|. Also disable the external encoder factory.
|
||||
void DisableAllExternalEncoders(WebRtcVideoChannelSendInfo* send_channel,
|
||||
int channel_id);
|
||||
|
||||
// Global state.
|
||||
WebRtcVideoEngine* engine_;
|
||||
VoiceMediaChannel* voice_channel_;
|
||||
|
@ -1585,6 +1585,7 @@ TEST_F(WebRtcVideoEngineTestFake, RegisterEncoderIfFactoryIsGiven) {
|
||||
EXPECT_TRUE(channel_->RemoveSendStream(kSsrc));
|
||||
}
|
||||
|
||||
|
||||
TEST_F(WebRtcVideoEngineTestFake, DontRegisterEncoderMultipleTimes) {
|
||||
encoder_factory_.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
|
||||
engine_.SetExternalEncoderFactory(&encoder_factory_);
|
||||
|
Reference in New Issue
Block a user