ReactOS 0.4.16-dev-340-g0540c21
CKsAllocator Class Reference
Inheritance diagram for CKsAllocator:
Collaboration diagram for CKsAllocator:

Public Types

typedef std::stack< IMediaSample * > MediaSampleStack
 
typedef std::list< IMediaSample * > MediaSampleList
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 

Public Member Functions

STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
HANDLE STDMETHODCALLTYPE KsGetAllocatorHandle ()
 
KSALLOCATORMODE STDMETHODCALLTYPE KsGetAllocatorMode ()
 
HRESULT STDMETHODCALLTYPE KsGetAllocatorStatus (PKSSTREAMALLOCATOR_STATUS AllocatorStatus)
 
VOID STDMETHODCALLTYPE KsSetAllocatorMode (KSALLOCATORMODE Mode)
 
PALLOCATOR_PROPERTIES_EX STDMETHODCALLTYPE KsGetProperties ()
 
VOID STDMETHODCALLTYPE KsSetProperties (PALLOCATOR_PROPERTIES_EX Properties)
 
VOID STDMETHODCALLTYPE KsSetAllocatorHandle (HANDLE AllocatorHandle)
 
HANDLE STDMETHODCALLTYPE KsCreateAllocatorAndGetHandle (IKsPin *KsPin)
 
HRESULT STDMETHODCALLTYPE SetProperties (ALLOCATOR_PROPERTIES *pRequest, ALLOCATOR_PROPERTIES *pActual)
 
HRESULT STDMETHODCALLTYPE GetProperties (ALLOCATOR_PROPERTIES *pProps)
 
HRESULT STDMETHODCALLTYPE Commit ()
 
HRESULT STDMETHODCALLTYPE Decommit ()
 
HRESULT STDMETHODCALLTYPE GetBuffer (IMediaSample **ppBuffer, REFERENCE_TIME *pStartTime, REFERENCE_TIME *pEndTime, DWORD dwFlags)
 
HRESULT STDMETHODCALLTYPE ReleaseBuffer (IMediaSample *pBuffer)
 
HRESULT STDMETHODCALLTYPE SetNotify (IMemAllocatorNotifyCallbackTemp *pNotify)
 
HRESULT STDMETHODCALLTYPE GetFreeCount (LONG *plBuffersFree)
 
 CKsAllocator ()
 
virtual ~CKsAllocator ()
 
VOID STDMETHODCALLTYPE FreeMediaSamples ()
 
HRESULT SetNotify ([in] IMemAllocatorNotifyCallbackTemp *pNotify)
 
HRESULT GetFreeCount ([out] LONG *plBuffersFree)
 
HRESULT SetProperties ([in] ALLOCATOR_PROPERTIES *pRequest, [out] ALLOCATOR_PROPERTIES *pActual)
 
HRESULT GetProperties ([out] ALLOCATOR_PROPERTIES *pProps)
 
HRESULT Commit (void)
 
HRESULT Decommit (void)
 
HRESULT GetBuffer ([out] IMediaSample **ppBuffer, [in] REFERENCE_TIME *pStartTime, [in] REFERENCE_TIME *pEndTime, [in] DWORD dwFlags)
 
HRESULT ReleaseBuffer ([in] IMediaSample *pBuffer)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Protected Attributes

LONG m_Ref
 
HANDLE m_hAllocator
 
KSALLOCATORMODE m_Mode
 
ALLOCATOR_PROPERTIES_EX m_Properties
 
IMemAllocatorNotifyCallbackTempm_Notify
 
ULONG m_Allocated
 
LONG m_cbBuffer
 
LONG m_cBuffers
 
LONG m_cbAlign
 
LONG m_cbPrefix
 
BOOL m_Committed
 
CRITICAL_SECTION m_CriticalSection
 
MediaSampleStack m_FreeList
 
MediaSampleList m_UsedList
 
LPVOID m_Buffer
 
BOOL m_FreeSamples
 

Detailed Description

Definition at line 14 of file allocator.cpp.

Member Typedef Documentation

◆ MediaSampleList

Definition at line 19 of file allocator.cpp.

◆ MediaSampleStack

Definition at line 18 of file allocator.cpp.

Constructor & Destructor Documentation

◆ CKsAllocator()

CKsAllocator::CKsAllocator ( )

Definition at line 112 of file allocator.cpp.

