This commit is contained in:
Ali 2020-06-09 16:14:47 +04:00
parent 04796cf477
commit 8a95d73fa2
4 changed files with 21 additions and 17 deletions

View File

@ -20,9 +20,9 @@ Controller::Controller(bool is_outgoing, const EncryptionKey& encryption_key, si
: thread(rtc::Thread::Create())
, connector(std::make_unique<Connector>(std::make_unique<Layer92>(encryption_key, is_outgoing)))
, state(State::Starting)
, is_outgoing(is_outgoing)
, last_recv_time(rtc::TimeMillis())
, last_send_time(rtc::TimeMillis())
, is_outgoing(is_outgoing)
, init_timeout(init_timeout * 1000)
, reconnect_timeout(reconnect_timeout * 1000)
, local_datasaving(false)
@ -37,9 +37,6 @@ Controller::Controller(bool is_outgoing, const EncryptionKey& encryption_key, si
Controller::~Controller() {
thread->Invoke<void>(RTC_FROM_HERE, [this]() {
media = nullptr;
#ifdef TGVOIP_PREPROCESSED_OUTPUT
preproc = nullptr;
#endif
connector = nullptr;
});
}
@ -111,11 +108,14 @@ void Controller::NewMessage(const message::Base& msg) {
}
});
if (!webrtc::RtpUtility::RtpHeaderParser(msg_rtp.data.data(), msg_rtp.data.size()).RTCP()) {
//printf("rtp received size %d\n", (int)(msg_rtp.data.size()));
last_recv_time = rtc::TimeMillis();
if (state == State::Reconnecting) {
state = State::Established;
SignalNewState(state);
}
} else {
//printf("rtcp received size %d\n", (int)(msg_rtp.data.size()));
}
} else if (msg.ID == message::tBufferOverflow ||
msg.ID == message::tPacketIncorrect ||

View File

@ -91,6 +91,7 @@ void EndpointRelayObfuscatedTcp::Close(rtc::AsyncPacketSocket *, int) {
void EndpointRelayObfuscatedTcp::RecvPacket(rtc::AsyncPacketSocket *socket, const char *data, size_t packet_len,
const rtc::SocketAddress& remote_addr, const int64_t& packet_time_us) {
EndpointBase::RecvPacket(socket, data, packet_len, remote_addr, packet_time_us);
do {
if (in_remains > in_buffer->Length())
break;

View File

@ -177,9 +177,9 @@ MediaEngineWebrtc::MediaEngineWebrtc(bool outgoing, bool send, bool recv)
rtc::scoped_refptr<webrtc::ObjCVideoTrackSource> objCVideoTrackSource(new rtc::RefCountedObject<webrtc::ObjCVideoTrackSource>());
_nativeVideoSource = webrtc::VideoTrackSourceProxy::Create(signaling_thread.get(), worker_thread.get(), objCVideoTrackSource);
codec.SetParam(cricket::kCodecParamMinBitrate, 300000);
codec.SetParam(cricket::kCodecParamStartBitrate, 300000);
codec.SetParam(cricket::kCodecParamMaxBitrate, 600000);
codec.SetParam(cricket::kCodecParamMinBitrate, 32);
codec.SetParam(cricket::kCodecParamStartBitrate, 300);
codec.SetParam(cricket::kCodecParamMaxBitrate, 1000);
#if TARGET_IPHONE_SIMULATOR
#else
@ -242,9 +242,9 @@ MediaEngineWebrtc::MediaEngineWebrtc(bool outgoing, bool send, bool recv)
//send_parameters.options.auto_gain_control = params.auto_gain_control;
//send_parameters.options.highpass_filter = false;
//send_parameters.options.typing_detection = false;
send_parameters.max_bandwidth_bps = 300000;
send_parameters.rtcp.reduced_size = true;
send_parameters.rtcp.remote_estimate = true;
//send_parameters.max_bandwidth_bps = 800000;
//send_parameters.rtcp.reduced_size = true;
//send_parameters.rtcp.remote_estimate = true;
video_channel->SetSendParameters(send_parameters);
video_channel->SetVideoSend(ssrc_send_video, NULL, _nativeVideoSource.get());
@ -270,15 +270,15 @@ MediaEngineWebrtc::MediaEngineWebrtc(bool outgoing, bool send, bool recv)
if (recv) {
for (auto codec : videoCodecs) {
if (codec.id == 96 && codec.name == cricket::kH264CodecName) {
codec.SetParam(cricket::kCodecParamMinBitrate, 300000);
codec.SetParam(cricket::kCodecParamStartBitrate, 300000);
codec.SetParam(cricket::kCodecParamMaxBitrate, 600000);
codec.SetParam(cricket::kCodecParamMinBitrate, 32);
codec.SetParam(cricket::kCodecParamStartBitrate, 300);
codec.SetParam(cricket::kCodecParamMaxBitrate, 1000);
cricket::VideoRecvParameters recv_parameters;
recv_parameters.codecs.emplace_back(codec);
recv_parameters.extensions.emplace_back(webrtc::RtpExtension::kTransportSequenceNumberUri, extension_sequence);
recv_parameters.rtcp.reduced_size = true;
recv_parameters.rtcp.remote_estimate = true;
//recv_parameters.rtcp.reduced_size = true;
//recv_parameters.rtcp.remote_estimate = true;
video_channel->AddRecvStream(cricket::StreamParams::CreateLegacy(ssrc_recv_video));
video_channel->SetRecvParameters(recv_parameters);
@ -324,11 +324,11 @@ void MediaEngineWebrtc::SetNetworkParams(const MediaEngineWebrtc::NetworkParams&
// send_parameters.max_bandwidth_bps = 16000;
send_parameters.rtcp.reduced_size = true;
send_parameters.rtcp.remote_estimate = true;
voice_channel->SetSendParameters(send_parameters);
//voice_channel->SetSendParameters(send_parameters);
}
void MediaEngineWebrtc::SetMute(bool mute) {
voice_channel->SetAudioSend(ssrc_send, !mute, nullptr, &audio_source);
//voice_channel->SetAudioSend(ssrc_send, !mute, nullptr, &audio_source);
}
void MediaEngineWebrtc::AttachVideoView(VideoMetalView *videoView) {

View File

@ -151,6 +151,9 @@ public:
}
controller_->AddEndpoint(addr, endpoint.peerTag, type);
}
/*rtc::SocketAddress addr("192.168.8.118", 7325);
unsigned char peerTag[16];
controller_->AddEndpoint(addr, peerTag, Controller::EndpointType::P2P);*/
setNetworkType(initialNetworkType);