Copyright 2012-04-26 Werner Randelshofer

org.monte.media.converter
Class FrameRateConverter

java.lang.Object
  extended by org.monte.media.AbstractCodec
      extended by org.monte.media.AbstractVideoCodec
          extended by org.monte.media.converter.FrameRateConverter
All Implemented Interfaces:
Codec

public class FrameRateConverter
extends AbstractVideoCodec

This codec converts frames from one frame rate into another.

Makes frames longer if the output time is behind the input time. Drops frames if the output time runs away from the input time.

The output of the converter has a variable frame rate but it may still contain identical frames. Thus an additional conversion step with FFRtoVFRConverter or VFRtoFFRConverter is needed.

This codec is needed when the input source has a different frame rate than the output sink.

Version:
$Id: FrameRateConverter.java 142 2012-01-12 22:14:09Z werner $
Author:
Werner Randelshofer

Field Summary
 
Fields inherited from class org.monte.media.AbstractCodec
inputFormat, inputFormats, name, outputFormat, outputFormats
 
Fields inherited from interface org.monte.media.Codec
CODEC_FAILED, CODEC_INPUT_NOT_CONSUMED, CODEC_OK, CODEC_OUTPUT_NOT_FILLED
 
Constructor Summary
FrameRateConverter()
           
 
Method Summary
 Format[] getOutputFormats(Format input)
          Lists all of the output formats that this codec can generate with the provided input format.
 int process(Buffer in, Buffer out)
          Performs the media processing defined by this codec.
 void reset()
          Empty implementation of the reset method.
 Format setOutputFormat(Format f)
          Sets the output format.
 
Methods inherited from class org.monte.media.AbstractVideoCodec
copyImage, getARGB32, getBufferedImage, getIndexed8, getRGB15, getRGB16, getRGB24, writeInt24, writeInt24LE, writeInts24, writeInts24LE
 
Methods inherited from class org.monte.media.AbstractCodec
getInputFormat, getInputFormats, getName, getOutputFormat, setInputFormat, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameRateConverter

public FrameRateConverter()
Method Detail

getOutputFormats

public Format[] getOutputFormats(Format input)
Description copied from interface: Codec
Lists all of the output formats that this codec can generate with the provided input format. If the input format is null, returns all supported output formats.

Specified by:
getOutputFormats in interface Codec
Overrides:
getOutputFormats in class AbstractCodec

setOutputFormat

public Format setOutputFormat(Format f)
Description copied from interface: Codec
Sets the output format. Returns the format that was actually set. This is the closest format that the Codec supports. Returns null if the specified format is not supported and no reasonable match could be found.

Specified by:
setOutputFormat in interface Codec
Overrides:
setOutputFormat in class AbstractCodec

reset

public void reset()
Description copied from class: AbstractCodec
Empty implementation of the reset method. Don't call super.

Specified by:
reset in interface Codec
Overrides:
reset in class AbstractCodec

process

public int process(Buffer in,
                   Buffer out)
Description copied from interface: Codec
Performs the media processing defined by this codec.

Copies the data from the input buffer into the output buffer.

Returns:
A combination of processing flags.

Copyright 2012-04-26 Werner Randelshofer