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

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

 

Codec API Reference