IEncoderAPI interface (strmif.h)
[The feature associated with this page, Microsoft TV Technologies, is a legacy feature. Microsoft strongly recommends that new code does not use this feature.]
[IEncoderAPI is no longer available for use. Instead, use ICodecAPI.]
The IEncoderAPI interface defines a standard way for applications and drivers to communicate with third-party hardware or software encoders that implement the interface. For more information on this interface, see Encoder API.
Inheritance
The IEncoderAPI interface inherits from the IUnknown interface. IEncoderAPI also has these types of members:
- Methods
Methods
The IEncoderAPI interface has these methods.
IEncoderAPI::GetDefaultValue The GetDefaultValue method retrieves the default value for a parameter, if one exists. |
IEncoderAPI::GetParameterRange The GetParameterRange method retrieves the valid range of values that the parameter supports, in cases where the parameter supports a stepped range as opposed to a list of specific values. |
IEncoderAPI::GetParameterValues The GetParameterValues method retrieves the list of values supported by the given parameter. |
IEncoderAPI::GetValue The GetValue method retrieves the current value of a specified parameter. |
IEncoderAPI::IsAvailable IEncoderAPI is no longer available for use. (IEncoderAPI.IsAvailable) |
IEncoderAPI::IsSupported The IsSupported method queries whether a given parameter is supported. |
IEncoderAPI::SetValue The SetValue method sets the current value of a parameter. |
Remarks
In the various interface methods, the following GUIDs, defined in uuids.h, are used to indicate which parameter is being set or retrieved.
Parameter | Description |
---|---|
ENCAPIPARAM_BITRATE | Specifies the bit rate, in bits per second. In constant bit rate (CBR) mode, the value gives the constant bitrate. In either variable bit rate mode, it gives the average bit rate. The value is a 32-bit unsigned long. |
ENCAPIPARAM_PEAK_BITRATE | Specifies the peak bit rate. This parameter is relevant only when ENCAPIPARAM_BITRATE_MODE has been set to VariableBitRatePeak. |
ENCAPIPARAM_BITRATE_MODE | Specifies the bit-rate mode, as a VIDEOENCODER_BITRATE_MODE enumeration value (32-bit signed long). |
The following table describes the expected behavior of an encoder under extremely high or low bitrate conditions in the two variable bitrate modes defined in VIDEOENCODER_BITRATE_MODE.
Condition | Mode | Behavior |
---|---|---|
Scene falls to black or there is zero motion | VariableBitRateAverage | Over a short period of time (several seconds) the bit rate will fall below the rate specified for the ENCAPIPARAM_BITRATE parameter. But over a four-minute period of time, the encoder will maintain the average rate, if necessary by adding "dummy" bits to the stream. |
Scene falls to black or there is zero motion. | VariableBitRatePeak | The bitrate will fall below the expected rate as specified in the value for the ENCAPIPARAM_BITRATE parameter. The rate will stay at that level until a more complicated scene begins. |
The scene is extremely complex. | VariableBitRateAverage | For a few seconds the rate will go up. If the scene stays complex, the rate will come back down and the picture will become blocky in order to maintain the average as specified in the value for the ENCAPIPARAM_BITRATE parameter. |
The scene is extremely complex. | VariableBitRatePeak | The rate will go up and stay up, possibly above the expected rate as specified in the value for the ENCAPIPARAM_BITRATE parameter, but never above the peak as specified in the ENCAPIPARAM_PEAK_BITRATE parameter. |
OCUR Devices
This interface supports OpenCable Unidirectional Cable Receiver (OCUR) devices. See OCUR Devices.
Requirements
Requirement | Value |
---|---|
Target Platform | Windows |
Header | strmif.h (include Dshow.h) |