112 : m_Ref(0),
113 m_hAllocator(0),
114 m_Mode(KsAllocatorMode_User),
115 m_Notify(0),
116 m_Allocated(0),
117 m_cbBuffer(0),
118 m_cBuffers(0),
119 m_cbAlign(0),
120 m_cbPrefix(0),
122 m_FreeList(),
123 m_UsedList(),
124 m_Buffer(0),
126{
128
129}
CRITICAL_SECTION m_CriticalSection
Definition: allocator.cpp:79
MediaSampleStack m_FreeList
Definition: allocator.cpp:80
MediaSampleList m_UsedList
Definition: allocator.cpp:81
LONG m_cbAlign
Definition: allocator.cpp:76
LONG m_cbBuffer
Definition: allocator.cpp:74
LPVOID m_Buffer
Definition: allocator.cpp:82
LONG m_cBuffers
Definition: allocator.cpp:75
BOOL m_Committed
Definition: allocator.cpp:78
LONG m_cbPrefix
Definition: allocator.cpp:77
ULONG m_Allocated
Definition: allocator.cpp:73
KSALLOCATORMODE m_Mode
Definition: allocator.cpp:70
IMemAllocatorNotifyCallbackTemp * m_Notify
Definition: allocator.cpp:72
HANDLE m_hAllocator
Definition: allocator.cpp:69
BOOL m_FreeSamples
Definition: allocator.cpp:83
#define FALSE
Definition: types.h:117
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751

◆ ~CKsAllocator()

virtual CKsAllocator::~CKsAllocator ( )
inlinevirtual

Definition at line 65 of file allocator.cpp.

65{}

Member Function Documentation

◆ Commit()

HRESULT STDMETHODCALLTYPE CKsAllocator::Commit ( void  )

Implements IMemAllocator.

Definition at line 212 of file allocator.cpp.

213{
214 LONG Index;
216 IMediaSample * Sample;
217 HRESULT hr;
218
219 //TODO integer overflow checks
221
222#ifdef KSPROXY_TRACE
223 OutputDebugStringW(L"CKsAllocator::Commit\n");
224#endif
225
226 if (m_Mode == KsAllocatorMode_Kernel)
227 {
228 /* no-op for kernel allocator */
230 return NOERROR;
231 }
232
233 if (m_Committed)
234 {
235 // already committed
237 return NOERROR;
238 }
239
240 if (m_cbBuffer < 0 || m_cBuffers < 0 || m_cbPrefix < 0)
241 {
242 // invalid parameter
244 return E_OUTOFMEMORY;
245 }
246
248
249 if (m_cbAlign > 1)
250 {
251 //check alignment
252 LONG Mod = Size % m_cbAlign;
253 if (Mod)
254 {
255 // calculate aligned size
256 Size += m_cbAlign - Mod;
257 }
258 }
259
260 LONG TotalSize = Size * m_cBuffers;
261
262 assert(TotalSize);
264 assert(Size);
265
266 // now allocate buffer
268 if (!m_Buffer)
269 {
271 return E_OUTOFMEMORY;
272 }
273
274 ZeroMemory(m_Buffer, TotalSize);
275
277
278 for (Index = 0; Index < m_cBuffers; Index++)
279 {
280 // construct media sample
281 hr = CMediaSample_Constructor((IMemAllocator*)this, CurrentBuffer + m_cbPrefix, m_cbBuffer, IID_IMediaSample, (void**)&Sample);
282 if (FAILED(hr))
283 {
285 return E_OUTOFMEMORY;
286 }
287
288 // add to free list
289 m_FreeList.push(Sample);
290 m_Allocated++;
291
292 //next sample buffer
294 }
295
296 // we are now committed
297 m_Committed = true;
298
300 return S_OK;
301}
static ACPI_BUFFER CurrentBuffer
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define NULL
Definition: types.h:112
#define assert(x)
Definition: debug.h:53
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
Definition: ignoredbgout.c:23
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT WINAPI CMediaSample_Constructor(IMemAllocator *Allocator, BYTE *pBuffer, ULONG BufferSize, REFIID riid, LPVOID *ppv)
#define PAGE_READWRITE
Definition: nt_native.h:1304
#define MEM_COMMIT
Definition: nt_native.h:1313
#define L(x)
Definition: ntvdm.h:50
long LONG
Definition: pedump.c:60
HRESULT hr
Definition: shlfolder.c:183
unsigned char * PUCHAR
Definition: typedefs.h:53
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
LPVOID NTAPI VirtualAlloc(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect)
Definition: virtmem.c:65
#define ZeroMemory
Definition: winbase.h:1737
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define NOERROR
Definition: winerror.h:2354

