net.sf.fmj.media.multiplexer
Class AbstractStreamCopyMux

java.lang.Object
  extended by net.sf.fmj.media.AbstractControls
      extended by net.sf.fmj.media.AbstractPlugIn
          extended by net.sf.fmj.media.AbstractMultiplexer
              extended by net.sf.fmj.media.multiplexer.AbstractStreamCopyMux
All Implemented Interfaces:
Controls, Multiplexer, PlugIn
Direct Known Subclasses:
JavaSoundMux, RawMux

public abstract class AbstractStreamCopyMux
extends AbstractMultiplexer

Mux that can be implemented simply by copying streams. Override createInputStreamPushDataSource and create an overridden version of StreamCopyPushDataSource overriding write.

Author:
Ken Larson

Field Summary
 
Fields inherited from class net.sf.fmj.media.AbstractMultiplexer
inputFormats, numTracks, outputContentDescriptor
 
Fields inherited from interface javax.media.PlugIn
BUFFER_PROCESSED_FAILED, BUFFER_PROCESSED_OK, INPUT_BUFFER_NOT_CONSUMED, OUTPUT_BUFFER_NOT_FILLED, PLUGIN_TERMINATED
 
Constructor Summary
AbstractStreamCopyMux(ContentDescriptor contentDescriptor)
           
 
Method Summary
 void close()
           
protected  StreamCopyPushDataSource createInputStreamPushDataSource(ContentDescriptor outputContentDescriptor, int numTracks, java.io.InputStream[] inputStreams, Format[] inputFormats)
           
 DataSource getDataOutput()
           
abstract  Format[] getSupportedInputFormats()
           
 ContentDescriptor[] getSupportedOutputContentDescriptors(Format[] inputs)
           
 void open()
           
 int process(Buffer buffer, int trackID)
           
 int setNumTracks(int numTracks)
           
 
Methods inherited from class net.sf.fmj.media.AbstractMultiplexer
setContentDescriptor, setInputFormat
 
Methods inherited from class net.sf.fmj.media.AbstractPlugIn
getName, reset
 
Methods inherited from class net.sf.fmj.media.AbstractControls
addControl, getControl, getControls, removeControl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.media.PlugIn
getName, reset
 
Methods inherited from interface javax.media.Controls
getControl, getControls
 

Constructor Detail

AbstractStreamCopyMux

public AbstractStreamCopyMux(ContentDescriptor contentDescriptor)
Method Detail

getDataOutput

public DataSource getDataOutput()

getSupportedInputFormats

public abstract Format[] getSupportedInputFormats()

close

public void close()
Specified by:
close in interface PlugIn
Overrides:
close in class AbstractPlugIn

open

public void open()
          throws ResourceUnavailableException
Specified by:
open in interface PlugIn
Overrides:
open in class AbstractPlugIn
Throws:
ResourceUnavailableException

getSupportedOutputContentDescriptors

public ContentDescriptor[] getSupportedOutputContentDescriptors(Format[] inputs)

process

public int process(Buffer buffer,
                   int trackID)

setNumTracks

public int setNumTracks(int numTracks)
Specified by:
setNumTracks in interface Multiplexer
Overrides:
setNumTracks in class AbstractMultiplexer

createInputStreamPushDataSource

protected StreamCopyPushDataSource createInputStreamPushDataSource(ContentDescriptor outputContentDescriptor,
                                                                   int numTracks,
                                                                   java.io.InputStream[] inputStreams,
                                                                   Format[] inputFormats)