MCPcopy Index your code
hub / github.com/EricssonResearch/openwebrtc

github.com/EricssonResearch/openwebrtc @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
957 symbols 1,989 edges 102 files 64 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

OWR Logo

A flexible cross-platform WebRTC client framework based on GStreamer.

OpenWebRTC is built on the belief that the WebRTC standard would transcend the pure browser environment and that native apps, implementing the same protocols and API's, would become an important part of the WebRTC ecosystem. This is especially true on mobile platforms where native app distribution is often preferred over pure web apps. Native OpenWebRTC apps can either talk to other native apps or browsers that support WebRTC. OpenWebRTC can also provide the WebRTC-backend to web browsers.

Having independent, interoperable, implementations is important for the health of any standard, and WebRTC is no exception. The ambition of OpenWebRTC is to follow the WebRTC standard closely as it continues to evolve.

Architecture

OpenWebRTC was designed for flexibility and modularity. The bulk of the API layer is implemented in JavaScript, making it super fast to modify and extend with new functionality. Below is a simplified sketch of the architecture.

Simplified architecture

Applications built on top of OpenWebRTC will be interoperable with popular WebRTC-enabled browsers such as Chrome and Firefox.

Building

Take a look at the Building OpenWebRTC wiki page for information about how to build the framework.

Community

For support, questions and discussions: * Public mailing list * Twitter: @OpenWebRTC * IRC - irc://chat.freenode.net/openwebrtc * OpenWebRTC blog (maintained by Ericsson Research) * Issue tracker

Examples using OpenWebRTC

Bowser is a mobile browser that uses OpenWebRTC as a WebRTC back-end. As you can see here, Bowser is in fact a very thin layer of UI code on top of OpenWebRTC.

We are also writing some example code and applications to help you get started using OpenWebRTC on various platforms.

Before being released publicly, OpenWebRTC has been used by Ericsson Research to build several research prototypes such as this and that.

License

OpenWebRTC is released under BSD-2 clause. See LICENSE for details.

Core symbols most depended-on inside this repo

fillTemplate
called by 31
bridge/client/sdp.js
match
called by 25
bridge/client/sdp.js
get_session
called by 22
transport/owr_transport_agent.c
_owr_schedule_with_hash_table
called by 22
owr/owr.c
owr_run
called by 17
owr/owr.c
default
called by 16
bindings/java/c_generator.py
createError
called by 15
bridge/client/domutils.js
checkArguments
called by 14
bridge/client/domutils.js

Shape

Function 601
Method 180
Class 174
Enum 2

Languages

C49%
Python32%
TypeScript12%
C++7%
Java1%

Modules by API surface

transport/owr_transport_agent.c91 symbols
bindings/java/standard_types.py86 symbols
bindings/java/c_generator.py68 symbols
bindings/java/base_generator.py57 symbols
bridge/client/webrtc.js52 symbols
bindings/java/gir_parser.py50 symbols
transport/owr_media_session.c27 symbols
local/owr_device_list.c23 symbols
bindings/java/java_generator.py22 symbols
transport/owr_data_channel.c21 symbols
transport/owr_session.c20 symbols
owr/owr_media_source.c20 symbols

For agents

$ claude mcp add openwebrtc \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact