Coder Social home page Coder Social logo

apprtcdemo's Introduction

AppRTCDemo - A WebRTC for iOS Client Demo


##About AppRTCDemo# This is a WebRTC4iOS client demo. This demo show how 2 ios clients have a real-time audio&video communication. If you have the STUN/TURN server, they can communicate in different LAN.


##Requirements#

  • Xcode 5 or higher
  • iOS 6.0 or higher
  • ARC

##About WebRTC# WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple JavaScript APIs. The WebRTC components have been optimized to best serve this purpose.


##About WebRTC Native APIs and libjingle# To implement real time communication, web developer can use WebRTC API, but we, as native developer, can use what? Thsese are: WebRTC Native APIs and libjingle, they can enable Native APP to implement RTC(Real-time communication) function.

In fact, the official has provided us some Native Example Applications. Here is the official iOS example, but it's not good. This is a better iOS example based the official one.


##About Signaling Service# Signaling protocols and mechanisms are not defined by WebRTC standards, so you need to build it by yourself.

The demo uses XMPP to build the signaling service.It implements that with XMPPFramework.

PS: The official iOS example uses the Google App Engine Channel API to build the service.


##The Basic P2P Communication Process#

Caller Callee

1. build the signaling service and listen to the signaling message

1. build the signaling service and listen to the signaling message
... to bulid RTC connection...
2. create peerConnection

3.1 create and send offer sdp(sessionDescription);

if got new ICE Candidate, then send it to Callee

2. listen to the signaling message. Cache the remote offer sdp and ICE Candidate

3.2 create peerConnection and deal with the offer sdp and ICE Candidate
4.2 listen to the signaling message. Deal with the remote answer sdp and ICE Candidate

4.1 create and send answer sdp(sessionDescription);

if got new ICE Candidate, then send it to Caller

..successfully building RTC connection, then can start audio and video communication...
5.1 send BYE signaling message and close peerConnection 5.2 when get the BYE signaling message, then close peerConnection


中文版

Caller Callee
1. 建立信令通讯(XMPPWorker)以及监听信令
1. 建立信令通讯(XMPPWorker)以及监听信令
... 建立RTC 链接...
2. 创建 peerConnection

3.1 创建并发送 offer

若发现新的ICE Candidate,则发送给Callee

2. 监听信令。把收到的 offer 以及 ICE Candidate缓存起来

3.2 创建 peerConnection,处理缓存的 offer 以及ICE Candidate
4.2 监听信令。直接处理收到的 answer 以及 ICE Candidate

4.1 创建并发送 answer

若发现新的ICE Candidate,则发送给Caller

..RTC 链接建立完毕,开始进行音视频通讯...
5.1 发送 BYE 信令,关闭 peerConnection 5.2 收到 BYE 信令后,关闭 peerConnection



##100% Attention#

  • In this demo, I custom-make a signaling type XMPPMessage to transfer the signallings. Before run this demo, Please Check whether your jabber server can support this custom XMPPMessage. If your jabber server cann't support it, you should modify the custom XMPPMessage's type that your jabber server can support in the XMPPMessage+Signaling file, for example in the file, change TYPE_SIGNALING macro value signaling to chat.

  • 在该Demo中,我使用的是自定义的、类型为 signaling 的 XMPPMessage 来传递信令。**运行该Demo前,请务必检测你的jabber服务器是否支持这种自定义类型的 XMPPMessage 。**如果不支持,请把该类型的 XMPPMessage 修改为你的jabber服务器支持的类型,如 chat 类型(在XMPPMessage+Signaling文件中修改TYPE_SIGNALING的宏定义值即可)。


##Change Log#

1.0 - 2014/03/11

  • Initial release. Now 2 iOS client can have a real-time audio&video communication repeatedly, and if you have the STUN/TURN server, they can communicate each other in different LAN.

apprtcdemo's People

Contributors

yk-unit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apprtcdemo's Issues

linker command failed with exit code 1 (use -v to see invocation) xcode 9

d: '/Users/mac/Downloads/AppRTCDemo-master 2/RTCWorker/RTCFramework/libs/libjingle_peerconnection_objc.a(libjingle_peerconnection_objc.RTCICECandidate.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I enabled bitcode =YES getting same error

Time out after a few second

I run the demo with my own server.
at first it works well, but after a few second. there comes(something like) a very high delay.

