Package org.sheinbergon.aac.jna
Class FdkAACLibFacade
- java.lang.Object
-
- org.sheinbergon.aac.jna.FdkAACLibFacade
-
public final class FdkAACLibFacade extends java.lang.Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidcloseEncoder(AACEncoder encoder)Close a previously openedAACEncoder.static java.util.Optional<byte[]>encode(AACEncoder encoder, AACEncBufDesc inBufferDescriptor, AACEncBufDesc outBufferDescriptor, AACEncInArgs inArgs, AACEncOutArgs outArgs, int size)Encode raw (WAV) bytes to AAC.static AACEncInfogetEncoderInfo(AACEncoder encoder)Get library information on a previously openedAACEncoder.static AACEncBufDescinBufferDescriptor(com.sun.jna.Memory buffer)A utility function construct an in-buffer descriptor according to the fdk-aac library specifications.static voidinitEncoder(AACEncoder encoder)Initialize a previously openedAACEncoder.static AACEncoderopenEncoder(int modules, int maxChannels)Open (create) anAACEncoder.static AACEncBufDescoutBufferDescriptor(com.sun.jna.Memory buffer)A utility function construct an out-buffer descriptor according to the fdk-aac library specifications.static voidsetEncoderParam(AACEncoder encoder, AACEncParam param, int value)Set anAACEncParamparameter value on previously openedAACEncoder.
-
-
-
Method Detail
-
openEncoder
public static AACEncoder openEncoder(int modules, int maxChannels)
Open (create) anAACEncoder.- Parameters:
modules- fdk-aac encoder modules bitmaskmaxChannels- the maximum number of expected audio channels- Returns:
- an
AACEncoderinstance, populated by fdk-aac library. - See Also:
- fdk-aac/libAACenc/src/aacenc_lib.cpp
-
closeEncoder
public static void closeEncoder(@Nonnull AACEncoder encoder)Close a previously openedAACEncoder.- Parameters:
encoder- anAACEncoderinstance, previously opened by the fdk-aac library
-
initEncoder
public static void initEncoder(@Nonnull AACEncoder encoder)Initialize a previously openedAACEncoder.- Parameters:
encoder- anAACEncoderinstance, previously opened by the fdk-aac library
-
encode
public static java.util.Optional<byte[]> encode(@Nonnull AACEncoder encoder, @Nonnull AACEncBufDesc inBufferDescriptor, @Nonnull AACEncBufDesc outBufferDescriptor, @Nonnull AACEncInArgs inArgs, @Nonnull AACEncOutArgs outArgs, int size)Encode raw (WAV) bytes to AAC.Most of the passed arguments are reused/pre-allocated outside of this function to mitigate memory-pressure effects.
- Parameters:
encoder- anAACEncoderinstance, previously opened and initialized by the fdk-aac libraryinBufferDescriptor- pre instantiated in-buffer descriptor used to hold input raw bytesoutBufferDescriptor- pre instantiated out-buffer descriptor used to hold output encoded bytesinArgs- input encoder data structureoutArgs- output encoder data structuresize- input data size indicator- Returns:
- the encoded AAC bytes, if any are present
-
getEncoderInfo
public static AACEncInfo getEncoderInfo(@Nonnull AACEncoder encoder)
Get library information on a previously openedAACEncoder.- Parameters:
encoder- anAACEncoderinstance, previously opened by the fdk-aac library- Returns:
- the give encoder's information payload
-
setEncoderParam
public static void setEncoderParam(@Nonnull AACEncoder encoder, @Nonnull AACEncParam param, int value)Set anAACEncParamparameter value on previously openedAACEncoder.- Parameters:
encoder- anAACEncoderinstance, previously opened by the fdk-aac libraryparam- the parameter descriptor.value- the parameter value- See Also:
- fdk-aac/libAACenc/include/aacenc_lib.h
-
outBufferDescriptor
public static AACEncBufDesc outBufferDescriptor(@Nonnull com.sun.jna.Memory buffer)
A utility function construct an out-buffer descriptor according to the fdk-aac library specifications.- Parameters:
buffer- a pre-allocated native memory region to be used by this descriptor- Returns:
- an out-buffer descriptor structure
-
inBufferDescriptor
public static AACEncBufDesc inBufferDescriptor(@Nonnull com.sun.jna.Memory buffer)
A utility function construct an in-buffer descriptor according to the fdk-aac library specifications.- Parameters:
buffer- a pre-allocated native memory region to be used by this descriptor- Returns:
- an in-buffer descriptor structure
-
-