de.jarnbjo.jmf
Class OggJmfPage

java.lang.Object
  extended by de.jarnbjo.ogg.OggPage
      extended by de.jarnbjo.jmf.OggJmfPage

public class OggJmfPage
extends OggPage

An instance of this class represents an ogg page read from an ogg file or network stream. It has no public constructor, but instances can be created by the create methods, supplying a JMF stream or a RandomAccessFile which is positioned at the beginning of an Ogg page.

Furtheron, the class provides methods for accessing the raw page data, as well as data attributes like segmenting information, sequence number, stream serial number, chechsum and wether this page is the beginning or end of a logical bitstream (BOS, EOS) and if the page data starts with a continued packet or a fresh data packet.


Method Summary
static OggJmfPage create(PullSourceStream source)
          This method is called to read data from the current position in the specified channel and create a new OggPage instance based on the data read.
static OggJmfPage create(PullSourceStream source, boolean skipData)
           
 long getAbsoluteGranulePosition()
          Returns the absolute granule position of the last complete packet contained in this Ogg page, or -1 if the page contains a single packet, which is not completed on this page.
 byte[] getData()
           
 byte[] getHeader()
           
 int getPageCheckSum()
          Return the check sum of this ogg page.
 int getPageSequenceNumber()
          Return the sequnce number of this ogg page.
 int[] getSegmentLengths()
           
 int[] getSegmentOffsets()
           
 byte[] getSegmentTable()
           
 int getStreamSerialNumber()
          Returns the stream serial number of this ogg page.
 int getTotalLength()
           
 boolean isBos()
           
 boolean isContinued()
           
 boolean isEos()
           
 boolean isFresh()
           
 
Methods inherited from class de.jarnbjo.ogg.OggPage
create, create, create, create, create, create
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

create

public static OggJmfPage create(PullSourceStream source)
                         throws java.io.IOException,
                                EndOfOggStreamException,
                                OggFormatException
This method is called to read data from the current position in the specified channel and create a new OggPage instance based on the data read. If the parameter skipData is set to true, the actual page segments (page data) is skipped instead of read into memory. This mode is useful when scanning through an ogg file to find page boundaries and make a list of the granule positions of each page.

Parameters:
source - the byte channel from which the ogg page is generated
skipData - if set to true, the actual page data is not read into memory
Returns:
an ogg page created by reading data from the specified channel, starting at the current position
Throws:
FormatException - if the data read from the specified channel is not matching the specification for an ogg page
EndOfStreamException - if it is not possible to read an entire ogg page from the specified channel
java.io.IOException - if some other IO error is detected when reading from the channel
EndOfOggStreamException
OggFormatException
See Also:
create(ReadableByteChannel)

create

public static OggJmfPage create(PullSourceStream source,
                                boolean skipData)
                         throws java.io.IOException,
                                EndOfOggStreamException,
                                OggFormatException
Throws:
java.io.IOException
EndOfOggStreamException
OggFormatException

getAbsoluteGranulePosition

public long getAbsoluteGranulePosition()
Returns the absolute granule position of the last complete packet contained in this Ogg page, or -1 if the page contains a single packet, which is not completed on this page. For pages containing Vorbis data, this value is the sample index within the Vorbis stream. The Vorbis stream does not necessarily start with sample index 0.

Overrides:
getAbsoluteGranulePosition in class OggPage
Returns:
the absolute granule position of the last packet completed on this page

getStreamSerialNumber

public int getStreamSerialNumber()
Returns the stream serial number of this ogg page.

Overrides:
getStreamSerialNumber in class OggPage
Returns:
this page's serial number

getPageSequenceNumber

public int getPageSequenceNumber()
Return the sequnce number of this ogg page.

Overrides:
getPageSequenceNumber in class OggPage
Returns:
this page's sequence number

getPageCheckSum

public int getPageCheckSum()
Return the check sum of this ogg page.

Overrides:
getPageCheckSum in class OggPage
Returns:
this page's check sum

getTotalLength

public int getTotalLength()
Overrides:
getTotalLength in class OggPage
Returns:
the total number of bytes in the page data

getData

public byte[] getData()
Overrides:
getData in class OggPage
Returns:
a ByteBuffer containing the page data

getHeader

public byte[] getHeader()
Overrides:
getHeader in class OggPage

getSegmentTable

public byte[] getSegmentTable()
Overrides:
getSegmentTable in class OggPage

getSegmentOffsets

public int[] getSegmentOffsets()
Overrides:
getSegmentOffsets in class OggPage

getSegmentLengths

public int[] getSegmentLengths()
Overrides:
getSegmentLengths in class OggPage

isContinued

public boolean isContinued()
Overrides:
isContinued in class OggPage
Returns:
true if this page begins with a continued packet

isFresh

public boolean isFresh()
Overrides:
isFresh in class OggPage
Returns:
true if this page begins with a fresh packet

isBos

public boolean isBos()
Overrides:
isBos in class OggPage
Returns:
true if this page is the beginning of a logical stream

isEos

public boolean isEos()
Overrides:
isEos in class OggPage
Returns:
true if this page is the end of a logical stream


Copyright © 2011 Tor-Einar Jarnbjo. All Rights Reserved.