ILMAACEncoder

This is the interface for the LEAD AAC Encoder.

Data Types

eStreamFormat

Summary

Lists the format values that can be set for the output stream.

Syntax

typedef enum  
{ 
   LAAC_STREAMFORMAT_RAW, 
   LAAC_STREAMFORMAT_ADTS, 
} eStreamFormat; 

Members

LAAC_STREAMFORMAT_RAW

The encoder will output raw compressed data; raw data blocks. Only one header at the beginning of the stream is output. Using this value, the MPEGVersion property is restricted to LAAC_MPEGVersion_MPEG4.

LAAC_STREAMFORMAT_ADTS

The encoder output format is Audio Data Transport Stream, where each frame has its own header.

eRateControl

Summary

Lists the methods that can be used to control the output bitrate.

Syntax

typedef enum 
{ 
   LAAC_RC_CONST_QUALITY, 
   LAAC_RC_CONST_BITRATE, 
} eRateControl; 

Members

LAAC_RC_CONST_QUALITY

[0] Constant quality, or variable bitrate. The output bitrate depends on the used quality factor and the nature of the input signal. If the encoder is connected to the AVI multiplexer, this option is disabled and the encoder will revert to the constant bitrate (LAAC_RC_CONST_BITRATE).

LAAC_RC_CONST_BITRATE

[1] Average bitrate. The output bitrate is defined by the OutputBitrate property.

eBlockType

Summary

Lists the allowed block types (data window length).

Syntax

typedef enum 
{ 
   LAAC_BlockType_NORMAL, 
   LAAC_BlockType_NOSHORT, 
   LAAC_BlockType_NOLONG, 
} eBlockType; 

Members

LAAC_BlockType_NORMAL

[0] Both long and short blocks are allowed.

LAAC_BlockType_NOSHORT

[1] Only long blocks allowed. A long block is usually 1024 samples.

LAAC_BlockType_NOLONG

[2] Only short blocks allowed. A short block is usually 128 samples.

eMPEGVersion

Summary

Lists the possible AAC audio MPEG versions that can be set on the output stream.

Syntax

typedef enum 
{ 
   LAAC_MPEGVersion_MPEG4, 
   LAAC_MPEGVersion_MPEG2, 
} eMPEGVersion; 

Members

LAAC_MPEGVersion_MPEG4

[0] MPEG-4 AAC.

LAAC_MPEGVersion_MPEG2

[1] MPEG-2 AAC. With this version, only LC and MAIN profiles (object types) are allowed.

eObjectType

Summary

Lists the possible AAC profiles that can be used.

Syntax

typedef enum 
{ 
   LAAC_ObjType_MAIN, 
   LAAC_ObjType_LC, 
   LAAC_ObjType_LTP, 
} eObjectType; 

Members

LAAC_ObjType_MAIN

[0] Main profile. Greater coding efficiency on the expense of complexity (more resources).

LAAC_ObjType_LC

[1] Low complexity profile. Requires lower CPU and Memory resources.

LAAC_ObjType_LTP

[2] Long Term Prediction profile. Most suitable for speech and signals with clear pitch property. This profile can be used with MPEG4 AAC only; the MPEG4Version property must be LAAC_MPEGVersion_MPEG4.

eOutputChannels

Summary

Lists the possible number of output channels that can be set on the output stream.

Syntax

typedef enum 
{ 
   LAAC_OC_UNCHANGED, 
   LAAC_OC_MONO, 
   LAAC_OC_STEREO, 
   LAAC_OC_6CHANNELS, 
} eOutputChannels; 

Members

LAAC_OC_UNCHANGED

[0x00] Same as input.

LAAC_OC_MONO

[0x01] One channel; mono.

LAAC_OC_STEREO

[0x02] Two channels; stereo.

LAAC_OC_6CHANNELS

[0x03] Six channels; 5.1.

Properties

