WebRTC Video Chat 1.1.4
Loading...
Searching...
No Matches
Byn.Awrtc Namespace Reference

Classes

class  AudioFrames
 Contains buffer with several audio samples. More...
 
class  AudioFramesUpdateEventArgs
 New audio frames received. More...
 
class  AWebRtcCall
 Abstract base call class. Used for shared functionality between all platforms. More...
 
class  BufferedFrame
 A raw video frame of a webcam. References to these objects will be reused after the next call to ICall.Update! Do not keep references for longer! More...
 
class  ByteArrayBuffer
 This class is used to wrap a byte[] of any size and use it as a fixed size buffer. Main goal is to reuse byte[] objects multiple times as the automatic garbage collection of byte[] can cause unity games to stall or reduce framerate. More...
 
class  CallAcceptedEventArgs
 Event notices the user that a new call was accepted. The property ConnectionId can be used to distinguish messages / video frames of this particular user in conference calls. More...
 
class  CallEndedEventArgs
 Another Call object ended the connection. More...
 
class  CallEventArgs
 Base class of all call event args. More...
 
class  ConnectingEventArgs
 Event returned when the Call attempts to connect to another peer. More...
 
class  ConnectionFailedEventArgs
 Returns information about a connection that failed to be established. More...
 
struct  ConnectionId
 Connection id identifies one specific endpoint in a IBaseNetwork. More...
 
class  DataMessageEventArgs
 Event for a received data message. Contains the sent byte[] and indication if it was sent using the reliable or unreliable channel. More...
 
class  DefaultValues
 TODO: Will be removed soon. Used to keep global configuration values in the past.
 
class  ErrorEventArgs
 Error events contain a error message and an error type to automatically handle the error. More...
 
class  ErrorInfo
 In development. Don't use yet this class will change! More...
 
class  FrameUpdateEventArgs
 New video frame received. More...
 
interface  IAwrtcFactory
 Factory to create new Call objects. More...
 
interface  IBasicNetwork
 Used to represent a network interface that can allow incoming connections or connect to another network. More...
 
interface  ICall
 Main interface for platform independent video calls. More...
 
class  IceServer
 Represents an ice server entry. More...
 
interface  IConnectionEvent
 Interface for events related to a specific connection id. More...
 
interface  IDirectMemoryFrame
 Interface for frames that support accessing the memort directly via pointers. More...
 
interface  IFrame
 General interface to access frames. All platforms will at least support this interface using their default settings. More...
 
interface  IMediaNetwork
 WebRtc network that allows access to video / audio functionality. More...
 
interface  INetwork
 Interface to a network that doesn't enforce storing any states. More...
 
interface  IVideoInput
 This interface provides a cross-platform API (WebGL+native) to forward custom image data to WebRTC. More...
 
interface  IWebRtcNetwork
 This will allow more detailed access to webrtc for different platforms. Not yet implemented. More...
 
class  ListeningStoppedEvent
 Confirmation that listening has stopped and no new incoming connections are allowed. This is triggered on 1 to 1 calls once a direct connection was established or as result of StopListening. More...
 
class  LocalNetwork
 LocalNetwork. Simulate the IBasicNetwork locally in a single applicaiton. More...
 
class  MediaConfig
 Media related configuration for ICall and IMediaNetwork. More...
 
class  MediaDevice
 Not yet widely used. TODO: This should replace selecting video devices only by name to better handle several devices with the same name + better match the MediaDevice API in browsers. More...
 
interface  MessageDataBuffer
 This interface is used to return binary message data. More...
 
class  MessageDataBufferExt
 Helper to add convinience methods to MessageDataBuffer interface.
 
class  MessageEventArgs
 Text message from other peer received. More...
 
class  NetworkConfig
 Contains information about how to setup webrtc. SignalingUrl must be set otherwise connections won't be possible. You should also at least add a single stun server to IceServers if you want to be able to connect to devices outside your local LAN / WIFI. More...
 
struct  NetworkEvent
 Contains information about events received by the network. More...
 
interface  RawFrame
 Obosolete. Will be replaced with IFrame. It is used as a parent interface for IFrame at the moment to make it easier for the users to move their code. More...
 
class  RtcEvent
 Base class uses for events specific to WebRTC peer connections. More...
 
class  RtcEventArgs
 Delivers lower level WebRTC events to via the CallEventHandler. Note these events might be undocumented, platform specific or experimental. More...
 
class  SLog
 Logger used in the Byn namespace. Use SetLogger to log custom messages and implement your own filter. Object is the source of the log and string contains a list of tags related to the message to make filtering easier.
 
class  SLogger
 Adds a prefix to log messages to show the relationship between objects doing the logging. More...
 
class  StatsEvent
 For now just wraps around a string containing the statistics as json. More...
 
class  WaitForIncomingCallEventArgs
 Event notifies the call is waiting for incoming connections. More...
 

Enumerations

enum  ListeningState { Inactive , RequestingAddress , Listening }
 State of the component that is listening for incoming connections. More...
 
enum  MediaConfigState { Configuring , Configured }
 State of the local media configuration. More...
 
enum  CallEventType {
  Invalid = 0 , WaitForIncomingCall = 1 , CallAccepted = 2 , CallEnded = 3 ,
  ConnectionFailed = 6 , ListeningFailed = 7 , ListeningStopped = 11 , ConfigurationComplete = 8 ,
  ConfigurationFailed = 9 , FrameUpdate = 4 , Message = 5 , DataMessage = 10 ,
  AudioFrames = 11 , Connecting = 12 , RtcEvent = 20
}
 Type of the event. More...
 
enum  MediaConfigurationState : byte {
  Invalid = 0 , NoConfiguration = 1 , InProgress = 2 , Successful = 3 ,
  Failed = 4
}
 Used to identify the state of the local media configuration. More...
 
enum  VideoInputFormat { BGRA = 1 , ABGR = 2 }
 Pixel formats used as video input. More...
 
enum  NetEventType : byte {
  Invalid = 0 , UnreliableMessageReceived = 1 , ReliableMessageReceived = 2 , ServerInitialized = 3 ,
  ServerInitFailed = 4 , ServerClosed = 5 , NewConnection = 6 , ConnectionFailed = 7 ,
  Disconnected = 8 , FatalError = 100 , Warning = 101 , Log = 102 ,
  ReservedStart = 200 , MetaVersion = 201 , MetaHeartbeat = 202
}
 Type of the received network event. More...
 
enum  NetEventDataType : byte { Null = 0 , ByteArray = 1 , UTF16String = 2 }
 Byte in the raw messages that indicate the content. This will be removed again in the future after the native side properly supports encoded strings. More...
 
enum  FramePixelFormat { Invalid = 0 , ABGR , I420p , Native }
 Only ABGR format is supported everywhere so far. More...
 

Functions

delegate void CallEventHandler (object sender, CallEventArgs args)
 Delegate to receive call events.
 

Enumeration Type Documentation

◆ CallEventType

Type of the event.

Enumerator
Invalid 

Used if the event value wasn't initialized.

WaitForIncomingCall 

The call object is successfully connected to the server waiting for another user to connect.

CallAccepted 

A call was accepted.

CallEnded 

The call ended.

ConnectionFailed 

Connection failed. Might be due to an server, network error or the address didn't exist Using ErrorEventArgs.

ListeningFailed 

Listening failed. Address might be in use or due to server/network error Using ErrorEventArgs.

ListeningStopped 

Confirmation by the server that listening has stopped.

ConfigurationComplete 

Event triggered after the local media was successfully configured. If requested the call object will have access to the users camera and/or audio now and the local camera frames can be received in events.

ConfigurationFailed 

