Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.monte.media.imgseq
Class ImageSequenceWriter

    java.lang.Object
      org.monte.media.imgseq.ImageSequenceWriter

All Implemented Interfaces:
  MovieWriter, Multiplexer

    public class ImageSequenceWriter

extends java.lang.Object
implements MovieWriter

`ImageSequenceWriter`.

Version:
  1.0 2011-04-20 Created.
Author:
  Werner Randelshofer

Constructor Summary
`ImageSequenceWriter()`

Method Summary
`int` | `addTrack(Format format)` Adds a track to the writer for a suggested input format.
`int` | `addVideoTrack(java.io.File dir, java.lang.String filenameFormatter, int width, int height)` Adds a video track.
`void` | `close()` Closes the writer.
`Rational` | `getDuration(int track)` Returns the sampleDuration of the track in seconds.
`Format` | `getFileFormat()` Returns the file format.
`Format` | `getFormat(int track)` Returns the media format of the specified track.
`int` | `getTrackCount()` Returns the number of tracks.
`boolean` | `isDataLimitReached()` Returns true if the limit for media data has been reached.
`boolean` | `isVFRSupported()`
`void` | `write(int track, Buffer buf)` Writes a sample into the specified track.
`void` | `write(int track, java.awt.image.BufferedImage image, long duration)`
`void` | `writeSample(int track, byte[] data, int off, int len, long duration, boolean isSync)`
`void` | `writeSamples(int track, int sampleCount, byte[] data, int off, int len, long sampleDuration, boolean isSync)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ImageSequenceWriter

    public ImageSequenceWriter()

Method Detail

### addTrack

    public int addTrack(Format format)
                 throws java.io.IOException

  Description copied from interface: `MovieWriter`
  Adds a track to the writer for a suggested input format.

  The format should at least specify the desired `FormatKeys.MediaType`. The actual input format is a refined version of the suggested format. For example, if a MovieWriter only supports fixed frame rate video, then the MovieWriter will extend the format with that information.

  If the suggested input format is not compatible, then an IOException is thrown. For example, if a MovieWriter only supports fixed frame rate video, but a format with variable frame rate was requested.

  Specified by:
    `addTrack` in interface `MovieWriter`
  Parameters:
    `format` - The desired input format of the track. The actual input format may be a refined version of the specified format.
  Returns:
    The track number.
  Throws:
    `java.io.IOException`

### getFileFormat

    public Format getFileFormat()
                         throws java.io.IOException

  Description copied from interface: `MovieWriter`
  Returns the file format.

  Specified by:
    `getFileFormat` in interface `MovieWriter`
  Throws:
    `java.io.IOException`

### getTrackCount

    public int getTrackCount()

  Description copied from interface: `MovieWriter`
  Returns the number of tracks.

  Specified by:
    `getTrackCount` in interface `MovieWriter`

### getFormat

    public Format getFormat(int track)

  Description copied from interface: `MovieWriter`
  Returns the media format of the specified track. This is a refined version of the format that was requested when the track was added. See `MovieWriter.addTrack(org.monte.media.Format)`.

  Specified by:
    `getFormat` in interface `MovieWriter`
  Parameters:
    `track` - Track number.
  Returns:
    The media format of the track.

### addVideoTrack

    public int addVideoTrack(java.io.File dir,
                             java.lang.String filenameFormatter,
                             int width,
                             int height)

  Adds a video track.

  Parameters:
    `dir` - The output directory.
    `filenameFormatter` - a format string for a filename with a number, for example "frame_%d0000$.png";
    `width` - the image width
    `height` - the image height
  Returns:
    Returns the track index.
  Throws:
    `java.lang.IllegalArgumentException` - if the width or the height is smaller than 1.

### write

    public void write(int track,
                      java.awt.image.BufferedImage image,
                      long duration)
               throws java.io.IOException

  Throws:
    `java.io.IOException`

### write

    public void write(int track,
                      Buffer buf)
               throws java.io.IOException

  Description copied from interface: `MovieWriter`
  Writes a sample into the specified track. Does nothing if the discard-flag in the buffer is set to true.

  Specified by:
    `write` in interface `MovieWriter`
  Specified by:
    `write` in interface `Multiplexer`
  Parameters:
    `track` - The track number.
    `buf` - The buffer containing the sample data.
  Throws:
    `java.io.IOException`

### writeSample

    public void writeSample(int track,
                            byte[] data,
                            int off,
                            int len,
                            long duration,
                            boolean isSync)
                     throws java.io.IOException

  Throws:
    `java.io.IOException`

### writeSamples

    public void writeSamples(int track,
                             int sampleCount,
                             byte[] data,
                             int off,
                             int len,
                             long sampleDuration,
                             boolean isSync)
                      throws java.io.IOException

  Throws:
    `java.io.IOException`

### close

    public void close()
               throws java.io.IOException

  Description copied from interface: `MovieWriter`
  Closes the writer.

  Specified by:
    `close` in interface `MovieWriter`
  Specified by:
    `close` in interface `Multiplexer`
  Throws:
    `java.io.IOException`

### isVFRSupported

    public boolean isVFRSupported()

### isDataLimitReached

    public boolean isDataLimitReached()

  Description copied from interface: `MovieWriter`
  Returns true if the limit for media data has been reached. If this limit is reached, no more samples should be added to the movie.

  This limit is imposed by data structures of the movie file which will overflow if more samples are added to the movie.

  FIXME - Maybe replace by getCapacity():long.

  Specified by:
    `isDataLimitReached` in interface `MovieWriter`

### getDuration

    public Rational getDuration(int track)

  Returns the sampleDuration of the track in seconds.

  Specified by:
    `getDuration` in interface `MovieWriter`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright 2012-04-26 Werner Randelshofer
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD