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