com.jogamp.opengl.util.av

## Class AudioSink.AudioFormat

- java.lang.Object
- - com.jogamp.opengl.util.av.AudioSink.AudioFormat

- Enclosing interface:
    AudioSink

      public static class AudioSink.AudioFormat
      extends Object

  Specifies the linear audio PCM format.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `channelCount` Number of channels.
    `boolean` | `fixedP` Fixed or floating point values.
    `boolean` | `littleEndian`
    `boolean` | `planar` Planar or packed samples.
    `int` | `sampleRate` Sample rate in Hz (1/s).
    `int` | `sampleSize` Sample size in bits.
    `boolean` | `signed`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AudioSink.AudioFormat(int sampleRate, int sampleSize, int channelCount, boolean signed, boolean fixedP, boolean planar, boolean littleEndian)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getBytesDuration(int byteCount)` Returns the duration in milliseconds of the given byte count according to `sampleSize`, `channelCount` and `sampleRate`.
    `int` | `getBytesSampleCount(int byteCount)` Returns the sample count of given byte count according to the `sampleSize`, i.e.:
    `int` | `getDurationsByteSize(int millisecs)` Returns the byte size of the given milliseconds according to `sampleSize`, `channelCount` and `sampleRate`.
    `int` | `getFrameCount(int millisecs, float frameDuration)` Returns the rounded frame count of the given milliseconds and frame duration.
    `int` | `getSamplesByteCount(int sampleCount)` Returns the byte size of given sample count according to the `sampleSize`, i.e.:
    `float` | `getSamplesDuration(int sampleCount)` Returns the duration in milliseconds of the given sample count per frame and channel according to the `sampleRate`, i.e.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### sampleRate

          public final int sampleRate

      Sample rate in Hz (1/s).

    - #### sampleSize

          public final int sampleSize

      Sample size in bits.

    - #### channelCount

          public final int channelCount

      Number of channels.

    - #### signed

          public final boolean signed

    - #### fixedP

          public final boolean fixedP

      Fixed or floating point values. Floating point 'float' has `sampleSize` 32, 'double' has `sampleSize` 64.

    - #### planar

          public final boolean planar

      Planar or packed samples. If planar, each channel has their own data buffer. If packed, channel data is interleaved in one buffer.

    - #### littleEndian

          public final boolean littleEndian

  - ### Constructor Detail

    - #### AudioSink.AudioFormat

          public AudioSink.AudioFormat(int sampleRate,
                               int sampleSize,
                               int channelCount,
                               boolean signed,
                               boolean fixedP,
                               boolean planar,
                               boolean littleEndian)

      Parameters:
        `sampleRate` - sample rate in Hz (1/s)
        `sampleSize` - sample size in bits
        `channelCount` - number of channels
        `signed` - true if signed number, false for unsigned
        `fixedP` - true for fixed point value, false for unsigned floating point value with a sampleSize of 32 (float) or 64 (double)
        `planar` - true for planar data package (each channel in own data buffer), false for packed data channels interleaved in one buffer.
        `littleEndian` - true for little-endian, false for big endian

  - ### Method Detail

    - #### getDurationsByteSize

          public final int getDurationsByteSize(int millisecs)

      Returns the byte size of the given milliseconds according to `sampleSize`, `channelCount` and `sampleRate`.

      Time -> Byte Count

    - #### getBytesDuration

          public final int getBytesDuration(int byteCount)

      Returns the duration in milliseconds of the given byte count according to `sampleSize`, `channelCount` and `sampleRate`.

      Byte Count -> Time

    - #### getSamplesDuration

          public final float getSamplesDuration(int sampleCount)

      Returns the duration in milliseconds of the given sample count per frame and channel according to the `sampleRate`, i.e.

              ( 1000f * sampleCount ) / sampleRate

      Sample Count -> Time

      Parameters:
        `sampleCount` - sample count per frame and channel

    - #### getFrameCount

          public final int getFrameCount(int millisecs,
                          float frameDuration)

      Returns the rounded frame count of the given milliseconds and frame duration.

               Math.max( 1, millisecs / frameDuration + 0.5f )

      Note: `frameDuration` can be derived by sample count per frame and channel via `getSamplesDuration(int)`.

      Frame Time -> Frame Count

      Parameters:
        `millisecs` - time in milliseconds
        `frameDuration` - duration per frame in milliseconds.

    - #### getSamplesByteCount

          public final int getSamplesByteCount(int sampleCount)

      Returns the byte size of given sample count according to the `sampleSize`, i.e.:

            sampleCount * ( sampleSize / 8 )

      Note: To retrieve the byte size for all channels, you need to pre-multiply `sampleCount` with `channelCount`.

      Sample Count -> Byte Count

      Parameters:
        `sampleCount` - sample count

    - #### getBytesSampleCount

          public final int getBytesSampleCount(int byteCount)

      Returns the sample count of given byte count according to the `sampleSize`, i.e.:

            ( byteCount * 8 ) / sampleSize

      Note: If `byteCount` covers all channels and you request the sample size per channel, you need to divide the result by `sampleCount` by `channelCount`.

      Byte Count -> Sample Count

      Parameters:
        `byteCount` - number of bytes

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright 2010 JogAmp Community.