Package org.webrtc

Class PeerConnectionFactory

java.lang.Object
org.webrtc.PeerConnectionFactory

public class PeerConnectionFactory extends Object
Java wrapper for a C++ PeerConnectionFactoryInterface. Main entry point to the PeerConnection API for clients.
  • Field Details

  • Constructor Details

    • PeerConnectionFactory

      PeerConnectionFactory(long nativeFactory)
  • Method Details

    • builder

      public static PeerConnectionFactory.Builder builder()
    • initialize

      public static void initialize(PeerConnectionFactory.InitializationOptions options)
      Loads and initializes WebRTC. This must be called at least once before creating a PeerConnectionFactory. Replaces all the old initialization methods. Must not be called while a PeerConnectionFactory is alive.
    • checkInitializeHasBeenCalled

      private static void checkInitializeHasBeenCalled()
    • initializeInternalTracer

      private static void initializeInternalTracer()
    • shutdownInternalTracer

      public static void shutdownInternalTracer()
    • initializeFieldTrials

      @Deprecated public static void initializeFieldTrials(String fieldTrialsInitString)
      Deprecated.
    • fieldTrialsFindFullName

      public static String fieldTrialsFindFullName(String name)
    • startInternalTracingCapture

      public static boolean startInternalTracingCapture(String tracingFilename)
    • stopInternalTracingCapture

      public static void stopInternalTracingCapture()
    • createPeerConnectionInternal

      @Nullable PeerConnection createPeerConnectionInternal(PeerConnection.RTCConfiguration rtcConfig, MediaConstraints constraints, PeerConnection.Observer observer, SSLCertificateVerifier sslCertificateVerifier)
      Internal helper function to pass the parameters down into the native JNI bridge.
    • createPeerConnection

      @Nullable @Deprecated public PeerConnection createPeerConnection(PeerConnection.RTCConfiguration rtcConfig, MediaConstraints constraints, PeerConnection.Observer observer)
      Deprecated.
      Deprecated. PeerConnection constraints are deprecated. Supply values in rtcConfig struct instead and use the method without constraints in the signature.
    • createPeerConnection

      @Nullable @Deprecated public PeerConnection createPeerConnection(List<PeerConnection.IceServer> iceServers, MediaConstraints constraints, PeerConnection.Observer observer)
      Deprecated.
      Deprecated. PeerConnection constraints are deprecated. Supply values in rtcConfig struct instead and use the method without constraints in the signature.
    • createPeerConnection

      @Nullable public PeerConnection createPeerConnection(List<PeerConnection.IceServer> iceServers, PeerConnection.Observer observer)
    • createPeerConnection

      @Nullable public PeerConnection createPeerConnection(PeerConnection.RTCConfiguration rtcConfig, PeerConnection.Observer observer)
    • createPeerConnection

      @Nullable public PeerConnection createPeerConnection(PeerConnection.RTCConfiguration rtcConfig, PeerConnectionDependencies dependencies)
    • createLocalMediaStream

      public MediaStream createLocalMediaStream(String label)
    • createVideoSource

      public VideoSource createVideoSource(boolean isScreencast, boolean alignTimestamps)
      Create video source with given parameters. If alignTimestamps is false, the caller is responsible for aligning the frame timestamps to rtc::TimeNanos(). This can be used to achieve higher accuracy if there is a big delay between frame creation and frames being delivered to the returned video source. If alignTimestamps is true, timestamps will be aligned to rtc::TimeNanos() when they arrive to the returned video source.
    • createVideoSource

      public VideoSource createVideoSource(boolean isScreencast)
      Same as above with alignTimestamps set to true.
      See Also:
    • createVideoTrack

      public VideoTrack createVideoTrack(String id, VideoSource source)
    • createAudioSource

      public AudioSource createAudioSource(MediaConstraints constraints)
    • createAudioTrack

      public AudioTrack createAudioTrack(String id, AudioSource source)
    • startAecDump

      public boolean startAecDump(int file_descriptor, int filesize_limit_bytes)
    • stopAecDump

      public void stopAecDump()
    • dispose

      public void dispose()
    • getNativePeerConnectionFactory

      public long getNativePeerConnectionFactory()
      Returns a pointer to the native webrtc::PeerConnectionFactoryInterface.
    • getNativeOwnedFactoryAndThreads

      public long getNativeOwnedFactoryAndThreads()
      Returns a pointer to the native OwnedFactoryAndThreads object
    • checkPeerConnectionFactoryExists

      private void checkPeerConnectionFactoryExists()
    • printStackTrace

      private static void printStackTrace(@Nullable PeerConnectionFactory.ThreadInfo threadInfo, boolean printNativeStackTrace)
    • printStackTraces

      @Deprecated public static void printStackTraces()
      Deprecated.
      Deprecated, use non-static version instead.
    • printInternalStackTraces

      public void printInternalStackTraces(boolean printNativeStackTraces)
      Print the Java stack traces for the critical threads used by PeerConnectionFactory, namely; signaling thread, worker thread, and network thread. If printNativeStackTraces is true, also attempt to print the C++ stack traces for these threads.
    • nativeInitializeAndroidGlobals

      private static void nativeInitializeAndroidGlobals()
    • nativeInitializeFieldTrials

      private static void nativeInitializeFieldTrials(String fieldTrialsInitString)
    • nativeFindFieldTrialsFullName

      private static String nativeFindFieldTrialsFullName(String name)
    • nativeInitializeInternalTracer

      private static void nativeInitializeInternalTracer()
    • nativeShutdownInternalTracer

      private static void nativeShutdownInternalTracer()
    • nativeStartInternalTracingCapture

      private static boolean nativeStartInternalTracingCapture(String tracingFilename)
    • nativeStopInternalTracingCapture

      private static void nativeStopInternalTracingCapture()
    • nativeCreatePeerConnectionFactory

      private static PeerConnectionFactory nativeCreatePeerConnectionFactory(Object context, PeerConnectionFactory.Options options, long nativeAudioDeviceModule, long audioEncoderFactory, long audioDecoderFactory, VideoEncoderFactory encoderFactory, VideoDecoderFactory decoderFactory, long nativeAudioProcessor, long nativeFecControllerFactory, long nativeNetworkControllerFactory, long nativeNetworkStatePredictorFactory, long neteqFactory)
    • nativeCreatePeerConnection

      private static long nativeCreatePeerConnection(long factory, PeerConnection.RTCConfiguration rtcConfig, MediaConstraints constraints, long nativeObserver, SSLCertificateVerifier sslCertificateVerifier)
    • nativeCreateLocalMediaStream

      private static long nativeCreateLocalMediaStream(long factory, String label)
    • nativeCreateVideoSource

      private static long nativeCreateVideoSource(long factory, boolean is_screencast, boolean alignTimestamps)
    • nativeCreateVideoTrack

      private static long nativeCreateVideoTrack(long factory, String id, long nativeVideoSource)
    • nativeCreateAudioSource

      private static long nativeCreateAudioSource(long factory, MediaConstraints constraints)
    • nativeCreateAudioTrack

      private static long nativeCreateAudioTrack(long factory, String id, long nativeSource)
    • nativeStartAecDump

      private static boolean nativeStartAecDump(long factory, int file_descriptor, int filesize_limit_bytes)
    • nativeStopAecDump

      private static void nativeStopAecDump(long factory)
    • nativeFreeFactory

      private static void nativeFreeFactory(long factory)
    • nativeGetNativePeerConnectionFactory

      private static long nativeGetNativePeerConnectionFactory(long factory)
    • nativeInjectLoggable

      private static void nativeInjectLoggable(JNILogging jniLogging, int severity)
    • nativeDeleteLoggable

      private static void nativeDeleteLoggable()
    • nativePrintStackTrace

      private static void nativePrintStackTrace(int tid)