Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions Documentation/AndroidInstallation.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ if your Android files are written in Java, modify `MainApplication.java`:
// add imports
import com.oney.WebRTCModule.WebRTCModuleOptions;
import android.media.AudioAttributes;
import org.webrtc.audio.JavaAudioDeviceModule;
import livekit.org.webrtc.audio.JavaAudioDeviceModule;

public class MainApplication extends Application implements ReactApplication {
@Override
Expand All @@ -96,7 +96,7 @@ if your Android files are written in Kotlin, modify `MainApplication.kt`:
// add imports
import com.oney.WebRTCModule.WebRTCModuleOptions;
import android.media.AudioAttributes
import org.webrtc.audio.JavaAudioDeviceModule;
import livekit.org.webrtc.audio.JavaAudioDeviceModule;

class MainApplication : Application(), ReactApplication {
override fun onCreate() {
Expand All @@ -116,9 +116,9 @@ class MainApplication : Application(), ReactApplication {
## Fatal Exception: java.lang.UnsatisfiedLinkError

```
Fatal Exception: java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals() (tried Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals and Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals__)
at org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals(PeerConnectionFactory.java)
at org.webrtc.PeerConnectionFactory.initialize(PeerConnectionFactory.java:306)
Fatal Exception: java.lang.UnsatisfiedLinkError: No implementation found for void livekit.org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals() (tried Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals and Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals__)
at livekit.org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals(PeerConnectionFactory.java)
at livekit.org.webrtc.PeerConnectionFactory.initialize(PeerConnectionFactory.java:306)
at com.oney.WebRTCModule.WebRTCModule.initAsync(WebRTCModule.java:79)
at com.oney.WebRTCModule.WebRTCModule.lambda$new$0(WebRTCModule.java:70)
at com.oney.WebRTCModule.-$$Lambda$WebRTCModule$CnyHZvkjDxq52UReGHUZlY0JsVw.run(-.java:4)
Expand Down Expand Up @@ -153,11 +153,11 @@ No virtual method position(I)Ljava/nio/FloatBuffer; in class Ljava/nio/FloatBuff
Stacktrace

```
org.webrtc.GlUtil in createFloatBuffer at line 47
org.webrtc.GlGenericDrawer in <clinit> at line 75
org.webrtc.YuvConverter in <init> at line 111
org.webrtc.YuvConverter in <init> at line 118
org.webrtc.SurfaceTextureHelper in create at line 92
livekit.org.webrtc.GlUtil in createFloatBuffer at line 47
livekit.org.webrtc.GlGenericDrawer in <clinit> at line 75
livekit.org.webrtc.YuvConverter in <init> at line 111
livekit.org.webrtc.YuvConverter in <init> at line 118
livekit.org.webrtc.SurfaceTextureHelper in create at line 92
com.oney.WebRTCModule.GetUserMediaImpl in createVideoTrack at line 376
com.oney.WebRTCModule.GetUserMediaImpl in getUserMedia at line 206
com.oney.WebRTCModule.WebRTCModule in lambda$getUserMedia$10$WebRTCModule at line 742
Expand Down
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ android {

dependencies {
implementation "com.facebook.react:react-android:+"
api 'io.github.webrtc-sdk:android:144.7559.05'
api 'io.github.webrtc-sdk:android-prefixed:144.7559.15'
implementation "androidx.core:core:1.7.0"
}
2 changes: 1 addition & 1 deletion android/consumer-rules.pro
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# WebRTC
-keep class org.webrtc.** { *; }
-keep class livekit.org.webrtc.** { *; }
-keep class org.jni_zero.** { *; }
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.VideoCapturer;
import livekit.org.webrtc.VideoCapturer;

public abstract class AbstractVideoCaptureController {
protected int targetWidth;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.Camera1Capturer;
import org.webrtc.Camera1Helper;
import org.webrtc.Camera2Capturer;
import org.webrtc.Camera2Helper;
import org.webrtc.CameraEnumerator;
import org.webrtc.CameraVideoCapturer;
import org.webrtc.Size;
import org.webrtc.VideoCapturer;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import livekit.org.webrtc.Camera1Capturer;
import livekit.org.webrtc.Camera1Helper;
import livekit.org.webrtc.Camera2Capturer;
import livekit.org.webrtc.Camera2Helper;
import livekit.org.webrtc.CameraEnumerator;
import livekit.org.webrtc.CameraVideoCapturer;
import livekit.org.webrtc.Size;
import livekit.org.webrtc.VideoCapturer;

public class CameraCaptureController extends AbstractVideoCaptureController {
/**
* The {@link Log} tag with which {@code CameraCaptureController} is to log.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import android.util.Log;

import org.webrtc.CameraVideoCapturer;
import livekit.org.webrtc.CameraVideoCapturer;

class CameraEventsHandler implements CameraVideoCapturer.CameraEventsHandler {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.DataChannel;

import java.nio.charset.StandardCharsets;

import livekit.org.webrtc.DataChannel;

class DataChannelWrapper implements DataChannel.Observer {
private final String reactTag;
private final DataChannel mDataChannel;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import android.util.Log;

import org.webrtc.DataPacketCryptor;
import org.webrtc.DataPacketCryptorFactory;
import org.webrtc.FrameCryptorAlgorithm;
import org.webrtc.FrameCryptorKeyProvider;

import javax.annotation.Nullable;

import livekit.org.webrtc.DataPacketCryptor;
import livekit.org.webrtc.DataPacketCryptorFactory;
import livekit.org.webrtc.FrameCryptorAlgorithm;
import livekit.org.webrtc.FrameCryptorKeyProvider;

public class DataPacketCryptorManager {
private static final String TAG = DataPacketCryptorManager.class.getSimpleName();
private final DataPacketCryptor dataPacketCryptor;
Expand Down
2 changes: 1 addition & 1 deletion android/src/main/java/com/oney/WebRTCModule/EglUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import android.os.Build.VERSION;
import android.util.Log;

import org.webrtc.EglBase;
import livekit.org.webrtc.EglBase;

public class EglUtils {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import com.oney.WebRTCModule.videoEffects.VideoEffectProcessor;
import com.oney.WebRTCModule.videoEffects.VideoFrameProcessor;

import org.webrtc.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
Expand All @@ -33,6 +31,8 @@
import java.util.UUID;
import java.util.stream.Collectors;

import livekit.org.webrtc.*;

/**
* The implementation of {@code getUserMedia} extracted into a separate file in
* order to reduce complexity and to (somewhat) separate concerns.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.oney.WebRTCModule;

import org.webrtc.Logging;
import org.webrtc.NativeLibraryLoader;
import livekit.org.webrtc.Logging;
import livekit.org.webrtc.NativeLibraryLoader;

/**
* Custom library loader. WebRTC's default library loader swallows errors, which
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,26 @@
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.AudioTrack;
import org.webrtc.DataChannel;
import org.webrtc.IceCandidate;
import org.webrtc.MediaStream;
import org.webrtc.MediaStreamTrack;
import org.webrtc.PeerConnection;
import org.webrtc.RTCStatsReport;
import org.webrtc.RtpReceiver;
import org.webrtc.RtpSender;
import org.webrtc.RtpTransceiver;
import org.webrtc.SessionDescription;
import org.webrtc.VideoTrack;

import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;

import livekit.org.webrtc.AudioTrack;
import livekit.org.webrtc.DataChannel;
import livekit.org.webrtc.IceCandidate;
import livekit.org.webrtc.MediaStream;
import livekit.org.webrtc.MediaStreamTrack;
import livekit.org.webrtc.PeerConnection;
import livekit.org.webrtc.RTCStatsReport;
import livekit.org.webrtc.RtpReceiver;
import livekit.org.webrtc.RtpSender;
import livekit.org.webrtc.RtpTransceiver;
import livekit.org.webrtc.SessionDescription;
import livekit.org.webrtc.VideoTrack;

class PeerConnectionObserver implements PeerConnection.Observer {
private final static String TAG = WebRTCModule.TAG;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.DataPacketCryptor;
import org.webrtc.FrameCryptor;
import org.webrtc.FrameCryptorAlgorithm;
import org.webrtc.FrameCryptorFactory;
import org.webrtc.FrameCryptorKeyDerivationAlgorithm;
import org.webrtc.FrameCryptorKeyProvider;
import org.webrtc.RtpReceiver;
import org.webrtc.RtpSender;

import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;

import livekit.org.webrtc.DataPacketCryptor;
import livekit.org.webrtc.FrameCryptor;
import livekit.org.webrtc.FrameCryptorAlgorithm;
import livekit.org.webrtc.FrameCryptorFactory;
import livekit.org.webrtc.FrameCryptorKeyDerivationAlgorithm;
import livekit.org.webrtc.FrameCryptorKeyProvider;
import livekit.org.webrtc.RtpReceiver;
import livekit.org.webrtc.RtpSender;

public class RTCCryptoManager {
private static final String TAG = "RTCFrameCryptor";
private final Map<String, FrameCryptor> frameCryptos = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import android.util.Log;
import android.view.OrientationEventListener;

import org.webrtc.ScreenCapturerAndroid;
import org.webrtc.VideoCapturer;
import livekit.org.webrtc.ScreenCapturerAndroid;
import livekit.org.webrtc.VideoCapturer;

public class ScreenCaptureController extends AbstractVideoCaptureController {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import livekit.org.webrtc.*;

public class SerializeUtils {
/**
* Serialization APIs
Expand Down
8 changes: 4 additions & 4 deletions android/src/main/java/com/oney/WebRTCModule/StringUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import android.util.Log;

import org.webrtc.PeerConnection;
import org.webrtc.RTCStats;
import org.webrtc.RTCStatsReport;

import java.util.Map;

import livekit.org.webrtc.PeerConnection;
import livekit.org.webrtc.RTCStats;
import livekit.org.webrtc.RTCStatsReport;

public class StringUtils {
private static final String TAG = StringUtils.class.getSimpleName();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.CapturerObserver;
import org.webrtc.VideoFrame;
import livekit.org.webrtc.CapturerObserver;
import livekit.org.webrtc.VideoFrame;

/**
* A capturer observer that emits track ended events when the capturer is stopped.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;

import org.webrtc.VideoFrame;
import org.webrtc.VideoSink;
import org.webrtc.VideoTrack;

import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;

import livekit.org.webrtc.VideoFrame;
import livekit.org.webrtc.VideoSink;
import livekit.org.webrtc.VideoTrack;

/**
* Implements mute/unmute events for remote video tracks.
* Mute event is fired when there are no frames to be render for 1500ms
Expand Down
62 changes: 31 additions & 31 deletions android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,6 @@
import com.oney.WebRTCModule.webrtcutils.H264AndSoftwareVideoDecoderFactory;
import com.oney.WebRTCModule.webrtcutils.H264AndSoftwareVideoEncoderFactory;

import org.webrtc.AddIceObserver;
import org.webrtc.AudioProcessingFactory;
import org.webrtc.AudioSource;
import org.webrtc.AudioTrack;
import org.webrtc.CryptoOptions;
import org.webrtc.EglBase;
import org.webrtc.IceCandidate;
import org.webrtc.Loggable;
import org.webrtc.Logging;
import org.webrtc.MediaConstraints;
import org.webrtc.MediaStream;
import org.webrtc.MediaStreamTrack;
import org.webrtc.PeerConnection;
import org.webrtc.PeerConnectionFactory;
import org.webrtc.RTCStatsReport;
import org.webrtc.RtpCapabilities;
import org.webrtc.RtpParameters;
import org.webrtc.RtpSender;
import org.webrtc.RtpTransceiver;
import org.webrtc.SdpObserver;
import org.webrtc.SessionDescription;
import org.webrtc.SoftwareVideoDecoderFactory;
import org.webrtc.SoftwareVideoEncoderFactory;
import org.webrtc.SurfaceTextureHelper;
import org.webrtc.VideoDecoderFactory;
import org.webrtc.VideoEncoderFactory;
import org.webrtc.VideoSource;
import org.webrtc.VideoTrack;
import org.webrtc.audio.AudioDeviceModule;
import org.webrtc.audio.JavaAudioDeviceModule;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
Expand All @@ -63,6 +32,37 @@
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;

import livekit.org.webrtc.AddIceObserver;
import livekit.org.webrtc.AudioProcessingFactory;
import livekit.org.webrtc.AudioSource;
import livekit.org.webrtc.AudioTrack;
import livekit.org.webrtc.CryptoOptions;
import livekit.org.webrtc.EglBase;
import livekit.org.webrtc.IceCandidate;
import livekit.org.webrtc.Loggable;
import livekit.org.webrtc.Logging;
import livekit.org.webrtc.MediaConstraints;
import livekit.org.webrtc.MediaStream;
import livekit.org.webrtc.MediaStreamTrack;
import livekit.org.webrtc.PeerConnection;
import livekit.org.webrtc.PeerConnectionFactory;
import livekit.org.webrtc.RTCStatsReport;
import livekit.org.webrtc.RtpCapabilities;
import livekit.org.webrtc.RtpParameters;
import livekit.org.webrtc.RtpSender;
import livekit.org.webrtc.RtpTransceiver;
import livekit.org.webrtc.SdpObserver;
import livekit.org.webrtc.SessionDescription;
import livekit.org.webrtc.SoftwareVideoDecoderFactory;
import livekit.org.webrtc.SoftwareVideoEncoderFactory;
import livekit.org.webrtc.SurfaceTextureHelper;
import livekit.org.webrtc.VideoDecoderFactory;
import livekit.org.webrtc.VideoEncoderFactory;
import livekit.org.webrtc.VideoSource;
import livekit.org.webrtc.VideoTrack;
import livekit.org.webrtc.audio.AudioDeviceModule;
import livekit.org.webrtc.audio.JavaAudioDeviceModule;

@ReactModule(name = "WebRTCModule")
public class WebRTCModule extends ReactContextBaseJavaModule {
static final String TAG = WebRTCModule.class.getCanonicalName();
Expand Down
Loading