Here is the log:
Jingle:Conn[audio:8K3dFDtO:1:0:local:udp:192.168.121.119:65072->:1:0:local:udp:192.168.121.107:64946|CR-I|-]: Timed out after 32046 ms without a response, rtt=3000

can you help me or just tell me some possible reasons. thank u ?

webrtc sdp connection failed

device: iPhone XR
iOS Version: [iOS 12.3]
Xcode Version: [Xcode 10.3]

Two iPhone Xr Calls,If both phones use two phone cards, using Mobile Networks ,webrtc will not be able to connect.

Can't see video or audio

I am using my own turn server and openfire XMPP which is working well with Smack on Android.

I tried to test this app(YK-Unit/AppRTCDemo) on iOS, I am able to connect to my openfire xmpp server, I am also getting alert message saying "to have webrtc with sample_jid@domain" and the request is also received on another phone but I am not getting any video or audio.

There are no error in log or build; can help me why I am not getting any video or audio.

I am using xcode 6, iOS 8 with latest mac OSX

Contact Details for Author

Hi @YK-Unit any chance you can add some contact details to your profile? I would really like to get in touch for some WebRTC job opportunities.

how to edit sdp content?

I'm really newbie for ios and webrtc.
how can I modify SDP content to implement for example, fingerprint?

How can I change a process flow?

I want to make this app as a caller to send ICE Candidate to Callee after answer sdp from callee has been accepted.
How can I do that?

Did this demo get iOS 7 support?

After two devices connetced xmpp server, clients show that both jid available, and I selected the row, then other side client to accept RTC request with the issue following: both sides client show nothing but only lightGray color background view when two iOS 7 devices(iPhone 5) connected. Btw, these devices in the same LAN. So you guys have this issue?

xcode 5.1.1

OSX 10.9.5.

Compile WebRTC libs for AppRTCDemo

Thank you very much for your work. I'm currently trying to compile all the webrtc libs using the webrtc trunk. I tried also using the instructions from gandg project, using the branch 3.46 from webrtc and then integrating the modified .h and .mm in the objc directory before compilation. The libs are compiling but integrating them back in the project make the app crash. So I wanted to know if it was possible to upload the files you modified in webrtc before compiling the webrtc libs for your project, or explain how to compile properly the libs?

OBJC_CLASS$RTCICECandidate error

Undefined symbols for architecture i386:
"OBJC_CLASS$RTCICECandidate", referenced from:
objc-class-ref in APPRTCConnectionManager.o
"_OBJC_CLASS$RTCICEServer", referenced from:
objc-class-ref in APPRTCAppClient.o
"_OBJC_CLASS$RTCMediaConstraints", referenced from:
objc-class-ref in APPRTCAppClient.o
objc-class-ref in APPRTCConnectionManager.o
"_OBJC_CLASS$RTCPair", referenced from:
objc-class-ref in APPRTCAppClient.o
objc-class-ref in APPRTCConnectionManager.o
"_OBJC_CLASS$RTCPeerConnectionFactory", referenced from:
objc-class-ref in APPRTCAppDelegate.o
objc-class-ref in APPRTCConnectionManager.o
"_OBJC_CLASS$_RTCSessionDescription", referenced from:
objc-class-ref in APPRTCConnectionManager.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

how can i fixed this error?

AppRTC with ofmeet

Hi,

Thanks for lib. Is this works with ofmeet plugin of Openfire. If yes please guide me how to do so.

I am able to connect to jabber but when i tries to have video chat blank page appears .

Thank you

No delegates methods are calling after rtcWorkerDidStartRTCTask

HI -

Im trying to implement video calling. 'rtcWorkerDidStartRTCTask' method is getting called in 'RosterViewController.m' file. after this, no delegate method is getting called. Ideally, my understanding is, 'didReceiveRemoteStream' should get called. then the users can see the video to each other.

what could be the reason for not gelling called 'didReceiveRemoteStream' method. FYI, I have xmpp signaling message type as 'normal', not 'signaling'.

Help me please, thank you.

Caching ice candidate or remote sdp

Hi,
Any idea if we can cache ice candidate or remote sdp for extended period of time. What is the caching you are using? Sending ice candidate or sdp multiple times for same session is not a good idea so need to figure out that?

Thanks,
Harshit

How can I set Jabber server address?

@YK-Unit :I had Stun&Turn server、customer accounts,but I can't see each other when I login in AppRTCDemo 。I think I had problem with Jabber server address in code. Can U tell me what can I do?
I had sent mail to u,can u replay my question?It's emergency to me。 thank u very much !