◆ Decommit()

HRESULT STDMETHODCALLTYPE CKsAllocator::Decommit ( void  )

Implements IMemAllocator.

Definition at line 305 of file allocator.cpp.

306{
308
309#ifdef KSPROXY_TRACE
310 OutputDebugStringW(L"CKsAllocator::Decommit\n");
311#endif
312
313 if (m_Mode == KsAllocatorMode_Kernel)
314 {
315 /* no-op for kernel allocator */
317 return NOERROR;
318 }
319
320 m_Committed = false;
321
322 if (m_Allocated != m_FreeList.size())
323 {
324 // outstanding buffers
325 m_FreeSamples = true;
327 return NOERROR;
328 }
329 else
330 {
331 // no outstanding buffers
332 // free to free them
334 }
335
337 return NOERROR;
338}
VOID STDMETHODCALLTYPE FreeMediaSamples()
Definition: allocator.cpp:578

◆ FreeMediaSamples()

VOID STDMETHODCALLTYPE CKsAllocator::FreeMediaSamples ( )

Definition at line 578 of file allocator.cpp.

579{
580 ULONG Index;
581
582 for(Index = 0; Index < m_FreeList.size(); Index++)
583 {
584 IMediaSample * Sample = m_FreeList.top();
585 m_FreeList.pop();
586 Sample->Release();
587 }
588
589 m_FreeSamples = false;
590 m_Allocated = 0;
591
592 if (m_Buffer)
593 {
594 // release buffer
596
597 m_Buffer = NULL;
598 }
599}
ULONG Release()
#define MEM_RELEASE
Definition: nt_native.h:1316
uint32_t ULONG
Definition: typedefs.h:59
BOOL NTAPI VirtualFree(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD dwFreeType)
Definition: virtmem.c:119

Referenced by Decommit(), and ReleaseBuffer().

◆ GetBuffer()

HRESULT STDMETHODCALLTYPE CKsAllocator::GetBuffer ( IMediaSample **  ppBuffer,
REFERENCE_TIME pStartTime,
REFERENCE_TIME pEndTime,
DWORD  dwFlags 
)

Implements IMemAllocator.

Definition at line 343 of file allocator.cpp.

348{
349 IMediaSample * Sample = NULL;
350
351 if (!m_Committed)
352 return VFW_E_NOT_COMMITTED;
353
354 do
355 {
357
358 if (!m_FreeList.empty())
359 {
360 OutputDebugStringW(L"CKsAllocator::GetBuffer HACK\n");
361 Sample = m_FreeList.top();
362 m_FreeList.pop();
363 }
364
366
367 if (dwFlags & AM_GBF_NOWAIT)
368 {
369 // never wait untill a buffer becomes available
370 break;
371 }
372 }
373 while(Sample == NULL);
374
375 if (!Sample)
376 {
377 // no sample acquired
378 //HACKKKKKKK
379 Sample = m_UsedList.back();
380 m_UsedList.pop_back();
381
382 if (!Sample)
383 return VFW_E_TIMEOUT;
384 }
385
386 // store result
387 *ppBuffer = Sample;
388
389 // store sample in used list
390 m_UsedList.push_front(Sample);
391
392 // done
393 return NOERROR;
394}
#define VFW_E_NOT_COMMITTED
Definition: vfwmsgs.h:56
#define VFW_E_TIMEOUT
Definition: vfwmsgs.h:85
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

◆ GetFreeCount()

HRESULT STDMETHODCALLTYPE CKsAllocator::GetFreeCount ( LONG plBuffersFree)

Implements IMemAllocatorCallbackTemp.

Definition at line 461 of file allocator.cpp.

463{
464 *plBuffersFree = m_Allocated - m_FreeList.size();
465 return S_OK;
466}

◆ GetProperties()

HRESULT STDMETHODCALLTYPE CKsAllocator::GetProperties ( ALLOCATOR_PROPERTIES pProps)

Implements IMemAllocator.

Definition at line 196 of file allocator.cpp.

