<commit_before>This is a repository for client-side HTML/CSS/JavaScript WebRTC code samples.

Many of the samples use new browser features. They may only work in Chrome Canary and/or Firefox Beta, and may require flags to be set.

All of the samples use [adapter.js](https://github.com/GoogleChrome/webrtc/blob/master/adapter.js), a shim to insulate apps from spec changes and prefix differences. In fact, the standards and protocols used for WebRTC implementations are highly stable, and there are only a few prefixed names. For full interop information, see [webrtc.org/interop](http://www.webrtc.org/interop).

NB: all samples that use `getUserMedia()` must be run from a server. Calling `getUserMedia()` from a file:// URL will result in a PERMISSION_DENIED NavigatorUserMediaError.

For more information about WebRTC, we maintain a list of [WebRTC Resources](https://docs.google.com/document/d/1idl_NYQhllFEFqkGQOLv8KBK8M3EVzyvxnKkHl4SuM8/edit). If you've never worked with WebRTC, we recommend you start with the 2013 Google I/O [WebRTC presentation](http://www.youtube.com/watch?v=p2HzZkd2A40).

Patches and issues welcome!

The demos
=========

<p><a href="//googlechrome.github.io/webrtc/samples/web/content/constraints">Constraints and stats</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/create-offer">Display createOffer output</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/datachannel">Data channels</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/dtmf">DTMF</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/face">Face tracking</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia">Simple getUserMedia() example</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia-canvas">getUserMedia() + Canvas</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia-filter">getUserMedia() + Canvas + CSS filters</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia-resolution">Choose camera resolution</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia-source">Choose camera and microphone</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/trickle-ice">ICE Candidate gathering</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia-audio">Audio-only getUserMedia() output to local audio element</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/getusermedia-volume">Audio-only getUserMedia() displaying volume</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/peerconnection">Streaming between two RTCPeerConnections on one page</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/peerconnection-audio">Audio-only peer connection</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/multiple">Multiple peer connections</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/multiple-relay">Multiple relay</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/munge-sdp">Munge SDP</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/pr-answer">Accept incoming peer connection</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/rehydrate">Peer connection rehydration</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/peerconnection-states">Peer connection states</a></p>

    <p><a href="//googlechrome.github.io/webrtc/samples/web/content/webaudio-webrtc">Web Audio output as input to peer connection</a></p><commit_msg>Fixed readme.md links<commit_after>This is a repository for client-side HTML/CSS/JavaScript WebRTC code samples.

Many of the samples use new browser features. They may only work in Chrome Canary and/or Firefox Beta, and may require flags to be set.

All of the samples use [adapter.js](https://github.com/GoogleChrome/webrtc/blob/master/adapter.js), a shim to insulate apps from spec changes and prefix differences. In fact, the standards and protocols used for WebRTC implementations are highly stable, and there are only a few prefixed names. For full interop information, see [webrtc.org/interop](http://www.webrtc.org/interop).

NB: all samples that use `getUserMedia()` must be run from a server. Calling `getUserMedia()` from a file:// URL will result in a PERMISSION_DENIED NavigatorUserMediaError.

For more information about WebRTC, we maintain a list of [WebRTC Resources](https://docs.google.com/document/d/1idl_NYQhllFEFqkGQOLv8KBK8M3EVzyvxnKkHl4SuM8/edit). If you've never worked with WebRTC, we recommend you start with the 2013 Google I/O [WebRTC presentation](http://www.youtube.com/watch?v=p2HzZkd2A40).

Patches and issues welcome!

The demos
=========

[Constraints and stats](http://googlechrome.github.io/webrtc/samples/web/content/constraints)

[Display createOffer output](http://googlechrome.github.io/webrtc/samples/web/content/create-offer)

[Data channels](http://googlechrome.github.io/webrtc/samples/web/content/datachannel)

[DTMF](http://googlechrome.github.io/webrtc/samples/web/content/dtmf)

[Face tracking](http://googlechrome.github.io/webrtc/samples/web/content/face)

[Simple getUserMedia() example](http://googlechrome.github.io/webrtc/samples/web/content/getusermedia)

[getUserMedia() + Canvas](http://googlechrome.github.io/webrtc/samples/web/content/canvas)

[getUserMedia() + Canvas + CSS Filters](http://googlechrome.github.io/webrtc/samples/web/content/filter)

[getUserMedia() with resolution constraints](http://googlechrome.github.io/webrtc/samples/web/content/resolution)

[getUserMedia() with camera/mic selection](http://googlechrome.github.io/webrtc/samples/web/content/sources)

[ICE Candidate gathering](http://googlechrome.github.io/webrtc/samples/web/content/trickleice)

[Audio-only getUserMedia() output to local audio element](http://googlechrome.github.io/webrtc/samples/web/content/getusermedia-audio)

[Audio-only getUserMedia() displaying volume](http://googlechrome.github.io/webrtc/samples/web/content/getusermedia-volume)

[Streaming between two RTCPeerConnections on one page](http://googlechrome.github.io/webrtc/samples/web/content/peerconnection)

[Audio-only peer connection](http://googlechrome.github.io/webrtc/samples/web/content/peerconnection-audio)

[Multiple peer connections](http://googlechrome.github.io/webrtc/samples/web/content/multiple)

[Multiple relay](http://googlechrome.github.io/webrtc/samples/web/content/multiple-relay)

[Munge SDP](http://googlechrome.github.io/webrtc/samples/web/content/munge-sdp)

[Accept incoming peer connection](http://googlechrome.github.io/webrtc/samples/web/content/pr-answer)

[Peer connection rehydration](http://googlechrome.github.io/webrtc/samples/web/content/rehydrate)

[Peer connection states](http://googlechrome.github.io/webrtc/samples/web/content/peerconnection-states)

[Web Audio output as input to peer connection](http://googlechrome.github.io/webrtc/samples/web/content/webaudio-webrtc)
{'fraction_non_alphanumeric': 0.14556262095659386, 'fraction_numerical': 0.003870611003594139, 'mean_word_length': 5.210300429184549, 'pattern_counts': {'":': 0, '<': 91, '<?xml version=': 0, '>': 91, 'https://': 4, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '585177', 'n_tokens_mistral': 2400, 'n_tokens_neox': 2313, 'n_words': 452}