Type Name Description
long OutputBitrate The output bitrate, in kbps, of the compressed audio data. Bitrate denotes the average number of bits that one second of audio data will take up in the compressed bitstream. The output quality is related to the selected bitrate; the higher the bitrate, the better the quality. Supported bitrates are: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512, 576, and 640 kbps.
eOutputChannels OutputChannels The number of output channels.
VARIANT_BOOL SimulateSurround Enables or disables surround feature simulation. Possible values are:
• VARIANT_TRUE - Enables surround feature simulation.
• VARIANT_FALSE - Disables surround feature simulation.
This property has effect only if the OutputChannels property was set to LAAC_OC_6CHANNELS.
eMPEGVersion MPEGVersion The AAC audio MPEG version.
eBlockType BlockType The allowed block type; data window length.
eObjectType ObjectType The AAC profile used.
long QFactor The quality factor used in compressing the audio stream; the higher the quality factor, the better the quality. Possible values range from 10 (worst) to 500 (best).
eRateControl RateControl The method used to control the output bitrate.
long Cutoff The cutoff frequency, the frequency beyond which the audio signal is attenuated, in Hz. Possible values range from 3000 to 24000 Hz, and the value must be a multiple of 1000.
VARIANT_BOOL UseCutoff Determines whether the cutoff frequency specified by the Cutoff property will be used. Possible values are:
• VARIANT_TRUE - The cutoff frequency specified by the Cutoff property is used.
• VARIANT_FALSE - No cutoff frequency is used. The Cutoff property has no effect.
eStreamFormat StreamFormat The format of the output stream.
long OutputSampleRate The output sample rate, in samples per second. Possible values range between 8000 and 96000 samples per second (Hz). Note: Changing the sample rate causes a change in the quality resulting from audio data resampling.
VARIANT_BOOL IgnoreTimeDiscontinuity If set to VARIANT_TRUE, this property will cause the encoder to ignore discontinuities in the timestamps (time gaps) of the incoming audio samples. Sometimes this is needed to work around audio source timing problems. This property is not active (VARIANT_FALSE) by default.
VARIANT_BOOL IgnoreTimeOverlapping If set to VARIANT_TRUE, this property will cause the encoder to ignore overlapping in the timestamps of the incoming audio samples. Sometimes this is needed to work around audio source timing problems. This property is not active (VARIANT_FALSE) by default.
VARIANT_BOOL EnableDriftCorrector Property indicating whether the encoder should automatically correct timestamp drifting. If VARIANT_FALSE, timestamps are not corrected. If VARIANT_TRUE, the encoder will automatically correct timestamps that drift over time. If this property is enabled (set to VARIANT_TRUE), the encoder will work together with any other encoders in the current graph to correct drifts and synchronize audio and video. Currently, only the LEAD H264, H265 and AAC Encoders support this feature. The default value for this property is VARIANT_FALSE (timestamp drifting is not corrected). This is an advanced low-level setting that should be set to a VARIANT_TRUE value only if:
• you are in a capture situations (it will NOT work properly in file conversion situations)
• you are discovering that audio and video streams lose synchronization after running for a while (typically a few hours).
If you are unsure whether to use it or not, leave this property set to VARIANT_FALSE, because setting it incorrectly can cause big problems. See the Timestamp drifting in live capture situations topic for more details. This property was added mainly to solve problems with some Decklink video capture cards. The problems were as follows:
• at the beginning of the capture, there was a slight drift (around 60-90ms) between the audio and video streams.
• the drift was increasing after a few hours.
Setting this property to VARIANT_TRUE (or True in some languages) solves these problems.

Methods

HRESULT ResetToDefaults();

Description

Resets the filter properties to their default values.

Comments

Calling this method can cause the filter to reconnect its output pin.

The default values are:

Property Value
QFactor 100
StreamFormat LAAC_STREAMFORMAT_RAW
ObjectType LAAC_ObjType_MAIN
BlockType LAAC_BlockType_NORMAL
MPEGVersion LAAC_MPEGVersion_MPEG4
RateControl LAAC_RC_CONST_BITRATE
Cutoff 16000
UseCutoff VARIANT_FALSE
OutputChannel LAAC_OC_UNCHANGED
SimulateSurround VARIANT_FALSE
IgnoreTimeDiscontinuity VARIANT_FALSE
IgnoreTimeOverlapping VARIANT_FALSE

Returns

Return Description
S_OK Successful
< 0 An error occurred.
VFW_E_WRONG_STATE The filter is in the wrong state.
Help Version 23.0.2024.9.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Filters C API Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.