org.mobicents.media.server.impl.resource.cnf
Class AudioMixer

java.lang.Object
  extended by org.mobicents.media.server.impl.BaseComponent
      extended by org.mobicents.media.server.impl.AbstractSink
          extended by org.mobicents.media.server.impl.AbstractSinkSet
              extended by org.mobicents.media.server.impl.resource.cnf.AudioMixer
All Implemented Interfaces:
java.io.Serializable, org.mobicents.media.Component, org.mobicents.media.MediaSink, org.mobicents.media.Outlet
Direct Known Subclasses:
AdaptiveAudioMixer, MaxPowerAudioMixer

public class AudioMixer
extends AbstractSinkSet
implements org.mobicents.media.Outlet

Author:
Oleg Kulikov
See Also:
Serialized Form

Field Summary
protected  int channelCount
           
protected static org.mobicents.media.Format[] formats
           
protected  byte[][] frames
           
protected static org.mobicents.media.format.AudioFormat LINEAR
           
protected  MixerOutput mixerOutput
           
protected  int packetPeriod
           
protected  int packetSize
           
 
Fields inherited from class org.mobicents.media.server.impl.AbstractSink
logger, otherParty
 
Fields inherited from class org.mobicents.media.server.impl.BaseComponent
format
 
Constructor Summary
AudioMixer(java.lang.String name)
          Creates a new instance of AudioMixer.
 
Method Summary
 short[] byteToShortArray(byte[] input)
          Converts inner byte representation of the signal into 16bit per sample array
 void connect(org.mobicents.media.MediaSink sink)
           
 AbstractSink createSink(org.mobicents.media.MediaSource otherParty)
           
 void destroySink(AbstractSink sink)
           
 void disconnect(org.mobicents.media.MediaSink sink)
           
 void evolve(org.mobicents.media.Buffer buffer, long timestamp)
          (Non Java-doc).
 org.mobicents.media.Format[] getFormats()
          (Non Java-doc.)
 org.mobicents.media.MediaSource getOutput()
          (Non Java-doc.)
protected  void init()
          Initializes audio mixer.
 boolean isAcceptable(org.mobicents.media.Format fmt)
          (Non Java-doc.)
 byte[] mix(byte[][] frames)
          Mixes input packets.
 void onMediaTransfer(org.mobicents.media.Buffer buffer)
          (Non Java-doc.)
 void setConnection(org.mobicents.media.server.spi.Connection connection)
          (Non Java-doc.)
 void setEndpoint(org.mobicents.media.server.spi.Endpoint endpoint)
          (Non Java-doc.)
 void start()
          (Non Java-doc).
 void stop()
          (Non Java-doc).
 
Methods inherited from class org.mobicents.media.server.impl.AbstractSinkSet
connect, disconnect, getActiveSinkCount, getStreams, isMultipleConnectionsAllowed
 
Methods inherited from class org.mobicents.media.server.impl.AbstractSink
assignPreffered, connect, disconnect, failed, getBytesReceived, getInterface, getPacketsReceived, getPreffered, isConnected, isStarted, receive, resetStats, selectPreffered, started, stopped
 
Methods inherited from class org.mobicents.media.server.impl.BaseComponent
addListener, getConnection, getEndpoint, getFormat, getId, getName, removeListener, sendEvent, subset, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mobicents.media.Component
addListener, getConnection, getEndpoint, getFormat, getId, getInterface, getName, removeListener, resetStats
 
Methods inherited from interface org.mobicents.media.MediaSink
connect, disconnect, getBytesReceived, getPacketsReceived, isConnected, isStarted, receive
 

Field Detail

LINEAR

protected static final org.mobicents.media.format.AudioFormat LINEAR

formats

protected static final org.mobicents.media.Format[] formats

packetSize

protected int packetSize

packetPeriod

protected int packetPeriod

mixerOutput

protected MixerOutput mixerOutput

channelCount

protected int channelCount

frames

protected byte[][] frames
Constructor Detail

AudioMixer

public AudioMixer(java.lang.String name)
Creates a new instance of AudioMixer.

Parameters:
packetPeriod - packetization period in milliseconds.
fmt - format of the output stream.
Method Detail

init

protected void init()
Initializes audio mixer.

Throws:
javax.media.format.UnsupportedFormatException

getOutput

public org.mobicents.media.MediaSource getOutput()
(Non Java-doc.)

Specified by:
getOutput in interface org.mobicents.media.Outlet
See Also:
Outlet.getOutput().

start

public void start()
Description copied from class: AbstractSink
(Non Java-doc).

Specified by:
start in interface org.mobicents.media.MediaSink
Overrides:
start in class AbstractSink
See Also:
MediaSink.start().

stop

public void stop()
Description copied from class: AbstractSink
(Non Java-doc).

Specified by:
stop in interface org.mobicents.media.MediaSink
Overrides:
stop in class AbstractSink
See Also:
MediaSink.stop().

setEndpoint

public void setEndpoint(org.mobicents.media.server.spi.Endpoint endpoint)
Description copied from class: BaseComponent
(Non Java-doc.)

Specified by:
setEndpoint in interface org.mobicents.media.Component
Overrides:
setEndpoint in class BaseComponent
See Also:
Component.setEndpoint(Endpoint).

setConnection

public void setConnection(org.mobicents.media.server.spi.Connection connection)
Description copied from class: BaseComponent
(Non Java-doc.)

Specified by:
setConnection in interface org.mobicents.media.Component
Overrides:
setConnection in class BaseComponent
See Also:
org.mobicents.media.Component#setConnection().

byteToShortArray

public short[] byteToShortArray(byte[] input)
Converts inner byte representation of the signal into 16bit per sample array

Parameters:
input - the array where sample takes two elements.
Returns:
array where sample takes one element.

mix

public byte[] mix(byte[][] frames)
Mixes input packets.

Parameters:
input - collection of arras of samples of same length
Returns:
array of result array of samples.

evolve

public void evolve(org.mobicents.media.Buffer buffer,
                   long timestamp)
(Non Java-doc).

See Also:
AbstractSource.evolve(org.mobicents.media.Buffer, long).

isAcceptable

public boolean isAcceptable(org.mobicents.media.Format fmt)
(Non Java-doc.)

See Also:
org.mobicents.media.MediaSink#isAcceptable(org.mobicents.media.Format)

onMediaTransfer

public void onMediaTransfer(org.mobicents.media.Buffer buffer)
(Non Java-doc.)

Specified by:
onMediaTransfer in class AbstractSink
Parameters:
buffer - the new portion of media data.
See Also:
AbstractSink.onMediaTransfer(org.mobicents.media.Buffer)

getFormats

public org.mobicents.media.Format[] getFormats()
(Non Java-doc.)

Specified by:
getFormats in interface org.mobicents.media.MediaSink
See Also:
MediaSink.getFormats()

connect

public void connect(org.mobicents.media.MediaSink sink)
Specified by:
connect in interface org.mobicents.media.Outlet

disconnect

public void disconnect(org.mobicents.media.MediaSink sink)
Specified by:
disconnect in interface org.mobicents.media.Outlet

createSink

public AbstractSink createSink(org.mobicents.media.MediaSource otherParty)
Specified by:
createSink in class AbstractSinkSet

destroySink

public void destroySink(AbstractSink sink)
Specified by:
destroySink in class AbstractSinkSet


Copyright © 2010. All Rights Reserved.