::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"] fn DMOEnum ( guidcategory : *const :: windows_sys::core::GUID , dwflags : u32 , cintypes : u32 , pintypes : *const DMO_PARTIAL_MEDIATYPE , couttypes : u32 , pouttypes : *const DMO_PARTIAL_MEDIATYPE , ppenum : *mut IEnumDMO ) -> :: windows_sys::core::HRESULT );
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"] fn DMOGetName ( clsiddmo : *const :: windows_sys::core::GUID , szname : :: windows_sys::core::PWSTR ) -> :: windows_sys::core::HRESULT );
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"] fn DMOGetTypes ( clsiddmo : *const :: windows_sys::core::GUID , ulinputtypesrequested : u32 , pulinputtypessupplied : *mut u32 , pinputtypes : *mut DMO_PARTIAL_MEDIATYPE , uloutputtypesrequested : u32 , puloutputtypessupplied : *mut u32 , poutputtypes : *mut DMO_PARTIAL_MEDIATYPE ) -> :: windows_sys::core::HRESULT );
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"] fn DMORegister ( szname : :: windows_sys::core::PCWSTR , clsiddmo : *const :: windows_sys::core::GUID , guidcategory : *const :: windows_sys::core::GUID , dwflags : u32 , cintypes : u32 , pintypes : *const DMO_PARTIAL_MEDIATYPE , couttypes : u32 , pouttypes : *const DMO_PARTIAL_MEDIATYPE ) -> :: windows_sys::core::HRESULT );
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"] fn DMOUnregister ( clsiddmo : *const :: windows_sys::core::GUID , guidcategory : *const :: windows_sys::core::GUID ) -> :: windows_sys::core::HRESULT );
#[cfg(feature = "Win32_Foundation")]
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"] fn MoCopyMediaType ( pmtdest : *mut DMO_MEDIA_TYPE , pmtsrc : *const DMO_MEDIA_TYPE ) -> :: windows_sys::core::HRESULT );
#[cfg(feature = "Win32_Foundation")]
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"] fn MoCreateMediaType ( ppmt : *mut *mut DMO_MEDIA_TYPE , cbformat : u32 ) -> :: windows_sys::core::HRESULT );
#[cfg(feature = "Win32_Foundation")]
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"] fn MoDeleteMediaType ( pmt : *mut DMO_MEDIA_TYPE ) -> :: windows_sys::core::HRESULT );
#[cfg(feature = "Win32_Foundation")]
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"] fn MoDuplicateMediaType ( ppmtdest : *mut *mut DMO_MEDIA_TYPE , pmtsrc : *const DMO_MEDIA_TYPE ) -> :: windows_sys::core::HRESULT );
#[cfg(feature = "Win32_Foundation")]
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"] fn MoFreeMediaType ( pmt : *mut DMO_MEDIA_TYPE ) -> :: windows_sys::core::HRESULT );
#[cfg(feature = "Win32_Foundation")]
::windows_sys::core::link ! ( "msdmo.dll""system" #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"] fn MoInitMediaType ( pmt : *mut DMO_MEDIA_TYPE , cbformat : u32 ) -> :: windows_sys::core::HRESULT );
pub type IDMOQualityControl = *mut ::core::ffi::c_void;
pub type IDMOVideoOutputOptimizations = *mut ::core::ffi::c_void;
pub type IEnumDMO = *mut ::core::ffi::c_void;
pub type IMediaBuffer = *mut ::core::ffi::c_void;
pub type IMediaObject = *mut ::core::ffi::c_void;
pub type IMediaObjectInPlace = *mut ::core::ffi::c_void;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_ACOUSTIC_ECHO_CANCEL: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xbf963d80_c559_11d0_8a2b_00a0c9255ac1);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_AGC: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe88c9ba0_c557_11d0_8a2b_00a0c9255ac1);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_AUDIO_CAPTURE_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf665aaba_3e09_4920_aa5f_219811148f09);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_AUDIO_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x57f2db8b_e6bb_4513_9d43_dcd2a6593125);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_AUDIO_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xf3602b3f_0592_48df_a4cd_674721e7ebeb);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_AUDIO_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33d9a761_90c8_11d0_bd43_00a0c911ce86);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_AUDIO_NOISE_SUPPRESS: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xe07f903f_62fd_4e60_8cdd_dea7236665b5);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_VIDEO_DECODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x4a69b442_28be_4991_969c_b500adf5d8a8);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_VIDEO_EFFECT: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0xd990ee14_776c_4723_be46_3da2f56f10b9);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMOCATEGORY_VIDEO_ENCODER: ::windows_sys::core::GUID = ::windows_sys::core::GUID::from_u128(0x33d9a760_90c8_11d0_bd43_00a0c911ce86);
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_E_INVALIDSTREAMINDEX: ::windows_sys::core::HRESULT = -2147220991i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_E_INVALIDTYPE: ::windows_sys::core::HRESULT = -2147220990i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_E_NOTACCEPTING: ::windows_sys::core::HRESULT = -2147220988i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_E_NO_MORE_ITEMS: ::windows_sys::core::HRESULT = -2147220986i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_E_TYPE_NOT_ACCEPTED: ::windows_sys::core::HRESULT = -2147220987i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_E_TYPE_NOT_SET: ::windows_sys::core::HRESULT = -2147220989i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type DMO_ENUM_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_ENUMF_INCLUDE_KEYED: DMO_ENUM_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type DMO_REGISTER_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_REGISTERF_IS_KEYED: DMO_REGISTER_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_INPLACE_PROCESS_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPLACE_NORMAL: _DMO_INPLACE_PROCESS_FLAGS = 0i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPLACE_ZERO: _DMO_INPLACE_PROCESS_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_INPUT_DATA_BUFFER_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_DATA_BUFFERF_SYNCPOINT: _DMO_INPUT_DATA_BUFFER_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_DATA_BUFFERF_TIME: _DMO_INPUT_DATA_BUFFER_FLAGS = 2i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_DATA_BUFFERF_TIMELENGTH: _DMO_INPUT_DATA_BUFFER_FLAGS = 4i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_DATA_BUFFERF_DISCONTINUITY: _DMO_INPUT_DATA_BUFFER_FLAGS = 8i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_INPUT_STATUS_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_STATUSF_ACCEPT_DATA: _DMO_INPUT_STATUS_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_INPUT_STREAM_INFO_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_STREAMF_WHOLE_SAMPLES: _DMO_INPUT_STREAM_INFO_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER: _DMO_INPUT_STREAM_INFO_FLAGS = 2i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE: _DMO_INPUT_STREAM_INFO_FLAGS = 4i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_INPUT_STREAMF_HOLDS_BUFFERS: _DMO_INPUT_STREAM_INFO_FLAGS = 8i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_OUTPUT_DATA_BUFFER_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_DATA_BUFFERF_TIME: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 2i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 4i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_DATA_BUFFERF_DISCONTINUITY: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 8i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE: _DMO_OUTPUT_DATA_BUFFER_FLAGS = 16777216i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_OUTPUT_STREAM_INFO_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_STREAMF_WHOLE_SAMPLES: _DMO_OUTPUT_STREAM_INFO_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER: _DMO_OUTPUT_STREAM_INFO_FLAGS = 2i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE: _DMO_OUTPUT_STREAM_INFO_FLAGS = 4i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_STREAMF_DISCARDABLE: _DMO_OUTPUT_STREAM_INFO_FLAGS = 8i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_OUTPUT_STREAMF_OPTIONAL: _DMO_OUTPUT_STREAM_INFO_FLAGS = 16i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_PROCESS_OUTPUT_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER: _DMO_PROCESS_OUTPUT_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_QUALITY_STATUS_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_QUALITY_STATUS_ENABLED: _DMO_QUALITY_STATUS_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_SET_TYPE_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_SET_TYPEF_TEST_ONLY: _DMO_SET_TYPE_FLAGS = 1i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_SET_TYPEF_CLEAR: _DMO_SET_TYPE_FLAGS = 2i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub type _DMO_VIDEO_OUTPUT_STREAM_FLAGS = i32;
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub const DMO_VOSF_NEEDS_PREVIOUS_SAMPLE: _DMO_VIDEO_OUTPUT_STREAM_FLAGS = 1i32;
#[repr(C)]
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DMO_MEDIA_TYPE {
    pub majortype: ::windows_sys::core::GUID,
    pub subtype: ::windows_sys::core::GUID,
    pub bFixedSizeSamples: super::super::Foundation::BOOL,
    pub bTemporalCompression: super::super::Foundation::BOOL,
    pub lSampleSize: u32,
    pub formattype: ::windows_sys::core::GUID,
    pub pUnk: ::windows_sys::core::IUnknown,
    pub cbFormat: u32,
    pub pbFormat: *mut u8,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DMO_MEDIA_TYPE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DMO_MEDIA_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub struct DMO_OUTPUT_DATA_BUFFER {
    pub pBuffer: IMediaBuffer,
    pub dwStatus: u32,
    pub rtTimestamp: i64,
    pub rtTimelength: i64,
}
impl ::core::marker::Copy for DMO_OUTPUT_DATA_BUFFER {}
impl ::core::clone::Clone for DMO_OUTPUT_DATA_BUFFER {
    fn clone(&self) -> Self {
        *self
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"]
pub struct DMO_PARTIAL_MEDIATYPE {
    pub r#type: ::windows_sys::core::GUID,
    pub subtype: ::windows_sys::core::GUID,
}
impl ::core::marker::Copy for DMO_PARTIAL_MEDIATYPE {}
impl ::core::clone::Clone for DMO_PARTIAL_MEDIATYPE {
    fn clone(&self) -> Self {
        *self
    }
}