Can't see any users in RosterViewController.m tableview

Hi -

I have my own jabber server and Im testing this app on iPhone and iPad with different users.
Both iPhone user and iPad user are connected to same meeting with a meetingID. Here is the log and a screen shot on iPhone. Can somebody help me why I cant see the user in RosterViewController.m tableview.

My expectation is,
on iPad app, I should see iPhone-user
on iPhone app, I should see iPad-user

This is not happening. what could be the reason for this ?


Warning(webrtcvoiceengine.cc:360): SetTraceCallback() failed, err=0
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
Warning(webrtcvoiceengine.cc:462): Unexpected codec: PCMU/8000/2 (110)
Warning(webrtcvoiceengine.cc:462): Unexpected codec: PCMA/8000/2 (118)
ILBC/8000/1 (102)
G722/16000/1 (9)
Warning(webrtcvoiceengine.cc:462): Unexpected codec: G722/16000/2 (119)
opus/48000/2 (111)
CN/8000/1 (13)
CN/16000/1 (105)
CN/32000/1 (106)
telephone-event/8000/1 (126)
red/8000/1 (127)
WebRtcVideoEngine::WebRtcVideoEngine
Warning(webrtcvideoengine.cc:838): SetTraceCallback(0x15b6f05c) failed, err=0
WebRtcVoiceEngine::Init
WebRtc VoiceEngine Version:
VoiceEngine 4.1.0
Build: svn:Unavailable(issue687) Oct 29 2013 12:59:30 ?
Applying audio options: AudioOptions {aec: false, agc: false, ns: true, hf: true, swap: false, typing: false, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, aec_dump: false, }
Warning(webrtcvoiceengine.cc:811): SetTypingDetectionStatus(0) failed, err=8003
Adjusting AGC level from default -3dB to -3dB
WebRtc VoiceEngine codecs:
opus/48000/2 (111)
ISAC/16000/1 (103)
G722/16000/1 (9)
ILBC/8000/1 (102)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
CN/32000/1 (106)
CN/16000/1 (105)
CN/8000/1 (13)
red/8000/1 (127)
telephone-event/8000/1 (126)
WebRtcVoiceEngine::Init Done!
WebRtcVideoEngine::Init
WebRtcVideoEngine::InitVideoEngine
WebRtc VideoEngine Version:
VideoEngine 3.45.0
Build: svn:Unavailable(issue687) Oct 29 2013 13:00:07 ?
VideoEngine Init done
Applying audio options: AudioOptions {aec: false, agc: false, ns: true, hf: true, swap: false, typing: false, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, aec_dump: false, }
Warning(webrtcvoiceengine.cc:811): SetTypingDetectionStatus(0) failed, err=8003
Adjusting AGC level from default -3dB to -3dB
2016-09-11 16:09:15.221 AppRTCDemo[514:34406] APIManager start request
2016-09-11 16:09:15.222 AppRTCDemo514:34406
2016-09-11 16:09:16.808 AppRTCDemo[514:34406] APIManager success.
2016-09-11 16:09:16.809 AppRTCDemo[514:34406] meetingId...57c6fac44a68e774d77eedf3
2016-09-11 16:09:26.926 AppRTCDemo[514:34406] APIManager start request
2016-09-11 16:09:26.926 AppRTCDemo[514:34406] {
displayName = monikonda;
email = "[email protected]";
role = PRESENTER;
}
2016-09-11 16:09:28.054 AppRTCDemo[514:34406] APIManager success.
2016-09-11 16:09:28.056 AppRTCDemo[514:34406] APIManager start request
2016-09-11 16:09:28.057 AppRTCDemo514:34406
2016-09-11 16:09:29.260 AppRTCDemo[514:34406] APIManager success.
2016-09-11 16:09:29:664 AppRTCDemo[514:c07] XMPPWorker: xmppStream:socketDidConnect:
2016-09-11 16:09:29:665 AppRTCDemo[514:98bb] SEND9:
2016-09-11 16:09:29:666 AppRTCDemo[514:98bb] SEND10: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' to='app.kenjameeting.com'>
2016-09-11 16:09:30:513 AppRTCDemo[514:98bb] RECV2: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="app.kenjameeting.com" id="6lq9cwvp5h" stream1:lang="en" version="1.0"/>
2016-09-11 16:09:30:884 AppRTCDemo[514:9e27] RECV3: <stream:features xmlns:stream="http://etherx.jabber.org/streams">PLAINANONYMOUSSCRAM-SHA-1CRAM-MD5DIGEST-MD5zlib/stream:features
2016-09-11 16:09:30:887 AppRTCDemo[514:c07] XMPPWorker: xmppStreamDidConnect:
2016-09-11 16:09:30:890 AppRTCDemo[514:c07] SEND8:
2016-09-11 16:09:31:251 AppRTCDemo[514:3a37] RECV3: cmVhbG09ImFwcC5rZW5qYW1lZXRpbmcuY29tIixub25jZT0iYUxhZ1lGRnBjVHJ6Y0o5K05NaUQzUTErcWJub0lUM2dGUDFCUWVlMyIscW9wPSJhdXRoIixjaGFyc2V0PXV0Zi04LGFsZ29yaXRobT1tZDUtc2Vzcw==
2016-09-11 16:09:31:254 AppRTCDemo[514:3a37] SEND8: dXNlcm5hbWU9IjU2ZmJjNDZlNGE2OGU3NTVjODRiNWZhNF9tb25pa29uZGFfZ21haWwuY29tIixyZWFsbT0iYXBwLmtlbmphbWVldGluZy5jb20iLG5vbmNlPSJhTGFnWUZGcGNUcnpjSjkrTk1pRDNRMStxYm5vSVQzZ0ZQMUJRZWUzIixjbm9uY2U9IjVGMzgyOTg3LTgyQUEtNEZBRC04QkExLTk0MjhFNDYwNDcwQSIsbmM9MDAwMDAwMDEscW9wPWF1dGgsZGlnZXN0LXVyaT0ieG1wcC9hcHAua2VuamFtZWV0aW5nLmNvbSIscmVzcG9uc2U9MTc5YzE0OTBhMjg5NzliMTFkNjI0NGMxZWViNmI1YzgsY2hhcnNldD11dGYtOA==
2016-09-11 16:09:31:637 AppRTCDemo[514:98bb] RECV3: cnNwYXV0aD0zN2VmN2M1ZDg2YWZkNjZlNmZiZDQxNzJmODA3ZGFhMw==
2016-09-11 16:09:31:638 AppRTCDemo[514:98bb] SEND10: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' to='app.kenjameeting.com'>
2016-09-11 16:09:32:020 AppRTCDemo[514:3a37] RECV2: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="app.kenjameeting.com" id="6lq9cwvp5h" stream1:lang="en" version="1.0"/>
2016-09-11 16:09:32:022 AppRTCDemo[514:3a37] RECV3: <stream:features xmlns:stream="http://etherx.jabber.org/streams">zlib/stream:features
2016-09-11 16:09:32:027 AppRTCDemo[514:3a37] SEND11: 57d52d0e4a68e7524a3bd1d5_123446712gdd
2016-09-11 16:09:32:420 AppRTCDemo[514:98bb] RECV3: 56fbc46e4a68e755c84b5fa4_monikonda_gmail.com@app.kenjameeting.com/57d52d0e4a68e7524a3bd1d5_123446712gdd
2016-09-11 16:09:32:426 AppRTCDemo[514:98bb] SEND13:
2016-09-11 16:09:32:814 AppRTCDemo[514:3a37] RECV3:
2016-09-11 16:09:32:816 AppRTCDemo[514:c07] XMPPWorker: xmppStreamDidAuthenticate:
2016-09-11 16:09:32:820 AppRTCDemo[514:1003] SEND4:
2016-09-11 16:09:32:834 AppRTCDemo[514:107] SEND4:
2016-09-11 16:09:32:839 AppRTCDemo[514:98bb] SEND6:
2016-09-11 16:09:33:223 AppRTCDemo[514:3a37] RECV3:
2016-09-11 16:09:33:224 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:09:33:622 AppRTCDemo[514:107] RECV3:
2016-09-11 16:09:33:624 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:09:33:647 AppRTCDemo[514:1003] SEND6:
2016-09-11 16:09:34:019 AppRTCDemo[514:a1d7] RECV3:
2016-09-11 16:09:34:022 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceivePresence: - 56fbc46e4a68e755c84b5fa4_monikonda_gmail.com@app.kenjameeting.com/57d52d0e4a68e7524a3bd1d5_123446712gdd
2016-09-11 16:09:49:000 AppRTCDemo[514:98bb] RECV3:
2016-09-11 16:09:49:000 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:09:49:002 AppRTCDemo[514:1007] SEND4:
2016-09-11 16:10:04:315 AppRTCDemo[514:9a0b] RECV3:
2016-09-11 16:10:04:316 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:10:04:320 AppRTCDemo[514:c413] SEND4:
2016-09-11 16:10:19:663 AppRTCDemo[514:7a0f] RECV3:
2016-09-11 16:10:19:664 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:10:19:667 AppRTCDemo[514:7a0f] SEND4:
2016-09-11 16:10:34:956 AppRTCDemo[514:a2cb] RECV3:
2016-09-11 16:10:34:957 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:10:34:958 AppRTCDemo[514:9b0f] SEND4:
2016-09-11 16:10:50:252 AppRTCDemo[514:1113] RECV3:
2016-09-11 16:10:50:253 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:10:50:255 AppRTCDemo[514:c33b] SEND4:
2016-09-11 16:11:05:564 AppRTCDemo[514:c33b] RECV3:
2016-09-11 16:11:05:565 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:11:05:567 AppRTCDemo[514:9b17] SEND4:
2016-09-11 16:11:20:859 AppRTCDemo[514:7a1f] RECV3:
2016-09-11 16:11:20:860 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:11:20:862 AppRTCDemo[514:a2d3] SEND4:
2016-09-11 16:11:36:154 AppRTCDemo[514:7a23] RECV3:
2016-09-11 16:11:36:156 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:11:36:158 AppRTCDemo[514:7a23] SEND4:
2016-09-11 16:11:51:449 AppRTCDemo[514:7a27] RECV3:
2016-09-11 16:11:51:450 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:11:51:452 AppRTCDemo[514:9a27] SEND4:
2016-09-11 16:12:06:741 AppRTCDemo[514:a2df] RECV3:
2016-09-11 16:12:06:743 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:12:06:744 AppRTCDemo[514:7a2b] SEND4:
2016-09-11 16:12:22:033 AppRTCDemo[514:a2e3] RECV3:
2016-09-11 16:12:22:035 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:12:22:037 AppRTCDemo[514:6d43] SEND4:
2016-09-11 16:12:37:331 AppRTCDemo[514:7a2f] RECV3:
2016-09-11 16:12:37:332 AppRTCDemo[514:c07] XMPPWorker: xmppStream:didReceiveIQ:
2016-09-11 16:12:37:334 AppRTCDemo[514:6d47] SEND4:

