ReactOS 0.4.17-dev-934-g091855f
decoder.c File Reference
#include "d3d11_private.h"
Include dependency graph for decoder.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3d11)
 
static struct d3d_video_decoder * impl_from_ID3D11VideoDecoder (ID3D11VideoDecoder *iface)
 
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_QueryInterface (ID3D11VideoDecoder *iface, REFIID riid, void **object)
 
static ULONG STDMETHODCALLTYPE d3d11_video_decoder_AddRef (ID3D11VideoDecoder *iface)
 
static ULONG STDMETHODCALLTYPE d3d11_video_decoder_Release (ID3D11VideoDecoder *iface)
 
static void STDMETHODCALLTYPE d3d11_video_decoder_GetDevice (ID3D11VideoDecoder *iface, ID3D11Device **device)
 
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetPrivateData (ID3D11VideoDecoder *iface, REFGUID guid, UINT *data_size, void *data)
 
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_SetPrivateData (ID3D11VideoDecoder *iface, REFGUID guid, UINT data_size, const void *data)
 
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_SetPrivateDataInterface (ID3D11VideoDecoder *iface, REFGUID guid, const IUnknown *data)
 
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetCreationParameters (ID3D11VideoDecoder *iface, D3D11_VIDEO_DECODER_DESC *desc, D3D11_VIDEO_DECODER_CONFIG *config)
 
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetDriverHandle (ID3D11VideoDecoder *iface, HANDLE *handle)
 
HRESULT d3d_video_decoder_create (struct d3d_device *device, const D3D11_VIDEO_DECODER_DESC *desc, const D3D11_VIDEO_DECODER_CONFIG *config, struct d3d_video_decoder **decoder)
 

Variables

static const struct ID3D11VideoDecoderVtbl d3d11_video_decoder_vtbl
 

Function Documentation

◆ d3d11_video_decoder_AddRef()

static ULONG STDMETHODCALLTYPE d3d11_video_decoder_AddRef ( ID3D11VideoDecoder *  iface)
static

Definition at line 49 of file decoder.c.

50{
53
54 TRACE("%p increasing refcount to %lu.\n", decoder, refcount);
55
56 return refcount;
57}
#define InterlockedIncrement
Definition: armddk.h:53
static struct d3d_video_decoder * impl_from_ID3D11VideoDecoder(ID3D11VideoDecoder *iface)
Definition: decoder.c:24
#define TRACE(s)
Definition: solgame.cpp:4
uint32_t ULONG
Definition: typedefs.h:59

◆ d3d11_video_decoder_GetCreationParameters()

static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetCreationParameters ( ID3D11VideoDecoder *  iface,
D3D11_VIDEO_DECODER_DESC *  desc,
D3D11_VIDEO_DECODER_CONFIG *  config 
)
static

Definition at line 116 of file decoder.c.

118{
119 FIXME("iface %p, desc %p, config %p, stub!\n", iface, desc, config);
120 return E_NOTIMPL;
121}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683

◆ d3d11_video_decoder_GetDevice()

static void STDMETHODCALLTYPE d3d11_video_decoder_GetDevice ( ID3D11VideoDecoder *  iface,
ID3D11Device **  device 
)
static

Definition at line 76 of file decoder.c.

77{
79
80 TRACE("iface %p, device %p.\n", iface, device);
81
82 *device = (ID3D11Device *)decoder->device;
83 ID3D11Device_AddRef(*device);
84}
Definition: devices.h:37

◆ d3d11_video_decoder_GetDriverHandle()

static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetDriverHandle ( ID3D11VideoDecoder *  iface,
HANDLE *  handle 
)
static

Definition at line 123 of file decoder.c.

124{
125 FIXME("iface %p, handle %p, stub!\n", iface, handle);
126 return E_NOTIMPL;
127}

◆ d3d11_video_decoder_GetPrivateData()

static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetPrivateData ( ID3D11VideoDecoder *  iface,
REFGUID  guid,
UINT *  data_size,
void *  data 
)
static

Definition at line 86 of file decoder.c.

