javaFlacEncoder
Class Subframe_Constant

java.lang.Object
  extended by javaFlacEncoder.Subframe
      extended by javaFlacEncoder.Subframe_Constant

public class Subframe_Constant
extends Subframe

Implements the Subframe abstract class, providing encoding support for the FLAC Constant Subframe.

Author:
Preston Lacey

Field Summary
static int DEBUG_LEV
          For debugging: Higher values equals greater output, generally by increments of 10.
static EncodingConfiguration.SubframeType type
          Subframe type supported by this implementation.
 
Fields inherited from class javaFlacEncoder.Subframe
ec, lastEncodedSize, sc
 
Constructor Summary
Subframe_Constant(StreamConfiguration sc)
          Constructor.
 
Method Summary
 int encodeSamples(int[] samples, int count, int start, int skip, EncodedElement data, int offset, int bitsPerSample)
          Encodes samples into the appropriate compressed format, saving the result in the given “data” EncodedElement list.
 boolean registerConfiguration(EncodingConfiguration ec)
          This method is used to set the encoding configuration.
 
Methods inherited from class javaFlacEncoder.Subframe
getEncodedSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG_LEV

public static int DEBUG_LEV
For debugging: Higher values equals greater output, generally by increments of 10.


type

public static final EncodingConfiguration.SubframeType type
Subframe type supported by this implementation.

Constructor Detail

Subframe_Constant

public Subframe_Constant(StreamConfiguration sc)
Constructor. Sets StreamConfiguration to use. If the StreamConfiguration must later be changed, a new Subframe object must be created as well.

Parameters:
sc - StreamConfiguration to use for encoding.
Method Detail

registerConfiguration

public boolean registerConfiguration(EncodingConfiguration ec)
This method is used to set the encoding configuration.

Overrides:
registerConfiguration in class Subframe
Parameters:
ec - encoding configuration to use.
Returns:
true if configuration was changed, false otherwise

encodeSamples

public int encodeSamples(int[] samples,
                         int count,
                         int start,
                         int skip,
                         EncodedElement data,
                         int offset,
                         int bitsPerSample)
Description copied from class: Subframe
Encodes samples into the appropriate compressed format, saving the result in the given “data” EncodedElement list. Encodes 'count' samples, from index 'start', to index 'start' times 'skip', where “skip” is the format that samples may be packed in an array. For example, 'samples' may include both left and right samples of a stereo stream, while this SubFrame is only encoding the 'right' channel(channel 2). Therefore, “skip” would equal 2, resulting in the valid indices being only those where “index mod 2 equals 1”.

Specified by:
encodeSamples in class Subframe
Parameters:
samples - the audio samples to encode. This array may contain samples for multiple channels, interleaved; only one of these channels is encoded by a subframe.
count - the number of samples to encode.
start - the index to start at in the array.
skip - the number of indices to skip between successive samples (for use when channels are interleaved in the given array).
data - the EncodedElement to attach encoded data to. Data in EncodedElement given is not altered. New data is attached starting with “data.getNext()”. If “data” already has a “next” set, it will be lost!
bitsPerSample - Number of bits per single-channel sample. This may differ from the StreamConfiguration's sample size, depending on the subframe used(i.e, the "side-channel" of a FLAC stream uses one extra bit compared to the input channels).
Returns:
number of encoded samples, or negative value indicating an error has occurred.