Class OggSpeexWriter

java.lang.Object
org.xiph.speex.AudioFileWriter
org.xiph.speex.OggSpeexWriter

public class OggSpeexWriter extends AudioFileWriter
Ogg Speex Writer
Version:
$Revision: 1.2 $
Author:
Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
  • Field Details

    • PACKETS_PER_OGG_PAGE

      public static final int PACKETS_PER_OGG_PAGE
      Number of packets in an Ogg page (must be less than 255)
      See Also:
    • out

      private OutputStream out
      The OutputStream
    • mode

      private int mode
      Defines the encoder mode (0=NB, 1=WB and 2-UWB).
    • sampleRate

      private int sampleRate
      Defines the sampling rate of the audio input.
    • channels

      private int channels
      Defines the number of channels of the audio input (1=mono, 2=stereo).
    • nframes

      private int nframes
      Defines the number of frames per speex packet.
    • vbr

      private boolean vbr
      Defines whether or not to use VBR (Variable Bit Rate).
    • size

      private int size
    • streamSerialNumber

      private int streamSerialNumber
      Ogg Stream Serial Number
    • dataBuffer

      private byte[] dataBuffer
      Data buffer
    • dataBufferPtr

      private int dataBufferPtr
      Pointer within the Data buffer
    • headerBuffer

      private byte[] headerBuffer
      Header buffer
    • headerBufferPtr

      private int headerBufferPtr
      Pointer within the Header buffer
    • pageCount

      private int pageCount
      Ogg Page count
    • packetCount

      private int packetCount
      Speex packet count within an Ogg Page
    • granulepos

      private long granulepos
      Absolute granule position (the number of audio samples from beginning of file to end of Ogg Packet).
  • Constructor Details

    • OggSpeexWriter

      public OggSpeexWriter()
      Builds an Ogg Speex Writer.
    • OggSpeexWriter

      public OggSpeexWriter(int mode, int sampleRate, int channels, int nframes, boolean vbr)
      Builds an Ogg Speex Writer.
      Parameters:
      mode - the mode of the encoder (0=NB, 1=WB, 2=UWB).
      sampleRate - the number of samples per second.
      channels - the number of audio channels (1=mono, 2=stereo, ...).
      nframes - the number of frames per speex packet.
      vbr -
  • Method Details

    • setFormat

      private void setFormat(int mode, int sampleRate, int channels, int nframes, boolean vbr)
      Sets the output format. Must be called before WriteHeader().
      Parameters:
      mode - the mode of the encoder (0=NB, 1=WB, 2=UWB).
      sampleRate - the number of samples per second.
      channels - the number of audio channels (1=mono, 2=stereo, ...).
      nframes - the number of frames per speex packet.
      vbr -
    • setSerialNumber

      public void setSerialNumber(int serialNumber)
      Sets the Stream Serial Number. Must not be changed mid stream.
      Parameters:
      serialNumber -
    • close

      public void close() throws IOException
      Closes the output file.
      Specified by:
      close in class AudioFileWriter
      Throws:
      IOException - if there was an exception closing the Audio Writer.
    • open

      public void open(File file) throws IOException
      Open the output file.
      Specified by:
      open in class AudioFileWriter
      Parameters:
      file - - file to open.
      Throws:
      IOException - if there was an exception opening the Audio Writer.
    • open

      public void open(String filename) throws IOException
      Open the output file.
      Specified by:
      open in class AudioFileWriter
      Parameters:
      filename - - file to open.
      Throws:
      IOException - if there was an exception opening the Audio Writer.
    • writeHeader

      public void writeHeader(String comment) throws IOException
      Writes the header pages that start the Ogg Speex file. Prepares file for data to be written.
      Specified by:
      writeHeader in class AudioFileWriter
      Parameters:
      comment - description to be included in the header.
      Throws:
      IOException
    • writePacket

      public void writePacket(byte[] data, int offset, int len) throws IOException
      Writes a packet of audio.
      Specified by:
      writePacket in class AudioFileWriter
      Parameters:
      data - - audio data.
      offset - - the offset from which to start reading the data.
      len - - the length of data to read.
      Throws:
      IOException
    • flush

      private void flush(boolean eos) throws IOException
      Flush the Ogg page out of the buffers into the file.
      Parameters:
      eos - - end of stream
      Throws:
      IOException