This is the interface for the LEAD AAC Encoder.
Lists the format values that can be set for the output stream.
typedef enum
{
LAAC_STREAMFORMAT_RAW,
LAAC_STREAMFORMAT_ADTS,
} eStreamFormat;
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.
The encoder output format is Audio Data Transport Stream, where each frame has its own header.
Lists the methods that can be used to control the output bitrate.
typedef enum
{
LAAC_RC_CONST_QUALITY,
LAAC_RC_CONST_BITRATE,
} eRateControl;
[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).
[1] Average bitrate. The output bitrate is defined by the OutputBitrate property.
Lists the allowed block types (data window length).
typedef enum
{
LAAC_BlockType_NORMAL,
LAAC_BlockType_NOSHORT,
LAAC_BlockType_NOLONG,
} eBlockType;
[0] Both long and short blocks are allowed.
[1] Only long blocks allowed. A long block is usually 1024 samples.
[2] Only short blocks allowed. A short block is usually 128 samples.
Lists the possible AAC audio MPEG versions that can be set on the output stream.
typedef enum
{
LAAC_MPEGVersion_MPEG4,
LAAC_MPEGVersion_MPEG2,
} eMPEGVersion;
[0] MPEG-4 AAC.
[1] MPEG-2 AAC. With this version, only LC and MAIN profiles (object types) are allowed.
Lists the possible AAC profiles that can be used.
typedef enum
{
LAAC_ObjType_MAIN,
LAAC_ObjType_LC,
LAAC_ObjType_LTP,
} eObjectType;
[0] Main profile. Greater coding efficiency on the expense of complexity (more resources).
[1] Low complexity profile. Requires lower CPU and Memory resources.
[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.
Lists the possible number of output channels that can be set on the output stream.
typedef enum
{
LAAC_OC_UNCHANGED,
LAAC_OC_MONO,
LAAC_OC_STEREO,
LAAC_OC_6CHANNELS,
} eOutputChannels;
[0x00] Same as input.
[0x01] One channel; mono.
[0x02] Two channels; stereo.
[0x03] Six channels; 5.1.
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. |
Resets the filter properties to their default values.
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 |
Return | Description |
---|---|
S_OK | Successful |
< 0 | An error occurred. |
VFW_E_WRONG_STATE | The filter is in the wrong state. |