ILMMFH265Encoder Interface

This is the interface for the LEAD H265 Encoder.

Interface Properties:

eH265CAPABILITY Capability

(Read-only) Indicates whether hardware compression and High profiles are available. If Capability is:

VARIANT_BOOL EnableRateControl

Indicates whether the H265 encoder uses Rate-Driven compression or Quality-Driven compression. It this property is TRUE, Rate-Driven compression is used and the rate is set in the BitRate property. If this is FALSE, Quality-Driven compression is used and the quality factor is set in the QualityFactor property.

long BitRate

The bitrate, in bits per second, when the EnableRateControl value is TRUE. Note that this is not in the same units as in the property page. The property page shows the bitrate in Kbits/second, while the BitRate property uses bits/second. For example, 1000 Kbps is achieved by setting this value to 1,000,000 (one million).

long QualityFactor

Contains the video quality factor. A quality factor of 1 gives the highest quality and the largest video file size. A quality factor of 50 gives the lowest quality and smallest file size. This property is valid only if the EnableRateControl property is FALSE.


Represents the unit for the IFrameInterval property or how the IFrameInterval property is interpreted by the encoder.

If IFrameIntervalUnit = H265INTERVALUNIT_PFRAME, then the IFrameInterval represents the I-frame interval in term of P frames.

If IFrameIntervalUnit != H265INTERVALUNIT_FRAME, then I-frame Interval is in terms of P and B frames.

long IFrameInterval

If IFrameIntervalUnit = H265INTERVALUNIT_PFRAME then this property specifies the number of P frames between two successive I frames plus one. A value of zero means there is only one I in the whole video and all the other frames are either P or B .

If this value is one there will be NO P frame between any two I frames.

If the value is 2 there will be ONE P frame between any two I frames and so on.

If IFrameIntervalUnit = H265INTERVALUNIT_FRAME then this property specifies the number of frames between two successive I-frames. In other words it specifies the "Group of Pictures (GOP)" length. A value of zero means there is only one I-frame in the whole video and all the other frames are either P or B. If this value is one there will no P or B frames between any I frames.

long PFrameInterval

Specifies the number of B frames between two successive P frames. Note that all the frames between successive P frames are B frames.

float FrameRate

Sets the playback frame rate, in frames per second, of the compressed video, regardless of the rate of the input stream frames. The LEAD H265 automatically adjusts the input video to match the desired frame rate. The rate is adjusted by dropping or duplicating input frames.

If the selected frame rate is lower than the original framerate, the compression will be higher.Use the value -1 if the output frame rate needs to be the same as the input frame rate.

eH265OUTPUTFORMAT OutputFormat

Value that specifies the output format. For a list of possible values, refer to eH265OUTPUTFORMAT.

Interface Methods:

HRESULT WriteToRegistry ()


Writes the values of all of the properties listed above to the system registry, so that the encoder will remember these settings the next time it is used.

The property page calls this method when you click the Apply or OK buttons after changing some values in the property page.


S_OK if successful; otherwise, S_FALSE.

HRESULT ResetToDefaults (eH265APILEVEL ApiLevel)


eH265APILEVEL ApiLevel


Resets resizing to default values. The ApiLevel determines which default values to use. Current applications should set ApiLevel to H265_APILEVEL_1 = 0.

The LEAD H265 Encoder could change in the future and have different properties or default behavior. Calling this method ensures the filter will have the same default values that they had at the time you developed your application.

It is best to call ResetToDefaults(H265_APILEVEL_1) before you start setting properties and start calling other methods for this interface if you modify all of the encoder settings.



Data Types:


Lists the possible values for the output mode, set in the OutputFormat property.

typedef enum 
   H265FORMAT_AUTO = 0, 
   H265FORMAT_MAIN_H265 = 1, /* Main profile output using byte stream format (compatible with MPEG file format, uses 00 00 01 start codes) */ 
   H265FORMAT_MAIN_HVC1 = 2, /* Main Profile output using NAL unit stream format (compatible with ISO/MP4 file format) */ 


typedef enum 
   H265_APILEVEL_1 = 0, 


typedef enum 

Lists the possible frame interval units to be interpreted by the encoder, set in the IFrameIntervalUnit property.


typedef enum 
   H265CAPABILITY_SOFTWARE = 0, /* Software only */ 
   H265CAPABILITY_QUICKSYNC = 1, /* Quick Sync hardware */ 

Lists the possible capabilities that can be reported by the Capability property.

Help Version 22.0.2021.10.25
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

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