WebRTC Android SDK

repository·main·Indexed 43 days ago

https://github.com/webrtc-sdk/android

Pre-compiled WebRTC libraries for Android available via Maven Central. Offers multiple distribution variants, including a standard implementation, a prefixed version (relocating org.webrtc to livekit.org.webrtc) to avoid package collisions, and a stripped-down prefixed variant optimized for smaller APK size by removing software video codecs. Version 150.7871.01.

Tokens
8.1K
Snippets
9
Records
31
Agent score
7%

What's inside WebRTC Android SDK

  1. BoringSSL Licensing Overview

    main

    BoringSSL is a fork of OpenSSL and uses a combination of licenses depending on the specific code component:

    • OpenSSL Toolkit components: Subject to a dual license (both the OpenSSL License and the original SSLeay license apply).
    • New code: Completely new files in BoringSSL are under the ISC license with a Google copyright.
    • third_party/fiat: Uses the MIT license and is compiled into non-test libraries.
    • third_party/ files: Individual files within third_party/ have their own specific licenses as described within those directories.

    Note: Contributors to BoringSSL must follow the Chromium CLA rules: https://cla.developers.google.com/clas

  2. License for Caffe2

    main

    Caffe2 uses a shared copyright model where each contributor holds copyright over their specific contributions.

    • Early development (2015-early 2016): Licensed under the BSD license.
    • Current/General: Subject to the Mozilla Public License, v. 2.0 (MPL).

    Contributors can mark specific copyright on individual contributions by indicating it in the commit message.

  3. Patent license and litigation terms

    main

    Under this license, contributors grant a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, use, sell, and transfer the Work. This license applies only to patent claims licensable by the contributor that are necessarily infringed by their contribution alone or in combination with the Work.

    Termination Clause: If you institute patent litigation against any entity alleging that the Work (or a contribution within it) constitutes direct or contributory patent infringement, any patent licenses granted to you under this License for that Work will terminate on the date the litigation is filed.

  4. Understand WebRTC Patent and Trademark terms

    main

    When using WebRTC, be aware of the following legal constraints defined by the Apache 2.0 License:

    • Patent License Termination: The grant of patent licenses is conditional. If you institute patent litigation against any entity alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to you under this License for that Work shall terminate as of the date such litigation is filed.
    • Trademarks: This license does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
    • Disclaimer of Warranty: The Work is provided on an "AS IS" BASIS, without warranties or conditions of any kind, either express or implied (including merchantability or fitness for a particular purpose).
  5. Redistribution requirements for the WebRTC SDK

    main

    When reproducing or distributing the WebRTC Work or Derivative Works in any medium (Source or Object form), you must comply with the following conditions:

    1. Include License: You must provide any other recipients of the Work or Derivative Works with a copy of this License.
    2. Notice of Changes: Any modified files must carry prominent notices stating that you changed the files.
    3. Retain Notices: In the Source form of any Derivative Works distributed, you must retain all copyright, patent, trademark, and attribution notices from the original Source form, excluding those that do not pertain to your Derivative Works.
    4. Handle NOTICE files: If the original Work includes a NOTICE text file, your Derivative Works must include a readable copy of the attribution notices contained within that NOTICE file. This can be done in one of the following locations:
      • Within a NOTICE text file distributed as part of the Derivative Works.
      • Within the Source form or documentation.
      • Within a display generated by the Derivative Works (where third-party notices normally appear).

    You may add your own copyright statements to your modifications and provide additional or different license terms for your modifications, provided your use of the original Work complies with this License.

  6. Redistribution requirements for Apache License 2.0

    main

    If you reproduce or distribute the Work or Derivative Works (in Source or Object form), you must comply with the following conditions:

    1. Include License Copy: You must provide any other recipients of the Work or Derivative Works with a copy of this License.
    2. Notice of Changes: You must ensure that any modified files carry prominent notices stating that you changed the files.
    3. Retain Notices: In the Source form of any Derivative Works you distribute, you must retain all copyright, patent, trademark, and attribution notices from the original Source form, excluding those that do not pertain to your Derivative Works.
    4. Handle NOTICE Files: If the original Work includes a "NOTICE" text file, your Derivative Works must include a readable copy of the attribution notices contained within that file. This can be done in one of the following places:
      • Within a NOTICE text file distributed as part of the Derivative Works.
      • Within the Source form or documentation.
      • Within a display generated by the Derivative Works (where third-party notices normally appear).

    You may add your own copyright statement to your modifications and provide different license terms for your modifications, provided your use of the original Work complies with the Apache License 2.0.

  7. Redistribute WebRTC under the Apache 2.0 License

    main

    The WebRTC components in this repository are licensed under the Apache License, Version 2.0. If you reproduce and distribute copies of the Work or Derivative Works (in Source or Object form), you must comply with the following conditions:

    1. Include License Copy: You must provide any other recipients of the Work or Derivative Works with a copy of this License.
    2. Notice of Changes: You must cause any modified files to carry prominent notices stating that you changed the files.
    3. Retain Notices: In the Source form of any Derivative Works you distribute, you must retain all copyright, patent, trademark, and attribution notices from the Source form of the Work (excluding those that do not pertain to your Derivative Works).
    4. Handle NOTICE Files: If the Work includes a NOTICE text file, your Derivative Works must include a readable copy of the attribution notices contained within that NOTICE file. This can be done in one of the following places:
      • Within a NOTICE text file distributed as part of the Derivative Works.
      • Within the Source form or documentation.
      • Within a display generated by the Derivative Works, where third-party notices normally appear.
  8. Use the prefixed WebRTC library to avoid package collisions

    main

    If your project already contains other WebRTC libraries, you may encounter package name collisions with org.webrtc. To prevent this, use the shadowed version which relocates the org.webrtc package to livekit.org.webrtc.

    dependencies {
      implementation 'io.github.webrtc-sdk:android-prefixed:150.7871.01'
    }
  9. Redistribute WebRTC under the Apache License 2.0

    main

    The WebRTC components in this repository are licensed under the Apache License, Version 2.0. When you redistribute the Work or Derivative Works in any medium (Source or Object form), you must comply with the following conditions:

    1. Include License Copy: You must provide any recipients of the Work or Derivative Works with a copy of this License.
    2. Notice of Changes: You must ensure that any modified files carry prominent notices stating that you have changed the files.
    3. Retain Notices: In the Source form of any Derivative Works, you must retain all copyright, patent, trademark, and attribution notices from the original Source form, excluding those that do not pertain to your modifications.
    4. Handle NOTICE Files: If the original Work includes a NOTICE text file, your Derivative Works must include a readable copy of the attribution notices contained within that NOTICE file. This can be done within a NOTICE text file, within the Source/documentation, or within a display generated by the Derivative Works where third-party notices normally appear.
  10. Use the stripped-down prefixed WebRTC library for smaller APK size

    main

    For applications where minimizing binary size is a priority over video performance, use the android-prefixed-stripped variant. This version is based on the prefixed library (using the livekit.org.webrtc package) but has software video codecs removed and is optimized for size rather than speed.

    dependencies {
      implementation 'io.github.webrtc-sdk:android-prefixed-stripped:150.7871.01'
    }
  11. Install the WebRTC Android library via Gradle

    main

    The WebRTC pre-compiled library for Android is hosted on Maven Central. You can include it in your project by adding the dependency to your build.gradle file. Use the standard implementation for general use cases.

    dependencies {
      implementation 'io.github.webrtc-sdk:android:150.7871.01'
    }
  12. Comply with libjpeg-turbo licensing requirements

    main

    The libjpeg-turbo library is covered by three compatible licenses: the IJG License (for the libjpeg API), the Modified (3-clause) BSD License (for the TurboJPEG API and build system), and the zlib License (for SIMD extensions).

    Distributing Modified Source Code

    If you distribute a modified version of the libjpeg-turbo source:

    1. Retain Notices: Do not alter or remove any existing copyright or license notices.
    2. Add Your Notice: Add your own copyright notice to the header of every source file you modified.
    3. Include README: You must include the README.ijg file without altering its text.

    Distributing Binaries or Statically Linked Applications

    If you distribute only binaries or an application that statically links with libjpeg-turbo:

    1. General Attribution: Your product documentation must include the message: This software is based in part on the work of the Independent JPEG Group.
    2. TurboJPEG API Attribution: If your binary distribution uses the TurboJPEG API, your product documentation must also include the text of the Modified BSD License.

    General Restrictions

    • No Endorsement: You cannot use the name of the IJG, The libjpeg-turbo Project, or its contributors to endorse or promote products derived from this software without specific prior written permission.
    • No Warranty: The IJG and The libjpeg-turbo Project do not warrant the software to be free of defects and accept no liability for undesirable consequences.