Unable to realize

2014-09-26 15:19:50.460 AppRTCDemo[693:75284] WARNING: -[<AVCaptureConnection: 0x16074440> setVideoMinFrameDuration:] is deprecated. Please use AVCaptureDevice setActiveVideoMinFrameDuration
2014-09-26 15:19:50.460 AppRTCDemo[693:75284] WARNING: -[<AVCaptureConnection: 0x16074440> setVideoMaxFrameDuration:] is deprecated. Please use AVCaptureDevice setActiveVideoMaxFrameDuration
I don't know whether this reason,I use ios7,4s and ios8,5s testing for many times, but only a few times was a success

myLog after accepting the call

视频不是流,请给一些建议

VAdapt Frame: 0 / 600 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false
Jingle:Port[audio:1:0::Net[en0:192.168.1.0/24]]: Port deleted
Jingle:Port[audio:1:0::Net[en0:192.168.1.0/24]]: Removed port from allocator (2 remaining)
Removed port from p2p socket: 2 remaining
VAdapt Frame: 0 / 900 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false
Jingle:Port[audio:1:0:relay:Net[en0:192.168.1.0/24]]: Port deleted
Jingle:Port[audio:1:0:relay:Net[en0:192.168.1.0/24]]: Removed port from allocator (1 remaining)
Removed port from p2p socket: 1 remaining
Jingle:Port[audio:1:0:local:Net[en0:192.168.1.0/24]]: Port deleted
Jingle:Port[audio:1:0:local:Net[en0:192.168.1.0/24]]: Removed port from allocator (0 remaining)
Removed port from p2p socket: 0 remaining
VAdapt Frame: 0 / 1200 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false
VAdapt Frame: 0 / 1500 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false
VAdapt Frame: 0 / 1800 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false
VAdapt Frame: 0 / 2100 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false
VAdapt Frame: 0 / 2400 Changes: 0 Input: 192x144 Scale: 1 Output: 192x144 Changed: false

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.