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.

eH265FRAMEINTERVALUNIT IFrameIntervalUnit

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 ()

Description

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.

Returns

S_OK if successful; otherwise, S_FALSE.

HRESULT ResetToDefaults (eH265APILEVEL ApiLevel)

Parameters

eH265APILEVEL ApiLevel

Description

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.

Returns

S_OK

Data Types:

eH265OUTPUTFORMAT

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) */ 
} eH265OUTPUTFORMAT; 

eH265APILEVEL

typedef enum 
{ 
   H265_APILEVEL_1 = 0, 
} eH265APILEVEL; 

eH265FRAMEINTERVALUNIT

typedef enum 
{ 
   H265INTERVALUNIT_PFRAME = 0, 
   H265INTERVALUNIT_FRAME = 1, 
} eH265FRAMEINTERVALUNIT; 

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

eH265CAPABILITY

typedef enum 
{ 
   H265CAPABILITY_SOFTWARE = 0, /* Software only */ 
   H265CAPABILITY_QUICKSYNC = 1, /* Quick Sync hardware */ 
} eH265CAPABILITY; 

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

Help Version 21.0.2021.7.2
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.