Codec API Properties
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
- Common Audio Properties
- Common Decoder Properties
- Common Encoder Properties
- Video Decoder Properties
- Audio Decoder Properties
- Video Encoder Properties
- Audio Encoder Properties
- MPEG Video Encoder Properties
- MPEG Audio Encoder Properties
- Dolby Digital Audio Decoder Properties
- Dolby Digital Audio Encoder Properties
- Digital Signal Processing (DSP) Properties
Common Audio Properties
These properties apply to both audio encoders and audio decoders.
Property | Description |
---|---|
AVAudioChannelConfig | Gets the speaker configuration for the audio channels in the audio bit stream. |
AVAudioChannelCount | Gets the number of channels in the audio bit stream. |
AVAudioSampleRate | Gets the sample rate of the audio bit stream, in samples per seconds. |
AVDDSurroundMode | Specifies whether the audio is encoded in Dolby Surround. |
Common Decoder Properties
These properties apply to both audio decoders and video decoders.
Property | Description |
---|---|
AVDecCommonInputFormat | Specifies the current input format for the decoder. |
AVDecCommonMeanBitRate | Gets the current mean bit rate of the decoder. |
AVDecCommonOutputFormat | Specifies the output format for the decoder. |
AVDecMmcssClass | Specifies the Multimedia Class Scheduler Service (MMCSS) class for the decoding thread. |
Common Encoder Properties
These properties apply to both audio encoders and video encoders.
Property | Description |
---|---|
AVEncCodecType | Specifies the encoding scheme. |
AVEncCommonBufferInLevel | Specifies the initial level of the encoding buffer. |
AVEncCommonBufferOutLevel | Specifies the final level of the encoding buffer at the end of the encoding process. |
AVEncCommonBufferSize | Specifies the size of the buffer used during encoding. |
AVEncCommonFormatConstraint | Specifies the target format for an encoder. |
AVEncCommonLowLatency | Specifies whether the output stream should be structured so that the encoded stream has a low decoding latency. |
AVEncCommonMaxBitRate | Specifies the maximum bit rate. |
AVEncCommonMeanBitRate | Specifies the average bit rate. |
AVEncCommonMeanBitRateInterval | Specifies the time interval over which the average bit rate applies. |
AVEncCommonMinBitRate | Specifies the minimum bit rate. |
AVEncCommonMultipassMode | Specifies the number of encoding passes that the encoder supports. |
AVEncCommonPassEnd | Stops the current encoding pass, or queries whether the current encoding pass is the last one. |
AVEncCommonPassStart | Starts the first encoding pass. |
AVEncCommonQuality | Specifies the quality level for encoding. |
AVEncCommonQualityVsSpeed | Specifies the tradeoff between encoding quality and speed. |
AVEncCommonRateControlMode | Specifies the rate control mode. |
AVEncCommonRealTime | Specifies whether the application requires real-time encoding performance. |
AVEncCommonStreamEndHandling | Specifies whether the encoder discards partial groups of pictures (GOPs) at the end of the stream. |
AVEncMuxOutputStreamType | Specifies the type of output stream produced by a multiplexer. |
AVEncStatCommonCompletedPasses | Specifies the number of completed encoding passes. |
Video Decoder Properties
Property | Description |
---|---|
AVDecVideoAcceleration_H264 | Enables or disables hardware acceleration for H.264 video decoding. |
AVDecVideoAcceleration_MPEG2 | Enables or disables hardware acceleration for MPEG-2 video decoding. |
AVDecVideoAcceleration_VC1 | Enables or disables hardware acceleration for VC-1 video decoding. |
AVDecVideoDropPicWithMissingRef | Specifies whether the decoder drops intra frames with missing reference frames. |
AVDecVideoFastDecodeMode | Gets or sets the video decoding speed. |
AVDecVideoImageSize | Gets the size of the decoded image, in pixels. |
AVDecVideoInputScanType | Specifies how the decoded video stream is interlaced. |
AVDecVideoPixelAspectRatio | Specifies the pixel aspect ratio of the decoded video stream. |
AVDecVideoSoftwareDeinterlaceMode | Specifies the decoder's software deinterlace mode. |
AVDecVideoSWPowerLevel | Specifies the power-saving level. |
AVDecVideoThumbnailGenerationMode | Enables or disables thumbnail generation mode. |
Audio Decoder Properties
Property | Description |
---|---|
AVDecAACDownmixMode | Specifies whether an AAC decoder uses standard MPEG-2/MPEG-4 stereo downmix equations, or uses a non-standard downmix. |
AVDecAudioDualMono | Specifies whether 2-channel audio is encoded as stereo or dual mono. |
AVDecAudioDualMonoReproMode | Specifies how the decoder reproduces dual mono audio. |
AVDecHEAACDynamicRangeControl | Enables or disables dynamic range control in an AAC decoder. |
Video Encoder Properties
Property | Description |
---|---|
AVEncInputVideoSystem | Specifies the video system of the source content. |
AVEncStatVideoCodedFrames | Returns the number of video frames that were encoded. |
AVEncStatVideoOutputFrameRate | Returns the average frame rate of the video content. |
AVEncStatVideoTotalFrames | Returns the number of video frames that the encoder received. |
AVEncVideoCBRMotionTradeoff | Specifies the tradeoff between motion and still images. |
AVEncVideoCodedVideoAccessUnitSize | Specifies the size of the video access units. |
AVEncVideoDefaultUpperFieldDominant | Specifies which field is displayed first. |
AVEncVideoDisplayDimension | Specifies the size of the video stream when it is decoded. |
AVEncVideoEncodeDimension | Specifies the width and height of the encoded video, if the video is cropped. |
AVEncVideoEncodeOffsetOrigin | Specifies the left and top corners of the clipping rectangle, if the video is cropped. |
AVEncVideoFieldSwap | Reverses the order of the interlaced fields in the source video. |
AVEncVideoForceSourceScanType | Specifies whether the input frames are progressive or interlaced. |
AVEncVideoHeaderDropFrame | Specifies the value of drop-frame flag in the GOP header. |
AVEncVideoHeaderFrames | Specifies the starting frame number in the GOP header. |
AVEncVideoHeaderHours | Specifies the starting hour number in the GOP header. |
AVEncVideoHeaderMinutes | Specifies the starting minute number in the GOP header. |
AVEncVideoHeaderSeconds | Specifies the starting second number in the GOP header. |
AVEncVideoInputChromaResolution | Specifies the chroma resolution of the input video. |
AVEncVideoInputChromaSubsampling | Specifies the chroma siting for the input video. |
AVEncVideoInputColorLighting | Specifies the intended lighting conditions for viewing the input video. |
AVEncVideoInputColorNominalRange | Specifies the nominal range for the input video. |
AVEncVideoInputColorPrimaries | Specifies the color primaries for the input video. |
AVEncVideoInputColorTransferFunction | Specifies the conversion function from RGB to R'G'B' for input video |
AVEncVideoInputColorTransferMatrix | Specifies the conversion matrix from the Y'Cb'Cr' color space to the R'G'B' color space, for the input video. |
AVEncVideoInverseTelecineEnable | Specifies whether the encoder performs inverse telecine. |
AVEncVideoInverseTelecineThreshold | Sets the threshold at which the encoder considers a video field redundant. |
AVEncVideoMaxKeyframeDistance | Specifies the maximum number of frames between key frames. |
AVEncVideoNoOfFieldsToEncode | Specifies the number of fields to encode. |
AVEncVideoNoOfFieldsToSkip | Specifies the number of fields to skip during encoding. |
AVEncVideoOutputChromaResolution | Specifies the chroma resolution of the encoded video. |
AVEncVideoOutputChromaSubsampling | Specifies the chroma siting for the encoded video. |
AVEncVideoOutputColorLighting | Specifies the intended lighting conditions for viewing the encoded video. |
AVEncVideoOutputColorNominalRange | Specifies the nominal range for the encoded video. |
AVEncVideoOutputColorPrimaries | Specifies the color primaries for the encoded video. |
AVEncVideoOutputColorTransferFunction | Specifies the conversion function from RGB to R'G'B' for encoded video. |
AVEncVideoOutputColorTransferMatrix | Specifies the conversion matrix from the Y'Cb'Cr' color space to the R'G'B' color space, for the encoded video. |
AVEncVideoOutputFrameRate | Specifies the frame rate on the encoder's output stream, in frames per second. |
AVEncVideoOutputFrameRateConversion | Specifies whether the encoder converts the frame rate when the output frame rate does not match the input frame rate. |
AVEncVideoOutputScanType | Specifies how the encoder interlaces the output video. |
AVEncVideoPixelAspectRatio | Specifies the pixel aspect ratio. |
AVEncVideoSourceFilmContent | Specifies whether the original source of the input video was film or video. |
AVEncVideoSourceIsBW | Specifies whether the video is monochrome (black and white) or contains color. |
Audio Encoder Properties
Property | Description |
---|---|
AVEncAudioDualMono | Specifies whether 2-channel audio is encoded as stereo or dual mono. |
AVEncAudioInputContent | Specifies whether the audio content contains music or voice. |
AVEncAudioIntervalToEncode | Specifies the number of audio samples to encode. |
AVEncAudioIntervalToSkip | Specifies the number of audio samples for the encoder to skip. |
AVEncAudioMapDestChannel N | Specifies which audio channel is mapped to channel N in the encoded audio stream. |
AVEncAudioMeanBitRate | Specifies the average bit rate of the encoded audio stream. |
AVEncStatAudioAverageBPS | Returns the average bits per second of the encoded audio. |
AVEncStatAudioAveragePCMValue | Returns the average volume level of the audio content. |
AVEncStatAudioPeakPCMValue | Returns the highest volume level that was present in the audio content. |
MPEG Video Encoder Properties
Property | Description |
---|---|
AVEncMPVAddSeqEndCode | Specifies whether the encoder adds a sequence end code at the end of the stream. |
AVEncMPVDefaultBPictureCount | Specifies the default number of consecutive B frames between I and P frames. |
AVEncMPVFrameFieldMode | Specifies whether the encoder produces encoded fields or encoded frames. |
AVEncMPVGenerateHeaderPicDispExt | Specifies whether the encoder generates picture display extension headers. |
AVEncMPVGenerateHeaderPicExt | Specifies whether the encoder generates picture extension headers. |
AVEncMPVGenerateHeaderSeqDispExt | Specifies whether the encoder generates sequence display extension headers. |
AVEncMPVGenerateHeaderSeqExt | Specifies whether the encoder generates sequence extension headers. |
AVEncMPVGenerateHeaderSeqScaleExt | Specifies whether the encoder generates sequence scalable extension headers. |
AVEncMPVGOPOpen | Specifies whether the encoder produces open GOPs or closed GOPs. |
AVEncMPVGOPSInSeq | Specifies the number of GOPs between sequence headers. |
AVEncMPVGOPSize | Specifies the maximum number of pictures from one GOP header to the next GOP header. |
AVEncMPVIntraDCPrecision | Specifies the precision of the DC coefficients. |
AVEncMPVIntraVLCTable | Specifies which variable-length coding (VLC) table to use for entropy coding. |
AVEncMPVLevel | Specifies the MPEG-2 level. |
AVEncMPVProfile | Specifies the MPEG-2 profile. |
AVEncMPVQScaleType | Specifies whether the quantizer scale is linear or non-linear. |
AVEncMPVQuantMatrixChromaIntra | Specifies the chroma quantization matrix for intra macroblocks. |
AVEncMPVQuantMatrixChromaNonIntra | Specifies the chroma quantization matrix for non-intra macroblocks. |
AVEncMPVQuantMatrixIntra | Specifies the luma quantization matrix for intra macroblocks. |
AVEncMPVQuantMatrixNonIntra | Specifies the luma quantization matrix for non-intra macroblocks. |
AVEncMPVScanPattern | Specifies the macroblock scan pattern. |
AVEncMPVSceneDetection | Specifies how the encoder behaves when it detects a new scene. |
AVEncMPVUseConcealmentMotionVectors | Specifies whether the encoder uses concealment motion vectors. |
MPEG Audio Encoder Properties
Property | Description |
---|---|
AVEncMPACodingMode | Specifies the MPEG-1 audio encoding mode. |
AVEncMPACopyright | Specifies the default setting for the copyright bit. |
AVEncMPAEmphasisType | Specifies the type of de-emphasis filter that should be used when decoding. |
AVEncMPAEnableRedundancyProtection | Specifies whether to add a cyclic redundancy check (CRC) to the frame header. |
AVEncMPALayer | Specifies the MPEG audio layer. |
AVEncMPAOriginalBitstream | Specifies the default setting for the original bit. |
AVEncMPAPrivateUserBit | Sets the value of the private user bit. |
Dolby Digital Audio Decoder Properties
Property | Description |
---|---|
AVDecDDDynamicRangeScaleHigh | Specifies the high-level cut when the decoder performs dynamic range control. |
AVDecDDDynamicRangeScaleLow | Specifies the low-level boost when the decoder performs dynamic range control. |
AVDecDDOperationalMode | Specifies the compression control mode. |
Dolby Digital Audio Encoder Properties
Property | Description |
---|---|
AVEncDDAtoDConverterType | Specifies the type of analog-to-digital (A/D) conversion. |
AVEncDDCentreDownMixLevel | Specifies the center downmix level. |
AVEncDDChannelBWLowPassFilter | Specifies whether a low pass filter is applied to the main input channels. |
AVEncDDCopyright | Specifies the copyright flag. |
AVEncDDDCHighPassFilter | Specifies whether a DC-blocking high pass filter is applied. |
AVEncDDDialogNormalization | Specifies the dialog normalization level. |
AVEncDDDigitalDeemphasis | Specifies whether digital de-emphasis. |
AVEncDDDynamicRangeCompressionControl | Specifies the dynamic range control profile. |
AVEncDDHeadphoneMode | Specifies the headphone mode. |
AVEncDDLFELowPassFilter | Specifies whether a low pass filter is applied to the low frequency effect (LFE) channel. |
AVEncDDLoRoCenterMixLvl_x10 | Specifies the level shift that is applied to the center channel for Lo/Ro downmixing. |
AVEncDDLoRoSurroundMixLvl_x10 | Specifies the level shift that is applied to the Surround channels for Lo/Ro downmixing. |
AVEncDDLtRtCenterMixLvl_x10 | Specifies the level shift that is applied to the center channel for Lt/Rt downmixing. |
AVEncDDLtRtSurroundMixLvl_x10 | Specifies the level shift that is applied to the Surround channels for Lt/Rt downmixing. |
AVEncDDOriginalBitstream | Specifies the original bitstream flag. |
AVEncDDPreferredStereoDownMixMode | Specifies the preferred stereo downmix mode. |
AVEncDDProductionInfoExists | Specifies the audio production information flag. |
AVEncDDProductionMixLevel | Specifies the mixing level. |
AVEncDDProductionRoomType | Specifies the room type. |
AVEncDDRFPreEmphasisFilter | Specifies the RF overmodulation protection setting. |
AVEncDDService | Specifies the audio service. |
AVEncDDSurround3dBAttenuation | Specifies whether the Surround channels are attenuated before encoding. |
AVEncDDSurround90DegreeePhaseShift | Specifies whether a 90-degree phase shift is applied to the Surround channels. |
AVEncDDSurroundDownMixLevel | Specifies the Surround down mix level. |
AVEncDDSurroundExMode | Specifies whether the audio stream is encoded in Surround EX. |
Digital Signal Processing (DSP) Properties
Property | Description |
---|---|
AVDSPLoudnessEqualization | Enables or disables loudness equalization |
AVDSPSpeakerFill | Enables or disables speaker fill |
Related topics