88{
90
91 TRACE("iface %p, guid %s, data_size %p, data %p.\n", iface, debugstr_guid(guid), data_size, data);
92
93 return d3d_get_private_data(&decoder->private_store, guid, data_size, data);
94}
HRESULT d3d_get_private_data(struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
Definition: utils.c:803
GUID guid
Definition: version.c:147
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define debugstr_guid
Definition: kernel32.h:35

◆ d3d11_video_decoder_QueryInterface()

static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_QueryInterface ( ID3D11VideoDecoder *  iface,
REFIID  riid,
void **  object 
)
static

Definition at line 29 of file decoder.c.

31{
32 TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
33
34 if (IsEqualGUID(riid, &IID_ID3D11VideoDecoder)
35 || IsEqualGUID(riid, &IID_ID3D11DeviceChild)
37 {
38 ID3D11VideoDecoder_AddRef(iface);
39 *object = iface;
40 return S_OK;
41 }
42
43 WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
44
45 *object = NULL;
46 return E_NOINTERFACE;
47}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ d3d11_video_decoder_Release()

static ULONG STDMETHODCALLTYPE d3d11_video_decoder_Release ( ID3D11VideoDecoder *  iface)
static

Definition at line 59 of file decoder.c.

60{
63
64 TRACE("%p decreasing refcount to %lu.\n", decoder, refcount);
65
66 if (!refcount)
67 {
68 ID3D11Device2_Release(&decoder->device->ID3D11Device2_iface);
71 }
72
73 return refcount;
74}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5
static void wined3d_private_store_cleanup(struct wined3d_private_store *store)
Definition: wined3d.h:2636

◆ d3d11_video_decoder_SetPrivateData()

static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_SetPrivateData ( ID3D11VideoDecoder *  iface,
REFGUID  guid,
UINT  data_size,
const void *  data 
)
static

Definition at line 96 of file decoder.c.

98{
100
101 TRACE("iface %p, guid %s, data_size %u, data %p.\n", iface, debugstr_guid(guid), data_size, data);
102
103 return d3d_set_private_data(&decoder->private_store, guid, data_size, data);
104}
HRESULT d3d_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
Definition: utils.c:841

◆ d3d11_video_decoder_SetPrivateDataInterface()

static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_SetPrivateDataInterface ( ID3D11VideoDecoder *  iface,
REFGUID  guid,
const IUnknown *  data 
)
static

Definition at line 106 of file decoder.c.

108{
110
111 TRACE("iface %p, guid %s, data %p.\n", iface, debugstr_guid(guid), data);
112
113 return d3d_set_private_data_interface(&decoder->private_store, guid, data);
114}
HRESULT d3d_set_private_data_interface(struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
Definition: utils.c:867

◆ d3d_video_decoder_create()

HRESULT d3d_video_decoder_create ( struct d3d_device *  device,
const D3D11_VIDEO_DECODER_DESC *  desc,
const D3D11_VIDEO_DECODER_CONFIG *  config,
struct d3d_video_decoder **  decoder 
)

Definition at line 142 of file decoder.c.

144{
146
147 if (!(object = calloc(1, sizeof(*object))))
148 return E_OUTOFMEMORY;
149
150 object->ID3D11VideoDecoder_iface.lpVtbl = &d3d11_video_decoder_vtbl;
151 object->refcount = 1;
152
153 wined3d_private_store_init(&object->private_store);
154 object->device = device;
155 ID3D11Device2_AddRef(&device->ID3D11Device2_iface);
156
157 TRACE("Created video decoder %p.\n", object);
158 *decoder = object;
159 return S_OK;
160}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const struct ID3D11VideoDecoderVtbl d3d11_video_decoder_vtbl
Definition: decoder.c:129
#define calloc
Definition: rosglue.h:14
struct d3d_device * device
static void wined3d_private_store_init(struct wined3d_private_store *store)
Definition: wined3d.h:2607

Referenced by d3d11_video_device_CreateVideoDecoder().

◆ impl_from_ID3D11VideoDecoder()

static struct d3d_video_decoder * impl_from_ID3D11VideoDecoder ( ID3D11VideoDecoder *  iface)
static

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3d11  )

Variable Documentation

◆ d3d11_video_decoder_vtbl

const struct ID3D11VideoDecoderVtbl d3d11_video_decoder_vtbl
static
Initial value:
=
{
}
static void STDMETHODCALLTYPE d3d11_video_decoder_GetDevice(ID3D11VideoDecoder *iface, ID3D11Device **device)
Definition: decoder.c:76
static ULONG STDMETHODCALLTYPE d3d11_video_decoder_AddRef(ID3D11VideoDecoder *iface)
Definition: decoder.c:49
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetDriverHandle(ID3D11VideoDecoder *iface, HANDLE *handle)
Definition: decoder.c:123
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetCreationParameters(ID3D11VideoDecoder *iface, D3D11_VIDEO_DECODER_DESC *desc, D3D11_VIDEO_DECODER_CONFIG *config)
Definition: decoder.c:116
static ULONG STDMETHODCALLTYPE d3d11_video_decoder_Release(ID3D11VideoDecoder *iface)
Definition: decoder.c:59
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_GetPrivateData(ID3D11VideoDecoder *iface, REFGUID guid, UINT *data_size, void *data)
Definition: decoder.c:86
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_SetPrivateData(ID3D11VideoDecoder *iface, REFGUID guid, UINT data_size, const void *data)
Definition: decoder.c:96
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_SetPrivateDataInterface(ID3D11VideoDecoder *iface, REFGUID guid, const IUnknown *data)
Definition: decoder.c:106
static HRESULT STDMETHODCALLTYPE d3d11_video_decoder_QueryInterface(ID3D11VideoDecoder *iface, REFIID riid, void **object)
Definition: decoder.c:29

Definition at line 129 of file decoder.c.

Referenced by d3d_video_decoder_create().