198{
199 if (!pProps)
200 return E_POINTER;
201
202 pProps->cbBuffer = m_cbBuffer;
203 pProps->cBuffers = m_cBuffers;
204 pProps->cbAlign = m_cbAlign;
205 pProps->cbPrefix = m_cbPrefix;
206
207 return NOERROR;
208}
#define E_POINTER
Definition: winerror.h:2365

◆ KsCreateAllocatorAndGetHandle()

HANDLE STDMETHODCALLTYPE CKsAllocator::KsCreateAllocatorAndGetHandle ( IKsPin *  KsPin)

Definition at line 529 of file allocator.cpp.

531{
532 HRESULT hr;
533 IKsObject * pObject;
535 HANDLE hPin;
536
537#ifdef KSPROXY_TRACE
538 OutputDebugStringW(L"CKsAllocator::KsCreateAllocatorAndGetHandle\n");
539#endif
540
541 if (m_hAllocator)
542 {
545 }
546
547 // get pin IKsObject interface
548 hr = KsPin->QueryInterface(IID_IKsObject, (void**)&pObject);
549 if (FAILED(hr))
550 return NULL;
551
552 // get pin handle
553 hPin = pObject->KsGetObjectHandle();
554
555 //release IKsObject interface
556 pObject->Release();
557
558 if (!hPin || hPin == INVALID_HANDLE_VALUE)
559 return NULL;
560
561 //setup allocator framing
566 AllocatorFraming.PoolType = (m_Properties.LogicalMemoryType == KS_MemoryTypeKernelPaged);
567
569 if (dwError)
570 return NULL;
571
572 return m_hAllocator;
573}
ALLOCATOR_PROPERTIES_EX m_Properties
Definition: allocator.cpp:71
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
Definition: fxobject.hpp:853
const GUID IID_IKsObject
#define CloseHandle
Definition: compat.h:739
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
unsigned long DWORD
Definition: ntddk_ex.h:95
FxObject * pObject
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
_In_ PKSALLOCATOR_FRAMING AllocatorFraming
Definition: ks.h:4518
#define KSALLOCATOR_OPTIONF_SYSTEM_MEMORY
Definition: ks.h:1691
KSDDKAPI DWORD NTAPI KsCreateAllocator(HANDLE ConnectionHandle, PKSALLOCATOR_FRAMING AllocatorFraming, PHANDLE AllocatorHandle)
Definition: ksuser.c:107
ULONG PoolType
Definition: ks.h:1668
ULONG OptionsFlags
Definition: ks.h:1662
ULONG Frames
Definition: ks.h:1670
ULONG FileAlignment
Definition: ks.h:1672
ULONG FrameSize
Definition: ks.h:1671

◆ KsGetAllocatorHandle()

HANDLE STDMETHODCALLTYPE CKsAllocator::KsGetAllocatorHandle ( )

Definition at line 473 of file allocator.cpp.

474{
475 return m_hAllocator;
476}

◆ KsGetAllocatorMode()

KSALLOCATORMODE STDMETHODCALLTYPE CKsAllocator::KsGetAllocatorMode ( )

Definition at line 480 of file allocator.cpp.

481{
482 return m_Mode;
483}

◆ KsGetAllocatorStatus()

HRESULT STDMETHODCALLTYPE CKsAllocator::KsGetAllocatorStatus ( PKSSTREAMALLOCATOR_STATUS  AllocatorStatus)

Definition at line 487 of file allocator.cpp.

489{
490 return NOERROR;
491}

◆ KsGetProperties()

PALLOCATOR_PROPERTIES_EX STDMETHODCALLTYPE CKsAllocator::KsGetProperties ( )

Definition at line 505 of file allocator.cpp.

506{
507 return &m_Properties;
508}

◆ KsSetAllocatorHandle()

VOID STDMETHODCALLTYPE CKsAllocator::KsSetAllocatorHandle ( HANDLE  AllocatorHandle)

Definition at line 520 of file allocator.cpp.

522{
524}
_In_ PKSALLOCATOR_FRAMING _Out_ PHANDLE AllocatorHandle
Definition: ks.h:4519

◆ KsSetAllocatorMode()

VOID STDMETHODCALLTYPE CKsAllocator::KsSetAllocatorMode ( KSALLOCATORMODE  Mode)

Definition at line 494 of file allocator.cpp.

