Class RIFFPrimitivesInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.monte.media.riff.RIFFPrimitivesInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class RIFFPrimitivesInputStream extends FilterInputStream
A RIFF primitives input stream lets an application read primitive data types in the Microsoft Resource Interfache File Format (RIFF) format from an underlying input stream.

Reference: AVI RIFF File Reference http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/htm/avirifffilereference.asp

Author:
Werner Randelshofer
  • Field Summary

    Fields inherited from class java.io.FilterInputStream

    in
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Align to an even byte position in the input stream.
    long
    Get the current read position within the file (as seen by this input stream filter).
    void
    mark(int readlimit)
    Marks the input stream.
    int
    Reads one byte.
    int
    read(byte[] b, int offset, int length)
    Reads a sequence of bytes.
    int
    Read 4 bytes from the input stream and interpret them as a four byte character code.
    Read 4 bytes from the input stream and interpret them as a four byte character code.
    int
    readFully(byte[] b, int offset, int length)
    Reads a sequence of bytes.
    int
    Read 4 bytes from the input stream and interpret them as a 32 Bit signed LONG value.
    int
    Read 1 byte from the input stream and interpret them as an 8 Bit unsigned UBYTE value.
    long
    Read 4 Bytes from the input Stream and interpret them as an unsigned Integer value of type ULONG.
    int
    Read 2 bytes from the input stream and interpret them as a 16 Bit unsigned UWORD value.
    short
    Read 2 bytes from the input stream and interpret them as a 16 Bit signed WORD value.
    void
    Repositions the stream at the previously marked position.
    long
    skip(long n)
    Skips over and discards n bytes of data from this input stream.
    void
    skipFully(long n)
    Skips over and discards n bytes of data from this input stream.

    Methods inherited from class java.io.FilterInputStream

    available, close, markSupported, read

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RIFFPrimitivesInputStream

      public RIFFPrimitivesInputStream(InputStream in)
      Creates a new instance.
      Parameters:
      in - the input stream.
  • Method Details

    • readUBYTE

      public int readUBYTE() throws IOException
      Read 1 byte from the input stream and interpret them as an 8 Bit unsigned UBYTE value.
      Throws:
      IOException
    • readWORD

      public short readWORD() throws IOException
      Read 2 bytes from the input stream and interpret them as a 16 Bit signed WORD value.
      Throws:
      IOException
    • readUWORD

      public int readUWORD() throws IOException
      Read 2 bytes from the input stream and interpret them as a 16 Bit unsigned UWORD value.
      Throws:
      IOException
    • readLONG

      public int readLONG() throws IOException
      Read 4 bytes from the input stream and interpret them as a 32 Bit signed LONG value.
      Throws:
      IOException
    • readFourCC

      public int readFourCC() throws IOException
      Read 4 bytes from the input stream and interpret them as a four byte character code.

      Cited from Referenced "AVI RIFF File Reference": "A FOURCC (four-character code) is a 32-bit unsigned integer created by concatenating four ASCII characters. For example, the FOURCC 'abcd' is represented on a Little-Endian system as 0x64636261. FOURCCs can contain space characters, so ' abc' is a valid FOURCC. The AVI file format uses FOURCC codes to identify stream types, data chunks, index entries, and other information."

      Throws:
      IOException
    • readFourCCString

      public String readFourCCString() throws IOException
      Read 4 bytes from the input stream and interpret them as a four byte character code.

      Cited from Referenced "AVI RIFF File Reference": "A FOURCC (four-character code) is a 32-bit unsigned integer created by concatenating four ASCII characters. For example, the FOURCC 'abcd' is represented on a Little-Endian system as 0x64636261. FOURCCs can contain space characters, so ' abc' is a valid FOURCC. The AVI file format uses FOURCC codes to identify stream types, data chunks, index entries, and other information."

      Throws:
      IOException
    • readULONG

      public long readULONG() throws IOException
      Read 4 Bytes from the input Stream and interpret them as an unsigned Integer value of type ULONG.
      Throws:
      IOException
    • align

      public void align() throws IOException
      Align to an even byte position in the input stream. This will skip one byte in the stream if the current read position is not even.
      Throws:
      IOException
    • getScan

      public long getScan()
      Get the current read position within the file (as seen by this input stream filter).
    • read

      public int read() throws IOException
      Reads one byte.
      Overrides:
      read in class FilterInputStream
      Throws:
      IOException
    • readFully

      public int readFully(byte[] b, int offset, int length) throws IOException
      Reads a sequence of bytes.
      Throws:
      IOException
    • read

      public int read(byte[] b, int offset, int length) throws IOException
      Reads a sequence of bytes.
      Overrides:
      read in class FilterInputStream
      Throws:
      IOException
    • mark

      public void mark(int readlimit)
      Marks the input stream.
      Overrides:
      mark in class FilterInputStream
      Parameters:
      readlimit - The maximum limit of bytes that can be read before the mark position becomes invalid.
    • reset

      public void reset() throws IOException
      Repositions the stream at the previously marked position.
      Overrides:
      reset in class FilterInputStream
      Throws:
      IOException - If the stream has not been marked or if the mark has been invalidated.
    • skip

      public long skip(long n) throws IOException
      Skips over and discards n bytes of data from this input stream. This skip method tries to skip the provided number of bytes.
      Overrides:
      skip in class FilterInputStream
      Parameters:
      n - the number of bytes to be skipped.
      Throws:
      IOException - if this input stream does not support seek or if some other I/O error occured.
    • skipFully

      public void skipFully(long n) throws IOException
      Skips over and discards n bytes of data from this input stream. Throws
      Parameters:
      n - the number of bytes to be skipped.
      Throws:
      EOFException - if this input stream reaches the end before skipping all the bytes.
      IOException