Skip to main content
Version: 2.x

Class MediaEncoder

Odin Capture Media

Declaration
public class MediaEncoder : IMedia, IDisposable

Implements:
OdinNative.Wrapper.Media.IMedia, System.IDisposable

Properties​

Id​

Media id

Declaration
public ulong Id { get; }

Samplerate​

Input samplerate

Declaration
public uint Samplerate { get; }

Stereo​

Input channel flag

Declaration
public bool Stereo { get; }

IsAlive​

Flag if the native encoder handle is still usable, e.g. false after the owning room was disposed

Declaration
public bool IsAlive { get; }

Pipeline​

Odin effect pipeline

Declaration
public MediaPipeline Pipeline { get; set; }

ChannelMask​

Channels the encoder currently has a position for and therefore transmits on

Declaration
public Utility.ChannelMask ChannelMask { get; }

Position​

Last position set with OdinNative.Wrapper.MediaEncoder.SetPosition(OdinNative.Core.Utility.ChannelMask,OdinNative.Core.Imports.NativeBindings.OdinPosition)

Declaration
public NativeBindings.OdinPosition Position { get; }

AddtionalData​

Declaration
public byte[] AddtionalData { get; }

GuardSilence​

Silence guard flag

Declaration
public bool GuardSilence { get; set; }

Parent​

Default value null indicates root or not set

Declaration
public IPeer Parent { get; set; }

Methods​

Create(uint, uint, bool)​

Create a new dangling input media.

Declaration
public static MediaEncoder Create(uint peerId, uint samplerate, bool stereo)
Returns​

OdinNative.Wrapper.MediaEncoder: input media

Parameters​
TypeNameDescription
System.UInt32peerIdpeer id
System.UInt32sampleratesamplerate
System.Booleanstereostereo flag

GetPipeline()​

Get native effect pipeline

Declaration
public MediaPipeline GetPipeline()
Returns​

OdinNative.Wrapper.MediaPipeline: managed effect pipeline

SetPosition(ChannelMask, OdinPosition)​

Set native position in channel

Declaration
public NativeBindings.OdinPosition SetPosition(Utility.ChannelMask mask, NativeBindings.OdinPosition position)
Returns​

OdinNative.Core.Imports.NativeBindings.OdinPosition: 3d position

Parameters​
TypeNameDescription
OdinNative.Core.Utility.ChannelMaskmaskchannels to set the position for
OdinNative.Core.Imports.NativeBindings.OdinPositionposition3d position

ClearPosition(ChannelMask)​

Clear native position in channel

Declaration
public bool ClearPosition(Utility.ChannelMask mask)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
OdinNative.Core.Utility.ChannelMaskmaskchannels to clear the position of

SetChannels(ChannelMask)​

Set active native channels

Declaration
public Utility.ChannelMask SetChannels(Utility.ChannelMask mask)
Returns​

OdinNative.Core.Utility.ChannelMask: channel mask

Parameters​
TypeName
OdinNative.Core.Utility.ChannelMaskmask

GetIsSilent()​

This reflects the internal silence detection state of the encoder, which updates as audio is processed

Declaration
public bool GetIsSilent()
Returns​

System.Boolean: Returns whether the encoder is currently processing silence

PopAll(ref ConcurrentStack<byte[]>)​

Pop all audio datagrams into the stack

Declaration
public bool PopAll(ref ConcurrentStack<byte[]> datagrams)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.Collections.Concurrent.ConcurrentStack<System.Byte[]>datagramsdatagram stack

Pop(out byte[])​

Pop one datagram from the media

Declaration
public NativeBindings.OdinError Pop(out byte[] datagram)
Returns​

OdinNative.Core.Imports.NativeBindings.OdinError: OdinNative.Core.Imports.NativeBindings.OdinError.ODIN_ERROR_SUCCESS/OdinNative.Core.Imports.NativeBindings.OdinError.ODIN_ERROR_NO_DATA as OK or error

Parameters​
TypeName
System.Byte[]datagram

Push(float[])​

Push samples to the media

Declaration
public NativeBindings.OdinError Push(float[] samples)
Returns​

OdinNative.Core.Imports.NativeBindings.OdinError: OdinNative.Core.Imports.NativeBindings.OdinError.ODIN_ERROR_SUCCESS as OK or error

Parameters​
TypeNameDescription
System.Single[]samplesaudio samples

Dispose(bool)​

Declaration
protected virtual void Dispose(bool disposing)
Parameters​
TypeName
System.Booleandisposing

Dispose()​

Free native media encoder

Declaration
public void Dispose()

Implements​