pub trait IDirectXVideoDecoder_Impl: Sized {
    // 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: Option<&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: Option<&IDirect3DSurface9>, pvpvpdata: *const c_void ) -> Result<()>

fn EndFrame(&self, phandlecomplete: *mut HANDLE) -> Result<()>

fn Execute( &self, pexecuteparams: *const DXVA2_DecodeExecuteParams ) -> Result<()>

Object Safety§

This trait is not object safe.

Implementors§