/*
* @(#)Renderer.java 1.16 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media;
import javax.media.format.*;
/**
* A <code>Renderer</code> is a media processing unit that renders input media
* to a pre-defined destination, such as the screen or system speaker. It has
* one input and no outputs--rendering is the final stage of the media processing pipeline.
* <p>
* If a <code>Renderer</code> implements the <code>Clock</code> interface,
* it can be used by a <code>Player</code> as
* the master time base for synchronization. In this case, the
* <code>Renderer</code> should update the media time and time-base time as
* it processes the media.
* @since JMF 2.0
*/
public interface Renderer extends javax.media.PlugIn {
/**
* Lists the input formats supported by this <CODE>Renderer</CODE>.
* @return An array of <CODE>Format</CODE> objects that represent
* the input formats supported by this <CODE>Renderer</CODE>.
*/
public Format [] getSupportedInputFormats();
/**
* Sets the <CODE>Format</CODE> of the input data.
* @return The <CODE>Format</CODE> that was set. This is typically the
* supported <CODE>Format</CODE> that most closely matches the specified <CODE>Format</CODE>.
* If possible, the format fields that were not specified are set to the preferred values
* in the returned <CODE>Format</CODE>. Returns null if the specified <CODE>Format</CODE> is
* not supported.
*/
public Format setInputFormat(Format format);
/**
* Initiates the rendering process. When <CODE>start</CODE> is called, the renderer begins
* rendering any data available in its internal buffers.
*/
public void start();
/**
* Halts the rendering process.
*/
public void stop();
/**
* Processes the data and renders it to the output device
* represented by this <CODE>Renderer</CODE>.
* @return <CODE>BUFFER_PROCESSED_OK</CODE> if the processing is successful. Other
* possible return codes are defined in <CODE>PlugIn</CODE>.
* @see PlugIn
*/
public int process(Buffer buffer);
}
|