Class MediaStream<TIOutput, TIOutputCollection, TIInput, TIInputCollection, TIElement, TSource, TSink, TPipe, TTrack, TBranch, TFrame, TBuffer, TBufferCollection, TFormat, TFormatCollection>
A media stream.
Inheritance
Implements
Inherited Members
Namespace: FM.LiveSwitch
Assembly: FM.LiveSwitch.dll
Syntax
public abstract class MediaStream<TIOutput, TIOutputCollection, TIInput, TIInputCollection, TIElement, TSource, TSink, TPipe, TTrack, TBranch, TFrame, TBuffer, TBufferCollection, TFormat, TFormatCollection> : MediaStreamBase, IMediaOutput<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat>, IOutput<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat>, IMediaInput<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat>, IInput<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat>, IMediaElement, IElement, IMediaStream, IStream, ISynchronizableStream where TIOutput : class, IMediaOutput<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat>, TIElement where TIOutputCollection : IMediaOutputCollection<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat, TIOutputCollection> where TIInput : class, IMediaInput<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat>, TIElement where TIInputCollection : IMediaInputCollection<TIOutput, TIInput, TFrame, TBuffer, TBufferCollection, TFormat, TIInputCollection> where TIElement : IMediaElement where TSource : MediaSource<TIOutput, TIInput, TIInputCollection, TSource, TFrame, TBuffer, TBufferCollection, TFormat>, TIOutput where TSink : MediaSink<TIOutput, TIOutputCollection, TIInput, TSink, TFrame, TBuffer, TBufferCollection, TFormat>, TIInput where TPipe : MediaPipe<TIOutput, TIOutputCollection, TIInput, TIInputCollection, TPipe, TFrame, TBuffer, TBufferCollection, TFormat>, TIOutput, TIInput where TTrack : MediaTrack<TIOutput, TIOutputCollection, TIInput, TIInputCollection, TIElement, TSource, TSink, TPipe, TTrack, TBranch, TFrame, TBuffer, TBufferCollection, TFormat> where TBranch : MediaBranch<TIOutput, TIOutputCollection, TIInput, TIInputCollection, TIElement, TSource, TSink, TPipe, TTrack, TBranch, TFrame, TBuffer, TBufferCollection, TFormat>, TIElement where TFrame : MediaFrame<TBuffer, TBufferCollection, TFormat, TFrame> where TBuffer : MediaBuffer<TFormat, TBuffer> where TBufferCollection : MediaBufferCollection<TBuffer, TBufferCollection, TFormat> where TFormat : MediaFormat<TFormat> where TFormatCollection : MediaFormatCollection<TFormat, TFormatCollection>
Type Parameters
Name | Description |
---|---|
TIOutput | The type of the output interface. |
TIOutputCollection | The type of the output interface collection. |
TIInput | The type of the input interface. |
TIInputCollection | The type of the input interface collection. |
TIElement | The type of the element interface |
TSource | The type of the source. |
TSink | The type of the sink. |
TPipe | The type of the pipe. |
TTrack | The type of the track. |
TBranch | The type of the branch. |
TFrame | The type of the frame. |
TBuffer | The type of the buffer. |
TBufferCollection | The type of the buffer collection. |
TFormat | The type of the format. |
TFormatCollection | The type of the format collection. |
Constructors
MediaStream(StreamType, JitterConfig)
Initializes a new instance of the MediaStream<TIOutput, TIOutputCollection, TIInput, TIInputCollection, TIElement, TSource, TSink, TPipe, TTrack, TBranch, TFrame, TBuffer, TBufferCollection, TFormat, TFormatCollection> class.
Declaration
public MediaStream(StreamType type, JitterConfig jitterConfig)
Parameters
Type | Name | Description |
---|---|---|
StreamType | type | The type. |
JitterConfig | jitterConfig | The jitter configuration. |
Properties
AbsoluteSenderTimeDirection
Gets the current direction for the RTP Header Extension for Absolute Sender Time. See https://webrtc.org/experiments/rtp-hdrext/abs-send-time/ . If the remote capability has not yet been receieved, only local requirements are taken into consideration.
Declaration
public StreamDirection AbsoluteSenderTimeDirection { get; }
Property Value
Type | Description |
---|---|
StreamDirection |
AbsoluteSenderTimeLocalDirection
Gets the current local direction for the RTP Header Extension for Absolute Sender Time. See https://webrtc.org/experiments/rtp-hdrext/abs-send-time/ . If the remote capability has not yet been received, only local requirements are taken into consideration.
Declaration
public StreamDirection AbsoluteSenderTimeLocalDirection { get; }
Property Value
Type | Description |
---|---|
StreamDirection |
AbsoluteSenderTimeRemoteDirection
Gets the current remote direction for the RTP Header Extension for Absolute Sender Time. See https://webrtc.org/experiments/rtp-hdrext/abs-send-time/ . If the remote capability has not yet been receieved, only local requirements are taken into consideration.
Declaration
public StreamDirection AbsoluteSenderTimeRemoteDirection { get; }
Property Value
Type | Description |
---|---|
StreamDirection |
BandwidthAdaptationPolicy
Gets or sets bandwidth adapation policy for this stream.
Declaration
public BandwidthAdaptationPolicy BandwidthAdaptationPolicy { get; set; }
Property Value
Type | Description |
---|---|
BandwidthAdaptationPolicy |
CcmFirEnabled
Gets whether CCM FIRs are allowed.
Declaration
public bool CcmFirEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
CcmFirPolicy
Gets or sets the CCM FIR Policy.
Declaration
public CcmFirPolicy CcmFirPolicy { get; set; }
Property Value
Type | Description |
---|---|
CcmFirPolicy |
CcmLrrEnabled
Gets whether CCM LRRs are allowed.
Declaration
public bool CcmLrrEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
CcmLrrPolicy
Gets or sets the CCM LRR Policy.
Declaration
public CcmLrrPolicy CcmLrrPolicy { get; set; }
Property Value
Type | Description |
---|---|
CcmLrrPolicy |
CcmTmmbnEnabled
Gets whether CCM TMMBNs are allowed.
Declaration
public bool CcmTmmbnEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
CcmTmmbnPolicy
Gets or sets the CCM TMMBR Policy.
Declaration
public CcmTmmbnPolicy CcmTmmbnPolicy { get; set; }
Property Value
Type | Description |
---|---|
CcmTmmbnPolicy |
CcmTmmbrEnabled
Gets whether CCM TMMBRs are allowed.
Declaration
public bool CcmTmmbrEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
CcmTmmbrPolicy
Gets or sets the CCM TMMBR Policy.
Declaration
public CcmTmmbrPolicy CcmTmmbrPolicy { get; set; }
Property Value
Type | Description |
---|---|
CcmTmmbrPolicy |
Content
Gets the content descriptor.
Declaration
public string Content { get; }
Property Value
Type | Description |
---|---|
System.String |
ControlTransportInfo
Gets control transport information.
Declaration
public override TransportInfo ControlTransportInfo { get; }
Property Value
Type | Description |
---|---|
TransportInfo |
Overrides
DefaultLocalSynchronizationSource
Gets default local synchronization source (SSRC) associated with a local sender. If the local SDP offer or answer has not yet been set on the Connection, this will return -1. Please wait till the local description has been set on the Connection before accessing this value.
Declaration
public long DefaultLocalSynchronizationSource { get; }
Property Value
Type | Description |
---|---|
System.Int64 |
DisableAutomaticReports
Gets or sets a value indicating whether to disable automatic RTCP sender/receiver reports.
Declaration
public bool DisableAutomaticReports { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
DisabledInputFormats
Gets the disabled input formats.
Declaration
public TFormat[] DisabledInputFormats { get; }
Property Value
Type | Description |
---|---|
TFormat[] |
InjectionAllowed
Gets whether at least one frame has been successfully processed.
Declaration
protected bool InjectionAllowed { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Input
Gets the input.
Declaration
public TIOutput Input { get; }
Property Value
Type | Description |
---|---|
TIOutput |
InputDeactivated
Gets whether input is deactivated. Input is deactivated if the stream direction is unset, inactive, or recvonly.
Declaration
public bool InputDeactivated { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
InputFormat
Gets the current input format.
Declaration
public TFormat InputFormat { get; }
Property Value
Type | Description |
---|---|
TFormat |
InputFormats
Gets the available input formats.
Declaration
public TFormat[] InputFormats { get; }
Property Value
Type | Description |
---|---|
TFormat[] |
InputMaxOutputBitrate
Gets the sum of the bitrates from InputMaxOutputEncodings.
Declaration
public int InputMaxOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
InputMaxOutputEncodings
Gets the inputs' maximum allowed output encodings.
Declaration
public EncodingInfo[] InputMaxOutputEncodings { get; }
Property Value
Type | Description |
---|---|
EncodingInfo[] |
InputMinOutputBitrate
Gets the sum of the bitrates from InputMinOutputEncodings.
Declaration
public int InputMinOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
InputMinOutputEncodings
Gets the inputs' minimum allowed output encodings.
Declaration
public EncodingInfo[] InputMinOutputEncodings { get; }
Property Value
Type | Description |
---|---|
EncodingInfo[] |
InputMuted
Gets or sets whether the input track is muted.
Declaration
public override bool InputMuted { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
InputRtpStreamId
Gets or sets null to satisfy interface requirements.
Declaration
public string InputRtpStreamId { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Inputs
Gets the inputs.
Declaration
public TIOutput[] Inputs { get; }
Property Value
Type | Description |
---|---|
TIOutput[] |
InputSynchronizationDisabled
Gets or sets whether input synchronization is disabled.
Declaration
public bool InputSynchronizationDisabled { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
InputSynchronizationSource
Gets or sets -1 to satisfy interface requirements.
Declaration
public long InputSynchronizationSource { get; set; }
Property Value
Type | Description |
---|---|
System.Int64 |
InputSynchronizationSources
Gets the input synchronization sources.
Declaration
public long[] InputSynchronizationSources { get; }
Property Value
Type | Description |
---|---|
System.Int64[] |
InputTargetOutputBitrate
Gets the sum of the bitrates from InputTargetOutputEncodings.
Declaration
public int InputTargetOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
InputTargetOutputEncodings
Gets the inputs' target output encodings.
Declaration
public EncodingInfo[] InputTargetOutputEncodings { get; }
Property Value
Type | Description |
---|---|
EncodingInfo[] |
JitterConfig
Gets the jitter configuration.
Declaration
public JitterConfig JitterConfig { get; }
Property Value
Type | Description |
---|---|
JitterConfig |
LegacyReceiver
Gets or sets whether to use legacy receiver processing. Legacy receiver processing uses a fixed-size jitter buffer and processes forward error correction pre-jitter.
Declaration
public bool LegacyReceiver { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
LocalDescriptionMediaId
Gets or sets the local description media identifier. If not set, defaults to the LocalMedia identifier, if one exists.
Declaration
public string LocalDescriptionMediaId { get; set; }
Property Value
Type | Description |
---|---|
System.String |
LocalDescriptionTrackId
Gets or sets the local description track identifier. If not set, defaults to the LocalTrack identifier, if one exists.
Declaration
public string LocalDescriptionTrackId { get; set; }
Property Value
Type | Description |
---|---|
System.String |
LocalMedia
Gets or sets the local media, if one was specified.
Declaration
public LocalMedia LocalMedia { get; protected set; }
Property Value
Type | Description |
---|---|
LocalMedia |
LocalTrack
Gets or sets the local track from this media. Returns null if there are no tracks.
Declaration
public TTrack LocalTrack { get; protected set; }
Property Value
Type | Description |
---|---|
TTrack |
MaxInputBitrate
Gets the maximum allowed input bitrate, in kbps. A value of -1 indicates unset (no maximum).
Declaration
public virtual int MaxInputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
MaxInputEncoding
Gets the max input encoding.
Declaration
public virtual EncodingInfo MaxInputEncoding { get; }
Property Value
Type | Description |
---|---|
EncodingInfo |
MaxOutputBitrate
Gets the maximum allowed output bitrate, in kbps. A value of -1 indicates unset (no maximum).
Declaration
public virtual int MaxOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
MaxOutputEncoding
Gets the max output encoding.
Declaration
public virtual EncodingInfo MaxOutputEncoding { get; }
Property Value
Type | Description |
---|---|
EncodingInfo |
MaxReceiveBitrate
Gets or sets the maximum desired receive bitrate, in kbps.
Declaration
public override int MaxReceiveBitrate { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
Overrides
MinInputBitrate
Gets the minimum allowed input bitrate, in kbps. A value of -1 indicates unset (no minimum).
Declaration
public virtual int MinInputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
MinInputEncoding
Gets the min input encoding.
Declaration
public virtual EncodingInfo MinInputEncoding { get; }
Property Value
Type | Description |
---|---|
EncodingInfo |
MinOutputBitrate
Gets the minimum allowed output bitrate, in kbps. A value of -1 indicates unset (no minimum).
Declaration
public virtual int MinOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
MinOutputEncoding
Gets the min output encoding.
Declaration
public virtual EncodingInfo MinOutputEncoding { get; }
Property Value
Type | Description |
---|---|
EncodingInfo |
Multiplexed
Gets a value indicating whether Rtp and Rtcp components for this stream are multiplexed on the same port.
Declaration
public bool Multiplexed { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
MultiplexingSupported
Gets a value indicating whether so far negotiation with the peer indicates that Rtp and Rtcp component multiplexing on the same port is supported.
Declaration
public bool MultiplexingSupported { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
NackConfig
Gets Nack config.
Declaration
public NackConfig NackConfig { get; }
Property Value
Type | Description |
---|---|
NackConfig |
NackEnabled
Gets whether NACKs are allowed.
Declaration
public bool NackEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
NackPliEnabled
Gets whether NACK PLIs are allowed.
Declaration
public bool NackPliEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
NackPliPolicy
Gets or sets the NACK PLI Policy.
Declaration
public NackPliPolicy NackPliPolicy { get; set; }
Property Value
Type | Description |
---|---|
NackPliPolicy |
NackPolicy
Gets or sets the NACK Policy.
Declaration
public NackPolicy NackPolicy { get; set; }
Property Value
Type | Description |
---|---|
NackPolicy |
Output
Gets the output.
Declaration
public TIInput Output { get; }
Property Value
Type | Description |
---|---|
TIInput |
OutputDeactivated
Gets whether output is deactivated. Output is deactivated if the stream direction is unset, inactive, or sendonly.
Declaration
public bool OutputDeactivated { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OutputFormat
Gets or sets the output format.
Declaration
public TFormat OutputFormat { get; protected set; }
Property Value
Type | Description |
---|---|
TFormat |
OutputMaxInputBitrate
Gets the sum of the bitrates from OutputMaxInputEncodings.
Declaration
public int OutputMaxInputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
OutputMaxInputEncodings
Gets the outputs' maximum allowed input encodings.
Declaration
public EncodingInfo[] OutputMaxInputEncodings { get; }
Property Value
Type | Description |
---|---|
EncodingInfo[] |
OutputMinInputBitrate
Gets the sum of the bitrates from OutputMinInputEncodings.
Declaration
public int OutputMinInputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
OutputMinInputEncodings
Gets the outputs' minimum allowed input encodings.
Declaration
public EncodingInfo[] OutputMinInputEncodings { get; }
Property Value
Type | Description |
---|---|
EncodingInfo[] |
OutputMuted
Gets or sets whether the output track is muted.
Declaration
public override bool OutputMuted { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
OutputRtpStreamId
Gets null to satisfy interface requirements.
Declaration
public string OutputRtpStreamId { get; }
Property Value
Type | Description |
---|---|
System.String |
Outputs
Gets the outputs.
Declaration
public TIInput[] Outputs { get; }
Property Value
Type | Description |
---|---|
TIInput[] |
OutputSynchronizable
Gets whether output is synchronizable.
Declaration
public bool OutputSynchronizable { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OutputSynchronizationDisabled
Gets or sets whether output synchronization is disabled.
Declaration
public bool OutputSynchronizationDisabled { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
OutputSynchronizationSource
Gets -1 to satisfy interface requirements.
Declaration
public long OutputSynchronizationSource { get; }
Property Value
Type | Description |
---|---|
System.Int64 |
OutputSynchronizationSources
Gets the output synchronization sources.
Declaration
public long[] OutputSynchronizationSources { get; }
Property Value
Type | Description |
---|---|
System.Int64[] |
OverConstrained
Gets whether this stream is over-constrained. A stream is over-constrained if either it's input or output is over-constrained.
Declaration
public bool OverConstrained { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OverConstrainedBitrate
Gets whether the stream bitrate is over-constrained. A stream bitrate is over-constrained if the input bitrate or output bitrate is over-constrained.
Declaration
public bool OverConstrainedBitrate { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OverConstrainedInput
Gets whether the input is over-contrained. An input is over-constrained if it's input bitrate is over-contrained.
Declaration
public virtual bool OverConstrainedInput { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OverConstrainedInputBitrate
Gets whether the minimum allowed input bitrate exceeds the maximum allowed input bitrate.
Declaration
public bool OverConstrainedInputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OverConstrainedOutput
Gets whether the output is over-constrained. An output is over-constrained if it's output bitrate is over-contrained.
Declaration
public virtual bool OverConstrainedOutput { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
OverConstrainedOutputBitrate
Gets whether the minimum allowed output bitrate exceeds the maximum allowed output bitrate.
Declaration
public bool OverConstrainedOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Paused
Gets a value indicating whether this stream is paused.
Declaration
public bool Paused { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Persistent
Gets a value indicating whether this instance is persistent.
Always returns false
.
Declaration
public bool Persistent { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
PipelineJson
Gets the pipeline JSON with this as the central point.
Declaration
public string PipelineJson { get; }
Property Value
Type | Description |
---|---|
System.String |
PipelineJsonFromInput
Gets the pipeline JSON from an input.
Declaration
public string PipelineJsonFromInput { get; }
Property Value
Type | Description |
---|---|
System.String |
PipelineJsonFromOutput
Gets the pipeline JSON from an output.
Declaration
public string PipelineJsonFromOutput { get; }
Property Value
Type | Description |
---|---|
System.String |
ProcessFramePolicy
Gets or sets the ProcessFramePolicy for this media input.
Declaration
public ProcessFramePolicy ProcessFramePolicy { get; set; }
Property Value
Type | Description |
---|---|
ProcessFramePolicy |
RedFecConfig
Gets Fec Config.
Declaration
public RedFecConfig RedFecConfig { get; }
Property Value
Type | Description |
---|---|
RedFecConfig |
RedFecEnabled
Gets True if Red Fec is negotiated.
Declaration
public bool RedFecEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
RedFecPolicy
Gets or sets the Fec Policy.
Declaration
public RedFecPolicy RedFecPolicy { get; set; }
Property Value
Type | Description |
---|---|
RedFecPolicy |
RembEnabled
Gets True if goog-remb is negotiated.
Declaration
public bool RembEnabled { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
RembPolicy
Gets or sets the goog-remb policy.
Declaration
public RembPolicy RembPolicy { get; }
Property Value
Type | Description |
---|---|
RembPolicy |
RemoteDescriptionMediaId
Gets the remote description media identifier.
Declaration
public string RemoteDescriptionMediaId { get; }
Property Value
Type | Description |
---|---|
System.String |
RemoteDescriptionTrackId
Gets the remote description track identifier.
Declaration
public string RemoteDescriptionTrackId { get; }
Property Value
Type | Description |
---|---|
System.String |
RemoteEncoding
Gets or sets the remote encoding.
Declaration
public override EncodingInfo RemoteEncoding { get; set; }
Property Value
Type | Description |
---|---|
EncodingInfo |
Overrides
RemoteMedia
Gets or sets the remote media, if one was specified.
Declaration
public RemoteMedia RemoteMedia { get; protected set; }
Property Value
Type | Description |
---|---|
RemoteMedia |
RemoteTrack
Gets or sets the remote track, if one was specified.
Declaration
public TTrack RemoteTrack { get; protected set; }
Property Value
Type | Description |
---|---|
TTrack |
RtpTransportWideCCDirection
Gets the current direction for the RTP Header Extension for Transport-wide CC. See https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-transport-wide-cc-extensions-01 . If the remote capability has not yet been received, only local requirements are taken into consideration.
Declaration
public StreamDirection RtpTransportWideCCDirection { get; }
Property Value
Type | Description |
---|---|
StreamDirection |
RtpTransportWideCCLocalDirection
Gets the current local direction for the RTP Header Extension for Transport-wide CC. See https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-transport-wide-cc-extensions-01 . If the remote capability has not yet been received, only local requirements are taken into consideration.
Declaration
public StreamDirection RtpTransportWideCCLocalDirection { get; }
Property Value
Type | Description |
---|---|
StreamDirection |
RtpTransportWideCCRemoteDirection
Gets the remote local direction for the RTP Header Extension for Transport-wide CC. See https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-transport-wide-cc-extensions-01 .
Declaration
public StreamDirection RtpTransportWideCCRemoteDirection { get; }
Property Value
Type | Description |
---|---|
StreamDirection |
SimulcastMode
Gets or sets the simulcast mode.
Declaration
public override SimulcastMode SimulcastMode { get; set; }
Property Value
Type | Description |
---|---|
SimulcastMode |
Overrides
SynchronizeContext
Gets or sets the synchronize context.
Declaration
public SynchronizeContext SynchronizeContext { get; set; }
Property Value
Type | Description |
---|---|
SynchronizeContext |
Synchronizers
Gets all synchronizers in the stream output tracks.
Declaration
public ISynchronizer[] Synchronizers { get; }
Property Value
Type | Description |
---|---|
ISynchronizer[] |
SystemDelay
Gets or sets the system delay in ticks.
Declaration
public long SystemDelay { get; protected set; }
Property Value
Type | Description |
---|---|
System.Int64 |
TargetOutputBitrate
Gets the target output bitrate, in kbps. A value of -1 indicates unset (no target).
Declaration
public virtual int TargetOutputBitrate { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
TargetOutputEncoding
Gets the target output encoding.
Declaration
public virtual EncodingInfo TargetOutputEncoding { get; }
Property Value
Type | Description |
---|---|
EncodingInfo |
TransportInfo
Gets transport information.
Declaration
public override TransportInfo TransportInfo { get; }
Property Value
Type | Description |
---|---|
TransportInfo |
Overrides
Methods
AddInput(TIOutput)
Adds an input.
Declaration
public void AddInput(TIOutput input)
Parameters
Type | Name | Description |
---|---|---|
TIOutput | input | The input. |
AddInputs(TIOutput[])
Adds some inputs.
Declaration
public void AddInputs(TIOutput[] inputs)
Parameters
Type | Name | Description |
---|---|---|
TIOutput[] | inputs | The inputs. |
AddOutput(TIInput)
Adds an output.
Declaration
public void AddOutput(TIInput output)
Parameters
Type | Name | Description |
---|---|---|
TIInput | output | The output. |
AddOutputs(TIInput[])
Adds some outputs.
Declaration
public void AddOutputs(TIInput[] outputs)
Parameters
Type | Name | Description |
---|---|---|
TIInput[] | outputs | The outputs. |
ChangeInputFormat(TFormat)
Changes the current input format (switches codecs).
Declaration
public Future<object> ChangeInputFormat(TFormat inputFormat)
Parameters
Type | Name | Description |
---|---|---|
TFormat | inputFormat | The input format. |
Returns
Type | Description |
---|---|
Future<System.Object> |
CreateFormat(MapAttribute, FormatParametersAttribute)
Creates a format.
Declaration
protected abstract TFormat CreateFormat(MapAttribute attribute, FormatParametersAttribute formatParametersAttribute)
Parameters
Type | Name | Description |
---|---|---|
MapAttribute | attribute | The attribute. |
FormatParametersAttribute | formatParametersAttribute | The format parameters attribute. |
Returns
Type | Description |
---|---|
TFormat |
CreateFormat(String, Int32, String, Int32)
Creates a format.
Declaration
protected abstract TFormat CreateFormat(string name, int clockRate, string parameters, int payloadType)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The format name. |
System.Int32 | clockRate | The clock rate. |
System.String | parameters | The parameters. |
System.Int32 | payloadType | The payload type. |
Returns
Type | Description |
---|---|
TFormat |
CreateInputCollection(TIOutput)
Creates an input collection.
Declaration
protected abstract TIInputCollection CreateInputCollection(TIOutput output)
Parameters
Type | Name | Description |
---|---|---|
TIOutput | output | The output. |
Returns
Type | Description |
---|---|
TIInputCollection |
CreateMediaFormatCollection()
Creates a media format collection.
Declaration
protected abstract TFormatCollection CreateMediaFormatCollection()
Returns
Type | Description |
---|---|
TFormatCollection |
CreateOutputCollection(TIInput)
Creates an output collection.
Declaration
protected abstract TIOutputCollection CreateOutputCollection(TIInput input)
Parameters
Type | Name | Description |
---|---|---|
TIInput | input | The input. |
Returns
Type | Description |
---|---|
TIOutputCollection |
CreateRedFormat()
Creates a RED format.
Declaration
protected abstract TFormat CreateRedFormat()
Returns
Type | Description |
---|---|
TFormat |
CreateUlpFecFormat()
Creates a ulpfec format.
Declaration
protected abstract TFormat CreateUlpFecFormat()
Returns
Type | Description |
---|---|
TFormat |
Destroy()
Destroys this instance.
Declaration
public virtual bool Destroy()
Returns
Type | Description |
---|---|
System.Boolean |
DisableInputFormat(TFormat)
Disables an input format. This will trigger a codec switch if disabling the current input format. This may disable the stream
Declaration
public Future<object> DisableInputFormat(TFormat inputFormat)
Parameters
Type | Name | Description |
---|---|---|
TFormat | inputFormat | The input format. |
Returns
Type | Description |
---|---|
Future<System.Object> |
EnableInputFormat(TFormat)
Enables an input format. This will NOT trigger a codec switch.
Declaration
public Future<object> EnableInputFormat(TFormat inputFormat)
Parameters
Type | Name | Description |
---|---|---|
TFormat | inputFormat | The input format. |
Returns
Type | Description |
---|---|
Future<System.Object> |
FormatArrayFromList(List<TFormat>)
Creates a format array from a format list.
Declaration
protected abstract TFormat[] FormatArrayFromList(List<TFormat> formatList)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.List<TFormat> | formatList | The format list. |
Returns
Type | Description |
---|---|
TFormat[] |
GetCcmSequenceNumber()
Gets the FIR sequence number.
Declaration
public int GetCcmSequenceNumber()
Returns
Type | Description |
---|---|
System.Int32 |
GetInputSourceMuted(TIOutput)
Gets whether an input source is muted.
Declaration
protected abstract bool GetInputSourceMuted(TIOutput input)
Parameters
Type | Name | Description |
---|---|---|
TIOutput | input | The input. |
Returns
Type | Description |
---|---|
System.Boolean |
GetInputSourceMuted(TIOutput[])
Gets whether an input source is muted.
Declaration
protected bool GetInputSourceMuted(TIOutput[] inputs)
Parameters
Type | Name | Description |
---|---|---|
TIOutput[] | inputs | The inputs. |
Returns
Type | Description |
---|---|
System.Boolean |
GetLocalRtpStreamId(Int64)
Gets the local RTP stream identifier for a given local synchronization source.
Declaration
protected string GetLocalRtpStreamId(long localSynchronizationSource)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | localSynchronizationSource | The local synchronization source. |
Returns
Type | Description |
---|---|
System.String |
GetLocalSynchronizationSource(String)
Gets the local synchronization source for a given local RTP stream identifier.
Declaration
protected long GetLocalSynchronizationSource(string rtpStreamId)
Parameters
Type | Name | Description |
---|---|---|
System.String | rtpStreamId | The RTP stream identifier. |
Returns
Type | Description |
---|---|
System.Int64 |
GetOutputSinkMuted(TIInput)
Gets whether an output source is muted.
Declaration
protected abstract bool GetOutputSinkMuted(TIInput output)
Parameters
Type | Name | Description |
---|---|---|
TIInput | output | The output. |
Returns
Type | Description |
---|---|
System.Boolean |
GetOutputSinkMuted(TIInput[])
Gets whether an output sink is muted.
Declaration
protected bool GetOutputSinkMuted(TIInput[] outputs)
Parameters
Type | Name | Description |
---|---|---|
TIInput[] | outputs | The outputs. |
Returns
Type | Description |
---|---|
System.Boolean |
GetPipelineSystemDelay(TFormat)
Gets the total pipeline system delay in ticks for a given output format.
Declaration
public long GetPipelineSystemDelay(TFormat outputFormat)
Parameters
Type | Name | Description |
---|---|---|
TFormat | outputFormat | The output format. |
Returns
Type | Description |
---|---|
System.Int64 | The total pipeline system delay in ticks. |
GetRemoteRtpStreamId(Int64)
Gets the remote RTP stream identifier for a given remote synchronization source.
Declaration
protected string GetRemoteRtpStreamId(long remoteSynchronizationSource)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | remoteSynchronizationSource | The remote synchronization source. |
Returns
Type | Description |
---|---|
System.String |
GetRemoteSynchronizationSource(String)
Gets the remote synchronization source for a given remote RTP stream identifier.
Declaration
protected long GetRemoteSynchronizationSource(string rtpStreamId)
Parameters
Type | Name | Description |
---|---|---|
System.String | rtpStreamId | The RTP stream identifier. |
Returns
Type | Description |
---|---|
System.Int64 |
IncrementCcmSequenceNumber()
Increments the FIR sequence number.
Declaration
public void IncrementCcmSequenceNumber()
InputArrayFromList(List<TIInput>)
Creates an input array from an input list.
Declaration
protected abstract TIInput[] InputArrayFromList(List<TIInput> inputList)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.List<TIInput> | inputList | The input list. |
Returns
Type | Description |
---|---|
TIInput[] |
OutputArrayFromList(List<TIOutput>)
Creates an output array from an output list.
Declaration
protected abstract TIOutput[] OutputArrayFromList(List<TIOutput> outputList)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.List<TIOutput> | outputList | The output list. |
Returns
Type | Description |
---|---|
TIOutput[] |
PopulateInfo(MediaStreamInfo)
Populates the media stream info.
Declaration
protected override void PopulateInfo(MediaStreamInfo info)
Parameters
Type | Name | Description |
---|---|---|
MediaStreamInfo | info |
Overrides
ProcessBundledStateChanged(Boolean)
Processes bundled state change of this stream.
Declaration
protected override void ProcessBundledStateChanged(bool bundled)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | bundled |
Overrides
ProcessCachedSettings()
Processes cached settings.
Declaration
protected override void ProcessCachedSettings()
Overrides
ProcessControlFrame(MediaControlFrame)
Processes a control frame.
Declaration
public void ProcessControlFrame(MediaControlFrame controlFrame)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame | controlFrame | The control frame. |
ProcessControlFrameResponse(MediaControlFrame)
Processes a control frame response.
Declaration
public void ProcessControlFrameResponse(MediaControlFrame controlFrameResponse)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame | controlFrameResponse | The control frame response. |
ProcessControlFrameResponses(MediaControlFrame[])
Processes control frame responses.
Declaration
public void ProcessControlFrameResponses(MediaControlFrame[] controlFrameResponses)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame[] | controlFrameResponses | The control frame responses. |
ProcessControlFrames(MediaControlFrame[])
Processes control frames.
Declaration
public void ProcessControlFrames(MediaControlFrame[] controlFrames)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame[] | controlFrames | The control frames. |
ProcessFrame(TFrame)
Processes a frame.
Declaration
public virtual bool ProcessFrame(TFrame frame)
Parameters
Type | Name | Description |
---|---|---|
TFrame | frame | The frame. |
Returns
Type | Description |
---|---|
System.Boolean |
ProcessSdpContentAttribute(ContentAttribute, Boolean)
Processes an SDP content attribute.
Declaration
protected abstract void ProcessSdpContentAttribute(ContentAttribute sdpContentAttribute, bool isLocalDescription)
Parameters
Type | Name | Description |
---|---|---|
ContentAttribute | sdpContentAttribute | The SDP content attribute. |
System.Boolean | isLocalDescription | Whether the SDP content attribute comes from a local description. |
ProcessSdpMediaDescriptionFromInput(MediaDescription, Boolean, Boolean)
Processes a local SDP media description from an input.
Declaration
public Error ProcessSdpMediaDescriptionFromInput(MediaDescription mediaDescription, bool isOffer, bool isLocalDescription)
Parameters
Type | Name | Description |
---|---|---|
MediaDescription | mediaDescription | The media description. |
System.Boolean | isOffer | if set to |
System.Boolean | isLocalDescription | if set to |
Returns
Type | Description |
---|---|
Error |
ProcessSdpMediaDescriptionFromOutput(MediaDescription, Boolean, Boolean)
Processes a local SDP media description from an output.
Declaration
public Error ProcessSdpMediaDescriptionFromOutput(MediaDescription mediaDescription, bool isOffer, bool isLocalDescription)
Parameters
Type | Name | Description |
---|---|---|
MediaDescription | mediaDescription | The media description. |
System.Boolean | isOffer | if set to |
System.Boolean | isLocalDescription | if set to |
Returns
Type | Description |
---|---|
Error |
ProcessSinkStatsFromInput(MediaSinkStats)
Processes sink stats from an input.
Declaration
public void ProcessSinkStatsFromInput(MediaSinkStats sinkStats)
Parameters
Type | Name | Description |
---|---|---|
MediaSinkStats | sinkStats | The sink stats. |
ProcessSourceStatsFromOutput(MediaSourceStats)
Processes source stats from an output.
Declaration
public void ProcessSourceStatsFromOutput(MediaSourceStats sourceStats)
Parameters
Type | Name | Description |
---|---|---|
MediaSourceStats | sourceStats | The source stats. |
ProcessStateChange()
Processes a state change.
Declaration
protected override void ProcessStateChange()
Overrides
ProcessTrackStatsFromInput(MediaTrackStats)
Processes stats from an input.
Declaration
public void ProcessTrackStatsFromInput(MediaTrackStats trackStats)
Parameters
Type | Name | Description |
---|---|---|
MediaTrackStats | trackStats | The track stats. |
ProcessTrackStatsFromOutput(MediaTrackStats)
Processes stats from an output.
Declaration
public void ProcessTrackStatsFromOutput(MediaTrackStats trackStats)
Parameters
Type | Name | Description |
---|---|---|
MediaTrackStats | trackStats | The track stats. |
ProcessUpdateToMediaStreamIdentification(String)
Process update to the MediaDescription Identificiation.
Declaration
protected override void ProcessUpdateToMediaStreamIdentification(string oldValue)
Parameters
Type | Name | Description |
---|---|---|
System.String | oldValue |
Overrides
RaiseBitrateNotification(BitrateNotification)
Raises a bitrate notification to the remote track.
Declaration
public bool RaiseBitrateNotification(BitrateNotification bitrateNotification)
Parameters
Type | Name | Description |
---|---|---|
BitrateNotification | bitrateNotification | The bitrate notification. |
Returns
Type | Description |
---|---|
System.Boolean |
RaiseBitrateRequest(BitrateRequest)
Raises a bitrate request to the local track.
Declaration
public override bool RaiseBitrateRequest(BitrateRequest bitrateRequest)
Parameters
Type | Name | Description |
---|---|---|
BitrateRequest | bitrateRequest | The bitrate request. |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
RaiseControlFrame(MediaControlFrame)
Raises a control frame.
Declaration
protected void RaiseControlFrame(MediaControlFrame controlFrame)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame | controlFrame | The control frame. |
RaiseControlFrameResponse(MediaControlFrame)
Raises a control frame response.
Declaration
protected void RaiseControlFrameResponse(MediaControlFrame controlFrameResponse)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame | controlFrameResponse | The control frame response. |
RaiseControlFrameResponses(MediaControlFrame[])
Raises control frame responses.
Declaration
protected void RaiseControlFrameResponses(MediaControlFrame[] controlFrameResponses)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame[] | controlFrameResponses | The control frame responses. |
RaiseControlFrames(MediaControlFrame[])
Raises control frames.
Declaration
protected void RaiseControlFrames(MediaControlFrame[] controlFrames)
Parameters
Type | Name | Description |
---|---|---|
MediaControlFrame[] | controlFrames | The control frames. |
RaiseFrame(TFrame)
Raises a frame.
Declaration
protected virtual void RaiseFrame(TFrame frame)
Parameters
Type | Name | Description |
---|---|---|
TFrame | frame | The frame. |
RemoveInput(TIOutput)
Removes an input.
Declaration
public bool RemoveInput(TIOutput input)
Parameters
Type | Name | Description |
---|---|---|
TIOutput | input | The input. |
Returns
Type | Description |
---|---|
System.Boolean |
RemoveInputs()
Removes all inputs.
Declaration
public void RemoveInputs()
RemoveInputs(TIOutput[])
Removes some inputs.
Declaration
public void RemoveInputs(TIOutput[] inputs)
Parameters
Type | Name | Description |
---|---|---|
TIOutput[] | inputs | The inputs. |
RemoveOutput(TIInput)
Removes an output.
Declaration
public bool RemoveOutput(TIInput output)
Parameters
Type | Name | Description |
---|---|---|
TIInput | output | The output. |
Returns
Type | Description |
---|---|
System.Boolean |
RemoveOutputs()
Removes all outputs.
Declaration
public void RemoveOutputs()
RemoveOutputs(TIInput[])
Removes some outputs.
Declaration
public void RemoveOutputs(TIInput[] outputs)
Parameters
Type | Name | Description |
---|---|---|
TIInput[] | outputs | The outputs. |
SetInputSourceMuted(TIOutput, Boolean)
Sets whether an input source is muted.
Declaration
protected abstract void SetInputSourceMuted(TIOutput input, bool value)
Parameters
Type | Name | Description |
---|---|---|
TIOutput | input | The input. |
System.Boolean | value | The value. |
SetInputSourceMuted(TIOutput[], Boolean)
Sets whether an input source is muted.
Declaration
protected void SetInputSourceMuted(TIOutput[] inputs, bool value)
Parameters
Type | Name | Description |
---|---|---|
TIOutput[] | inputs | The inputs. |
System.Boolean | value | The value. |
SetOutputSinkMuted(TIInput, Boolean)
Sets whether an output source is muted.
Declaration
protected abstract void SetOutputSinkMuted(TIInput output, bool value)
Parameters
Type | Name | Description |
---|---|---|
TIInput | output | The output. |
System.Boolean | value | The value. |
SetOutputSinkMuted(TIInput[], Boolean)
Sets whether an output sink is muted.
Declaration
protected void SetOutputSinkMuted(TIInput[] outputs, bool value)
Parameters
Type | Name | Description |
---|---|---|
TIInput[] | outputs | The outputs. |
System.Boolean | value | The value. |
Synchronize(Boolean)
Initializes synchronization.
Declaration
public void Synchronize(bool master)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | master | Whether this is a master stream. |
Events
OnDiscardBitrateNotification
Raised when a bitrate notification is discarded due to policy restrictions or lack of support by the remote endpoint.
Declaration
public event Action1<BitrateNotification> OnDiscardBitrateNotification
Event Type
Type | Description |
---|---|
Action1<BitrateNotification> |
OnDiscardBitrateRequest
Raised when a bitrate notification message is discarded by the internal in-band messaging mechanism because the peer does not support bitrate notifications.
In this case, the bitrate notification needs to be transported out of band. LiveSwitch handles this internally by sending the message over Data Streams. No further action is required by application developers.
Use this event for for diagnostics and debugging.
Declaration
public event Action1<BitrateRequest> OnDiscardBitrateRequest
Event Type
Type | Description |
---|---|
Action1<BitrateRequest> |
OnDiscardOutboundControlFrame
Raised when an outbound control frame is discarded due to policy restrictions or lack of support by the remote endpoint.
Declaration
public event Action1<MediaControlFrame> OnDiscardOutboundControlFrame
Event Type
Type | Description |
---|---|
Action1<MediaControlFrame> |
OnMasterSynchronizeContextReady
Raised by master streams when the synchronize context is ready.
Declaration
public event Action1<SynchronizeContext> OnMasterSynchronizeContextReady
Event Type
Type | Description |
---|---|
Action1<SynchronizeContext> |
OnPausedChange
Raised when the Paused property changes state.
Declaration
public event Action0 OnPausedChange
Event Type
Type | Description |
---|---|
Action0 |
OnProcessControlFrameResponses
Raised when control frame responses are processed.
Declaration
public event Action1<MediaControlFrame[]> OnProcessControlFrameResponses
Event Type
Type | Description |
---|---|
Action1<MediaControlFrame[]> |
OnProcessControlFrames
Raised when control frames are processed.
Declaration
public event Action1<MediaControlFrame[]> OnProcessControlFrames
Event Type
Type | Description |
---|---|
Action1<MediaControlFrame[]> |
OnProcessedFrame
Raised when a frame has been processed.
Declaration
public event Action1<TFrame> OnProcessedFrame
Event Type
Type | Description |
---|---|
Action1<TFrame> |
OnProcessFrame
Raised when a frame is being processed.
Declaration
public event Action1<TFrame> OnProcessFrame
Event Type
Type | Description |
---|---|
Action1<TFrame> |
OnRaiseControlFrameResponses
Raised when control frame responses are raised.
Declaration
public event Action1<MediaControlFrame[]> OnRaiseControlFrameResponses
Event Type
Type | Description |
---|---|
Action1<MediaControlFrame[]> |
OnRaiseControlFrames
Raised when control frames are raised.
Declaration
public event Action1<MediaControlFrame[]> OnRaiseControlFrames
Event Type
Type | Description |
---|---|
Action1<MediaControlFrame[]> |
OnRaisedFrame
Raised when a frame has been raised.
Declaration
public event Action1<TFrame> OnRaisedFrame
Event Type
Type | Description |
---|---|
Action1<TFrame> |
OnRaiseFrame
Raised when a frame is being raised.
Declaration
public event Action1<TFrame> OnRaiseFrame
Event Type
Type | Description |
---|---|
Action1<TFrame> |
OnReceiveFrame
Raised when a frame is received.
Declaration
public event Action1<TFrame> OnReceiveFrame
Event Type
Type | Description |
---|---|
Action1<TFrame> |
OnSendFrame
Raised when a frame is sent.
Declaration
public event Action1<TFrame> OnSendFrame
Event Type
Type | Description |
---|---|
Action1<TFrame> |