496{
497 m_Mode = Mode;
498}
_In_ ULONG Mode
Definition: hubbusif.h:303

◆ KsSetProperties()

VOID STDMETHODCALLTYPE CKsAllocator::KsSetProperties ( PALLOCATOR_PROPERTIES_EX  Properties)

Definition at line 512 of file allocator.cpp.

514{
515 CopyMemory(&m_Properties, Properties, sizeof(ALLOCATOR_PROPERTIES_EX));
516}
#define CopyMemory
Definition: winbase.h:1735

◆ QueryInterface()

HRESULT STDMETHODCALLTYPE CKsAllocator::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 89 of file allocator.cpp.

92{
93 if (IsEqualGUID(refiid, IID_IUnknown) ||
96 {
97 *Output = PVOID(this);
98 reinterpret_cast<IUnknown*>(*Output)->AddRef();
99 return NOERROR;
100 }
101 if (IsEqualGUID(refiid, IID_IMemAllocator) ||
102 IsEqualGUID(refiid, IID_IMemAllocatorCallbackTemp))
103 {
105 reinterpret_cast<IMemAllocatorCallbackTemp*>(*Output)->AddRef();
106 return NOERROR;
107 }
108
109 return E_NOINTERFACE;
110}
const GUID IID_IKsAllocatorEx
Definition: allocator.cpp:11
const GUID IID_IKsAllocator
Definition: allocator.cpp:12
const GUID IID_IUnknown
ULONG AddRef()
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
@ Output
Definition: arc.h:85
void * PVOID
Definition: typedefs.h:50
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ ReleaseBuffer()

HRESULT STDMETHODCALLTYPE CKsAllocator::ReleaseBuffer ( IMediaSample pBuffer)

Implements IMemAllocator.

Definition at line 398 of file allocator.cpp.

400{
402
403#ifdef KSPROXY_TRACE
404 OutputDebugStringW(L"CKsAllocator::ReleaseBuffer\n");
405#endif
406
407 // media sample always 1 ref count in free list
408 pBuffer->AddRef();
409
410 // add the sample to the free list
411 m_FreeList.push(pBuffer);
412
413
414 if (m_FreeSamples)
415 {
416 // pending de-commit
417 if (m_FreeList.size () == m_Allocated)
418 {
420 }
421 }
422
423 if (m_Notify)
424 {
425 //notify caller of an available buffer
427 }
428
430 return S_OK;
431}
nsrefcnt AddRef()
PVOID pBuffer

◆ SetNotify()

HRESULT STDMETHODCALLTYPE CKsAllocator::SetNotify ( IMemAllocatorNotifyCallbackTemp pNotify)

Implements IMemAllocatorCallbackTemp.

Definition at line 438 of file allocator.cpp.

440{
442
443#ifdef KSPROXY_TRACE
444 OutputDebugStringW(L"CKsAllocator::SetNotify\n");
445#endif
446
447 if (pNotify)
448 pNotify->AddRef();
449
450 if (m_Notify)
451 m_Notify->Release();
452
453 m_Notify = pNotify;
454
456 return NOERROR;
457}

◆ SetProperties()

HRESULT STDMETHODCALLTYPE CKsAllocator::SetProperties ( ALLOCATOR_PROPERTIES pRequest,
ALLOCATOR_PROPERTIES pActual 
)

Implements IMemAllocator.

Definition at line 136 of file allocator.cpp.

139{
140 SYSTEM_INFO SystemInfo;
141
143
144#ifdef KSPROXY_TRACE
145 OutputDebugStringW(L"CKsAllocator::SetProperties\n");
146#endif
147
148 if (!pRequest || !pActual)
149 return E_POINTER;
150
151 // zero output properties
152 ZeroMemory(pActual, sizeof(ALLOCATOR_PROPERTIES));
153
154 // get system info
155 GetSystemInfo(&SystemInfo);
156
157 if (!pRequest->cbAlign || (pRequest->cbAlign - 1) & SystemInfo.dwAllocationGranularity)
158 {
159 // bad alignment
161 return VFW_E_BADALIGN;
162 }
163
164 if (m_Mode == KsAllocatorMode_Kernel)
165 {
166 // u can't change a kernel allocator
169 }
170
171 if (m_Committed)
172 {
173 // need to decommit first
176 }
177
178 if (m_Allocated != m_FreeList.size())
179 {
180 // outstanding buffers
183 }
184
185 pActual->cbAlign = m_cbAlign = pRequest->cbAlign;
186 pActual->cbBuffer = m_cbBuffer = pRequest->cbBuffer;
187 pActual->cbPrefix = m_cbPrefix = pRequest->cbPrefix;
188 pActual->cBuffers = m_cBuffers = pRequest->cBuffers;
189
191 return NOERROR;
192}
VOID WINAPI GetSystemInfo(IN LPSYSTEM_INFO lpSystemInfo)
Definition: sysinfo.c:143
FxRequest * pRequest
DWORD dwAllocationGranularity
Definition: winbase.h:1204
#define VFW_E_BADALIGN
Definition: vfwmsgs.h:53
#define VFW_E_BUFFERS_OUTSTANDING
Definition: vfwmsgs.h:55
#define VFW_E_ALREADY_COMMITTED
Definition: vfwmsgs.h:54

◆ STDMETHODIMP_() [1/2]

CKsAllocator::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 23 of file allocator.cpp.

24 {
26 return m_Ref;
27 }
#define InterlockedIncrement
Definition: armddk.h:53

◆ STDMETHODIMP_() [2/2]

CKsAllocator::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 28 of file allocator.cpp.

29 {
31
32 if (!m_Ref)
33 {
34 delete this;
35 return 0;
36 }
37 return m_Ref;
38 }
#define InterlockedDecrement
Definition: armddk.h:52

Member Data Documentation

◆ m_Allocated

ULONG CKsAllocator::m_Allocated
protected

◆ m_Buffer

LPVOID CKsAllocator::m_Buffer
protected

Definition at line 82 of file allocator.cpp.

Referenced by Commit(), and FreeMediaSamples().

◆ m_cbAlign

LONG CKsAllocator::m_cbAlign
protected

Definition at line 76 of file allocator.cpp.

Referenced by Commit(), GetProperties(), and SetProperties().

◆ m_cbBuffer

LONG CKsAllocator::m_cbBuffer
protected

Definition at line 74 of file allocator.cpp.

Referenced by Commit(), GetProperties(), and SetProperties().

◆ m_cbPrefix

LONG CKsAllocator::m_cbPrefix
protected

Definition at line 77 of file allocator.cpp.

Referenced by Commit(), GetProperties(), and SetProperties().

◆ m_cBuffers

LONG CKsAllocator::m_cBuffers
protected

Definition at line 75 of file allocator.cpp.

Referenced by Commit(), GetProperties(), and SetProperties().

◆ m_Committed

BOOL CKsAllocator::m_Committed
protected

Definition at line 78 of file allocator.cpp.

Referenced by Commit(), Decommit(), GetBuffer(), and SetProperties().

◆ m_CriticalSection

CRITICAL_SECTION CKsAllocator::m_CriticalSection
protected

◆ m_FreeList

MediaSampleStack CKsAllocator::m_FreeList
protected

◆ m_FreeSamples

BOOL CKsAllocator::m_FreeSamples
protected

Definition at line 83 of file allocator.cpp.

Referenced by Decommit(), FreeMediaSamples(), and ReleaseBuffer().

◆ m_hAllocator

HANDLE CKsAllocator::m_hAllocator
protected

◆ m_Mode

KSALLOCATORMODE CKsAllocator::m_Mode
protected

Definition at line 70 of file allocator.cpp.

Referenced by Commit(), Decommit(), KsGetAllocatorMode(), KsSetAllocatorMode(), and SetProperties().

◆ m_Notify

IMemAllocatorNotifyCallbackTemp* CKsAllocator::m_Notify
protected

Definition at line 72 of file allocator.cpp.

Referenced by ReleaseBuffer(), and SetNotify().

◆ m_Properties

ALLOCATOR_PROPERTIES_EX CKsAllocator::m_Properties
protected

Definition at line 71 of file allocator.cpp.

Referenced by KsCreateAllocatorAndGetHandle(), KsGetProperties(), and KsSetProperties().

◆ m_Ref

LONG CKsAllocator::m_Ref
protected

Definition at line 68 of file allocator.cpp.

Referenced by STDMETHODIMP_().

◆ m_UsedList

MediaSampleList CKsAllocator::m_UsedList
protected

Definition at line 81 of file allocator.cpp.

Referenced by GetBuffer().


The documentation for this class was generated from the following file: