Bootstrap

Webrtc Intro - Native APIs




Native APIs

The WebRTC native APIs are implemented based on the following WebRTC spec

The code that implements WebRTC native APIs (including the Stream and the PeerConnection APIs) are available here. A sample client application is also provided there.

The target audience of this document are those who want to use WebRTC Native APIs to implement WebRTC JavaScript APIs or to develop native RTC applications.

Block diagram



Calling sequences

Set up a call

Receive a call

Close down a call


Threading model

WebRTC native APIs use two globally available threads: the signaling thread and the worker thread. Depending on how the PeerConnection factory is created, the application can either provide those 2 threads or just let them be created internally.

The calls to the Stream APIs and the PeerConnection APIs will be proxied to the signaling thread which means that the application can call those APIs from whatever thread.

All callbacks will be made on the signaling thread. The application should return the callback as quickly as possible to avoid blocking the signaling thread. Resource intensive processes should be posted to a different thread.

The worker thread is used to handle more resource intensive processes such as data streaming.

API documentation

Reference

The current HTML5 specification for WebRTC is here:  http://dev.w3.org/2011/webrtc/editor/webrtc.html

The source code of the WebRTC Native API is here:
https://chromium.googlesource.com/external/webrtc/+/master/talk/app/webrtc

Client and server sample apps can be found here:
https://chromium.googlesource.com/external/webrtc/+/master/talk/examples

;