ILMVP8Encoder

This is the interface for the LEAD VP8 Encoder.

Data Types

eVP8EncMode

Summary

Indicates which encoding mode should be used (VBR/CBR, one or two pass).

Syntax

typedef enum 
{ 
   LVP8Enc_Mode_SinglePass_VBR = 0, 
   LVP8Enc_Mode_SinglePass_CBR = ( LVP8Enc_Mode_SinglePass_VBR + 1 ), 
   LVP8Enc_Mode_DoublePass_VBR_1 = ( LVP8Enc_Mode_SinglePass_CBR + 1 ), 
   LVP8Enc_Mode_DoublePass_VBR_2 = ( LVP8Enc_Mode_DoublePass_VBR_1 + 1 ) 
} eVP8EncMode; 

Members

LVP8Enc_Mode_SinglePass_VBR

Encodes using a single pass, allowing for variable bit rate.

LVP8Enc_Mode_SinglePass_CBR

Encodes using a single pass, keeping the bit rate constant.

LVP8Enc_Mode_DoublePass_VBR_1

Encodes using the two pass method, allowing for variable bit rate.

NOTE: The Double pass VBR - pass 2 encoding step below must also be performed before the final VP8 compression is complete.

LVP8Enc_Mode_DoublePass_VBR_2

Encodes using the two-pass method, allowing for variable bit rate.

NOTE: The Double pass VBR - pass 1 encoding step above must first be performed before running the VP8 compressor in this mode.

eVP8EncDeadLine

Summary

Indicates how much quality the encoded file is to have.

Syntax

typedef enum 
{ 
   LVP8Enc_Deadline_BestQuality = 0, 
   LVP8Enc_Deadline_Realtime = 1, 
   LVP8Enc_Deadline_GoodQuality = 1000000 
} eVP8EncDeadline; 

LVP8Enc_Deadline_BestQuality

Encodes using no deadline to ensure the best quality.

LVP8Enc_Deadline_Realtime

Encodes as fast as possible, sacrificing quality. The encoder supports the notion of a soft real-time deadline. Given a non-zero value to the deadline parameter, the encoder will make a "best effort" guarantee to return before the given time slice expires. It is implicit that limiting the available time to encode will degrade the output quality.

LVP8Enc_Deadline_GoodQuality

Encodes with better quality than realtime above, but still limiting encoding time to reduce the compression time.

eVP8EncApiLevel

Summary

Lists the valid values for the ApiLevel parameter that can be passed to the ResetToDefaultsEx method.

Syntax

typedef enum 
{ 
   LVP8Enc_ApiLevel_1 = 0,    // current version 
} eVP8EncApiLevel; 

Properties

Type Name Description
LONG Bitrate Sets the bitrate for the VP8 encoder in kilobits per second units. When the Mode is set to LVP8Enc_Mode_SinglePass_CBR, it represents the actual constant bitrate. For all other Mode values, this value represents the average bitrate. For example, to generate 700kbps video, set this value to 700.
eVP8EncDeadline Deadline Use this option to set the VP8 encoding deadline. The default value is LVP8Enc_Deadline_Realtime.
double KeyFrameInterval This option set the interval for key frames in seconds. Possible values are: 0 - 100 seconds.
eVP8EncMode Mode Use this option to set or get the VP8 encoder mode. The default value is LVP8Enc_Mode_SinglePass_VBR.

Methods

HRESULT CommitSettings()

Description

Saves the current encoder settings as the default settings.

Returns

Return Description
S_OK Success.
< 0 An error occurred writing to the registry. The error is constructed using the HRESULT_FROM_WIN32 macro, so it has the form 0x8007XXXX, where XXXX is the Windows error code of the failed registry operation. Please consult the Windows documentation for information on the Windows error codes.

HRESULT ResetToDefaultsEx(eVP8EncApiLevel ApiLevel)

Description

Resets the filter to default values.

Parameters

ApiLevel

Specifies which defaults should be used by the encoder. Current applications should set ApiLevel to LVP8Enc_ApiLevel_1 = 0.

Comments

The encoder might change in the future and have different properties or default behavior. Calling this method ensures future versions of the filter will behave the same way as when you developed your application.

It is best to call ResetToDefaultsEx(LVP8Enc_ApiLevel_1) before you start setting properties and start calling other methods for this interface.

Returns

Return Description
S_OK Success.
E_INVALIDARG The ApiLevel parameter is invalid.
Help Version 22.0.2023.2.15
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 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.