All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sheinbergon.aac.jna.structure.CoderConfig Maven / Gradle / Ivy

package org.sheinbergon.aac.jna.structure;

import com.sun.jna.Structure;
import lombok.ToString;
import org.sheinbergon.aac.jna.util.JNAUtil;

import java.util.List;

/**
 * Maps to CODER_CONFIG struct in @see fdk-aac/libSYS/include/FDK_audio.h
 */
public class CoderConfig extends Structure {

    private final static List FIELD_ORDER = JNAUtil.structureFieldOrder(CoderConfig.class);

    /**
     * Audio Object Type (AOT).
     */
    public int aot;
    /**
     * Extension Audio Object Type (SBR).
     */
    public int extAOT;
    /**
     * Channel mode.
     */
    public int channelMode;
    /**
     * Sampling rate.
     */
    public int samplingRate;
    /**
     * Extended samplerate (SBR).
     */
    public int extSamplingRate;
    /**
     * Average bitRate.
     */
    public int bitRate;
    /**
     * Number of PCM samples per codec frame and audio channel.
     */
    public int samplesPerFrame;
    /**
     * Number of audio channels.
     */
    public int noChannels;
    public int bitsFrame;
    /**
     * Amount of encoder subframes. 1 means no subframing.
     */
    public int nSubFrames;
    /**
     * The number of the sub-frames which are grouped and transmitted in a super-frame (BSAC).
     */
    public int BSACnumOfSubFrame;
    /**
     * The average length of the large-step layers in bytes (BSAC).
     */
    public int BSAClayerLength;
    /**
     * flags
     */
    public int flags;
    /**
     * Matrix mixdown index to put into PCE. Default value 0 means no mixdown coefficient,
     * valid values are 1-4 which correspond to matrix_mixdown_idx 0-3.
     */
    public byte matrixMixdownA;
    /**
     * Frame period for sending in band configuration buffers in the transport layer.
     */
    public byte headerPeriod;
    /**
     * USAC MPS stereo mode
     */
    public byte stereoConfigIndex;
    /**
     * USAC SBR mode
     */
    public byte sbrMode;
    /**
     * 0: implicit signaling, 1: backwards compatible explicit signaling, 2: hierarcical explicit signaling
     */
    public int sbrSignaling;
    public byte sbrPresent;
    public byte psPresent;

    @Override
    protected List getFieldOrder() {
        return FIELD_ORDER;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy