Trait IDirectXVideoDecoder_Impl
pub trait IDirectXVideoDecoder_Impl: IUnknownImpl {
// Required methods
fn GetVideoDecoderService(&self) -> Result<IDirectXVideoDecoderService>;
fn GetCreationParameters(
&self,
pdeviceguid: *mut GUID,
pvideodesc: *mut DXVA2_VideoDesc,
pconfig: *mut DXVA2_ConfigPictureDecode,
pdecoderrendertargets: *mut *mut Option<IDirect3DSurface9>,
pnumsurfaces: *mut u32,
) -> Result<()>;
fn GetBuffer(
&self,
buffertype: &DXVA2_BufferfType,
ppbuffer: *mut *mut c_void,
pbuffersize: *mut u32,
) -> Result<()>;
fn ReleaseBuffer(&self, buffertype: u32) -> Result<()>;
fn BeginFrame(
&self,
prendertarget: Ref<'_, IDirect3DSurface9>,
pvpvpdata: *const c_void,
) -> Result<()>;
fn EndFrame(&self, phandlecomplete: *mut HANDLE) -> Result<()>;
fn Execute(
&self,
pexecuteparams: *const DXVA2_DecodeExecuteParams,
) -> Result<()>;
}
Required Methods§
fn GetVideoDecoderService(&self) -> Result<IDirectXVideoDecoderService>
fn GetCreationParameters( &self, pdeviceguid: *mut GUID, pvideodesc: *mut DXVA2_VideoDesc, pconfig: *mut DXVA2_ConfigPictureDecode, pdecoderrendertargets: *mut *mut Option<IDirect3DSurface9>, pnumsurfaces: *mut u32, ) -> Result<()>
fn GetBuffer( &self, buffertype: &DXVA2_BufferfType, ppbuffer: *mut *mut c_void, pbuffersize: *mut u32, ) -> Result<()>
fn ReleaseBuffer(&self, buffertype: u32) -> Result<()>
fn BeginFrame( &self, prendertarget: Ref<'_, IDirect3DSurface9>, pvpvpdata: *const c_void, ) -> Result<()>
fn EndFrame(&self, phandlecomplete: *mut HANDLE) -> Result<()>
fn Execute( &self, pexecuteparams: *const DXVA2_DecodeExecuteParams, ) -> Result<()>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.