net.sf.fmj.media.multiplexer
Class AbstractInputStreamMux

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.AbstractInputStreamMux
All Implemented Interfaces:
Controls, Multiplexer, PlugIn
Direct Known Subclasses:
MultipartMixedReplaceMux

public abstract class AbstractInputStreamMux
extends AbstractMultiplexer

An abstract Multiplexer which may be used as a base class for multiplexers which need to simply write something to an output stream as each buffer comes in.

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
AbstractInputStreamMux(ContentDescriptor contentDescriptor)
           
 
Method Summary
 void close()
           
protected  InputStreamPushDataSource createInputStreamPushDataSource(ContentDescriptor outputContentDescriptor, int numTracks, java.io.InputStream[] inputStreams, Format[] inputFormats)
           
protected  void doProcess(Buffer buffer, int trackID, java.io.OutputStream os)
           
 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

AbstractInputStreamMux

public AbstractInputStreamMux(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)

doProcess

protected void doProcess(Buffer buffer,
                         int trackID,
                         java.io.OutputStream os)
                  throws java.io.IOException
Throws:
java.io.IOException

setNumTracks

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

createInputStreamPushDataSource

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