Configuration failed. This happens if the configuration requested features the system doesn't support e.g. no camera, camera doesn't support the requested resolution or the user didn't allow the website to access the camera/microphone in WebGL mode.

FrameUpdate 

A new video frame arrived.

Message 

Text message arrived.

DataMessage 

Reliable or unreliable data msg arrived.

AudioFrames 

Event containing raw audio data.

Connecting 

Event triggered when the call is connecting to another peer.

RtcEvent 

WebRTC specific events.

◆ FramePixelFormat

Only ABGR format is supported everywhere so far.

Enumerator
Invalid 

No pixel format set.

ABGR 

byte order R G B A as hex integer 0xAABBGGRR (hence the name)

Default format for all platforms due to WebGL specific restrictions. Format can be copied into a texture or processed directly. Corresponds to the Color32 struct in Unity and RGBA32 Texture2D. Compatible to browsers Canvas.getImageData and putImageData.

I420p 

Used as faster CPU based output format. This format is not supported on the render side though and needs processing before using as texture It is structured like this e.g. for a 4x4 image Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y U U U U V V V V.

or restructured for easier use in Textures: Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y U U V V U U V V

Native 

Used as a place holder for an output as GPU based texture. Output will need special treatment before use.

◆ ListeningState

State of the component that is listening for incoming connections.

Enumerator
Inactive 

No incoming connections are accepted.

RequestingAddress 

In the process of requesting an address from the server.

Listening 

Accepting incoming connections.

◆ MediaConfigState

State of the local media configuration.

Enumerator
Configuring 

In process of accessing the local media devices.

Configured 

Either local media is successfully used or no media is used at all.

◆ MediaConfigurationState

Used to identify the state of the local media configuration.

Enumerator
Invalid 

Invalid / not initialized.

NoConfiguration 

Not yet configured.

InProgress 

Configuration process running. In browser mode this state is active while the user sees a window to allow access / choose video and audio device.

Successful 

Configuration process finished and local video/audio can be received and sent across network.

Failed 

User denied access or video/audio device missing or did not satisfy the requirements set by MediaConfig.

◆ NetEventDataType

Byte in the raw messages that indicate the content. This will be removed again in the future after the native side properly supports encoded strings.

Enumerator
Null 

No data / invalid.

ByteArray 

leading 32 bit byte length + byte array

UTF16String 

leading 32 bit length (in utf16 chunks) + UTF 16

◆ NetEventType

Type of the received network event.

Enumerator
Invalid 

Should never happen. Indicates an error / failed to initialize properly.

UnreliableMessageReceived 

Used for UDP style messages.

ReliableMessageReceived 

Used for TCP style messages.

ServerInitialized 

confirmation that the server was started. other people will be able to connect

ServerInitFailed 

server couldn't be started

ServerClosed 

server was closed. no new incoming connections

NewConnection 

new incoming or outgoing connection established

ConnectionFailed 

outgoing connection failed

Disconnected 

a connection was disconnected

FatalError 

not yet used. Is suppose to be used for errors that indicate the system that returned it stopped working. (e.g. buffer overflow)

Warning 

not yet used

Log 

not yet used

ReservedStart 

This value and higher are reserved for other uses. Should never get to the user and should be filtered out.

MetaVersion 

Reserved. Used by protocols that forward NetworkEvents.

MetaHeartbeat 

Reserved. Used by protocols that forward NetworkEvents.

◆ VideoInputFormat

Pixel formats used as video input.

Enumerator
BGRA 

As integer 0xBBGGRRAA As bytes A R G B Corresponds to Unity's render texture format ARGB32.

ABGR 

As integer 0xAABBGGRR As bytes R G B A Does not correspond to any of Unity's render formats but TextureFormat.RGBA32 Same as default input format FramePixelFormat.

Function Documentation

◆ CallEventHandler()

delegate void Byn.Awrtc.CallEventHandler ( object sender,
CallEventArgs args )

Delegate to receive call events.

Parameters
senderThe call object sending the event
argsevent args