net.sf.fmj.filtergraph
Class Node

java.lang.Object
  extended by net.sf.fmj.filtergraph.Node
Direct Known Subclasses:
CodecNode, DemuxNode, MuxNode, RendererNode

public abstract class Node
extends java.lang.Object

Base class for all filter graph nodes.

Author:
Ken Larson

Field Summary
protected static java.util.logging.Logger logger
           
 
Constructor Summary
Node(PlugIn plugIn, int numInputPins, int numOutputPins)
          Subclass constructors must actually set the pins using setInputPin and setOutputPin.
 
Method Summary
 void addDestLink(Link n)
           
 void close()
           
abstract  Node duplicate()
           
 Link getDestLink(InputPin pin)
           
 Link getDestLink(int i)
           
 Link getDestLink(OutputPin pin)
           
abstract  Format getInputFormat()
           
 InputPin getInputPin(int index)
           
 InputPin getInputPinByTrack(int track)
           
 int getNumDestLinks()
           
 int getNumInputPins()
           
 int getNumOutputPins()
           
 Buffer getOutputBuffer(int i)
           
 OutputPin getOutputPin(int index)
           
 OutputPin getOutputPinByTrack(int track)
           
 PlugIn getPlugIn()
           
abstract  int getPlugInType()
           
 void open()
           
 void print(java.util.logging.Logger logger, java.lang.String prefix)
           
abstract  int process(Buffer input, int sourceTrackNumber, int destTrackNumber, int flags)
          sourceTrackNumber only used for demux, and destTrackNumber only used for mux.
protected  Node propagateDuplicate(Node result)
          Intended to be called by subclass implementations of duplicate, to duplicate the destinations.
 boolean removeDestLink(Link link)
           
protected  void setInputPin(int index, InputPin pin)
           
 void setOutputBuffer(int i, Buffer b)
           
protected  void setOutputPin(int index, OutputPin pin)
           
 void start()
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected static final java.util.logging.Logger logger
Constructor Detail

Node

public Node(PlugIn plugIn,
            int numInputPins,
            int numOutputPins)
Subclass constructors must actually set the pins using setInputPin and setOutputPin. this constructor only allocates the arrays.

Method Detail

getDestLink

public Link getDestLink(InputPin pin)

getDestLink

public Link getDestLink(OutputPin pin)

removeDestLink

public boolean removeDestLink(Link link)

getInputPin

public InputPin getInputPin(int index)

getInputPinByTrack

public InputPin getInputPinByTrack(int track)

getOutputPinByTrack

public OutputPin getOutputPinByTrack(int track)

getNumInputPins

public int getNumInputPins()

getOutputPin

public OutputPin getOutputPin(int index)

getNumOutputPins

public int getNumOutputPins()

setInputPin

protected void setInputPin(int index,
                           InputPin pin)

setOutputPin

protected void setOutputPin(int index,
                            OutputPin pin)

getNumDestLinks

public int getNumDestLinks()

getDestLink

public Link getDestLink(int i)

getOutputBuffer

public Buffer getOutputBuffer(int i)

setOutputBuffer

public void setOutputBuffer(int i,
                            Buffer b)

addDestLink

public void addDestLink(Link n)

duplicate

public abstract Node duplicate()

open

public void open()
          throws ResourceUnavailableException
Throws:
ResourceUnavailableException

close

public final void close()

process

public abstract int process(Buffer input,
                            int sourceTrackNumber,
                            int destTrackNumber,
                            int flags)
sourceTrackNumber only used for demux, and destTrackNumber only used for mux.


propagateDuplicate

protected Node propagateDuplicate(Node result)
Intended to be called by subclass implementations of duplicate, to duplicate the destinations.

Parameters:
result - FilterGraphNode that is to be returned by duplicate();

print

public void print(java.util.logging.Logger logger,
                  java.lang.String prefix)

getInputFormat

public abstract Format getInputFormat()

getPlugIn

public final PlugIn getPlugIn()

start

public void start()
           throws java.io.IOException
Throws:
java.io.IOException

stop

public void stop()

getPlugInType

public abstract int getPlugInType()