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()) : thread(rtc::Thread::Create())
, connector(std::make_unique<Connector>(std::make_unique<Layer92>(encryption_key, is_outgoing))) , connector(std::make_unique<Connector>(std::make_unique<Layer92>(encryption_key, is_outgoing)))
, state(State::Starting) , state(State::Starting)
, is_outgoing(is_outgoing)
, last_recv_time(rtc::TimeMillis()) , last_recv_time(rtc::TimeMillis())
, last_send_time(rtc::TimeMillis()) , last_send_time(rtc::TimeMillis())
, is_outgoing(is_outgoing)
, init_timeout(init_timeout * 1000) , init_timeout(init_timeout * 1000)
, reconnect_timeout(reconnect_timeout * 1000) , reconnect_timeout(reconnect_timeout * 1000)
, local_datasaving(false) , local_datasaving(false)
@ -37,9 +37,6 @@ Controller::Controller(bool is_outgoing, const EncryptionKey& encryption_key, si
Controller::~Controller() { Controller::~Controller() {
thread->Invoke<void>(RTC_FROM_HERE, [this]() { thread->Invoke<void>(RTC_FROM_HERE, [this]() {
media = nullptr; media = nullptr;
#ifdef TGVOIP_PREPROCESSED_OUTPUT
preproc = nullptr;
#endif
connector = nullptr; 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()) { 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(); last_recv_time = rtc::TimeMillis();
if (state == State::Reconnecting) { if (state == State::Reconnecting) {
state = State::Established; state = State::Established;
SignalNewState(state); SignalNewState(state);
} }
} else {
//printf("rtcp received size %d\n", (int)(msg_rtp.data.size()));
} }
} else if (msg.ID == message::tBufferOverflow || } else if (msg.ID == message::tBufferOverflow ||
msg.ID == message::tPacketIncorrect || 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, void EndpointRelayObfuscatedTcp::RecvPacket(rtc::AsyncPacketSocket *socket, const char *data, size_t packet_len,
const rtc::SocketAddress& remote_addr, const int64_t& packet_time_us) { const rtc::SocketAddress& remote_addr, const int64_t& packet_time_us) {
EndpointBase::RecvPacket(socket, data, packet_len, remote_addr, packet_time_us); EndpointBase::RecvPacket(socket, data, packet_len, remote_addr, packet_time_us);
do { do {
if (in_remains > in_buffer->Length()) if (in_remains > in_buffer->Length())
break; 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>()); rtc::scoped_refptr<webrtc::ObjCVideoTrackSource> objCVideoTrackSource(new rtc::RefCountedObject<webrtc::ObjCVideoTrackSource>());
_nativeVideoSource = webrtc::VideoTrackSourceProxy::Create(signaling_thread.get(), worker_thread.get(), objCVideoTrackSource); _nativeVideoSource = webrtc::VideoTrackSourceProxy::Create(signaling_thread.get(), worker_thread.get(), objCVideoTrackSource);
codec.SetParam(cricket::kCodecParamMinBitrate, 300000); codec.SetParam(cricket::kCodecParamMinBitrate, 32);
codec.SetParam(cricket::kCodecParamStartBitrate, 300000); codec.SetParam(cricket::kCodecParamStartBitrate, 300);
codec.SetParam(cricket::kCodecParamMaxBitrate, 600000); codec.SetParam(cricket::kCodecParamMaxBitrate, 1000);
#if TARGET_IPHONE_SIMULATOR #if TARGET_IPHONE_SIMULATOR
#else #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.auto_gain_control = params.auto_gain_control;
//send_parameters.options.highpass_filter = false; //send_parameters.options.highpass_filter = false;
//send_parameters.options.typing_detection = false; //send_parameters.options.typing_detection = false;
send_parameters.max_bandwidth_bps = 300000; //send_parameters.max_bandwidth_bps = 800000;
send_parameters.rtcp.reduced_size = true; //send_parameters.rtcp.reduced_size = true;
send_parameters.rtcp.remote_estimate = true; //send_parameters.rtcp.remote_estimate = true;
video_channel->SetSendParameters(send_parameters); video_channel->SetSendParameters(send_parameters);
video_channel->SetVideoSend(ssrc_send_video, NULL, _nativeVideoSource.get()); video_channel->SetVideoSend(ssrc_send_video, NULL, _nativeVideoSource.get());
@ -270,15 +270,15 @@ MediaEngineWebrtc::MediaEngineWebrtc(bool outgoing, bool send, bool recv)
if (recv) { if (recv) {
for (auto codec : videoCodecs) { for (auto codec : videoCodecs) {
if (codec.id == 96 && codec.name == cricket::kH264CodecName) { if (codec.id == 96 && codec.name == cricket::kH264CodecName) {
codec.SetParam(cricket::kCodecParamMinBitrate, 300000); codec.SetParam(cricket::kCodecParamMinBitrate, 32);
codec.SetParam(cricket::kCodecParamStartBitrate, 300000); codec.SetParam(cricket::kCodecParamStartBitrate, 300);
codec.SetParam(cricket::kCodecParamMaxBitrate, 600000); codec.SetParam(cricket::kCodecParamMaxBitrate, 1000);
cricket::VideoRecvParameters recv_parameters; cricket::VideoRecvParameters recv_parameters;
recv_parameters.codecs.emplace_back(codec); recv_parameters.codecs.emplace_back(codec);
recv_parameters.extensions.emplace_back(webrtc::RtpExtension::kTransportSequenceNumberUri, extension_sequence); recv_parameters.extensions.emplace_back(webrtc::RtpExtension::kTransportSequenceNumberUri, extension_sequence);
recv_parameters.rtcp.reduced_size = true; //recv_parameters.rtcp.reduced_size = true;
recv_parameters.rtcp.remote_estimate = true; //recv_parameters.rtcp.remote_estimate = true;
video_channel->AddRecvStream(cricket::StreamParams::CreateLegacy(ssrc_recv_video)); video_channel->AddRecvStream(cricket::StreamParams::CreateLegacy(ssrc_recv_video));
video_channel->SetRecvParameters(recv_parameters); video_channel->SetRecvParameters(recv_parameters);
@ -324,11 +324,11 @@ void MediaEngineWebrtc::SetNetworkParams(const MediaEngineWebrtc::NetworkParams&
// send_parameters.max_bandwidth_bps = 16000; // send_parameters.max_bandwidth_bps = 16000;
send_parameters.rtcp.reduced_size = true; send_parameters.rtcp.reduced_size = true;
send_parameters.rtcp.remote_estimate = true; send_parameters.rtcp.remote_estimate = true;
voice_channel->SetSendParameters(send_parameters); //voice_channel->SetSendParameters(send_parameters);
} }
void MediaEngineWebrtc::SetMute(bool mute) { 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) { void MediaEngineWebrtc::AttachVideoView(VideoMetalView *videoView) {

View File

@ -151,6 +151,9 @@ public:
} }
controller_->AddEndpoint(addr, endpoint.peerTag, type); 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); setNetworkType(initialNetworkType);