annotate loader/dshow/allocator.h @ 767:372042df5c77

Added support for flipped BGR/RGB via -flip cmdline switch.
author atmosfear
date Fri, 11 May 2001 14:41:47 +0000
parents 9355b2ae634e
children da26060c81ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
168
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
1 #ifndef ALLOCATOR_H
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
2 #define ALLOCATOR_H
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
3
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
4 #include "interfaces.h"
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
5 #include "cmediasample.h"
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
6 #include <list>
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
7 #include "iunk.h"
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
8 #include "default.h"
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
9
168
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
10 class MemAllocator: public IMemAllocator
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
11 {
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
12 ALLOCATOR_PROPERTIES props;
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
13 std::list<CMediaSample*> used_list;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
14 std::list<CMediaSample*> free_list;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
15 char* new_pointer;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
16 CMediaSample* modified_sample;
168
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
17 static GUID interfaces[];
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
18 DECLARE_IUNKNOWN(MemAllocator)
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
19 public:
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
20 MemAllocator();
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
21 ~MemAllocator(){delete vt;}
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
22 static long CreateAllocator(GUID* clsid, GUID* iid, void** ppv);
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
23 void SetPointer(char* pointer) { new_pointer=pointer; }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
24 void ResetPointer()
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
25 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
26 if(modified_sample)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
27 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
28 modified_sample->ResetPointer();
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
29 modified_sample=0;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
30 }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 168
diff changeset
31 }
168
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
32 static HRESULT STDCALL SetProperties (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
33 IMemAllocator * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
34 /* [in] */ ALLOCATOR_PROPERTIES *pRequest,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
35 /* [out] */ ALLOCATOR_PROPERTIES *pActual);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
36
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
37 static HRESULT STDCALL GetProperties (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
38 IMemAllocator * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
39 /* [out] */ ALLOCATOR_PROPERTIES *pProps);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
40
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
41 static HRESULT STDCALL Commit (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
42 IMemAllocator * This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
43
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
44 static HRESULT STDCALL Decommit (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
45 IMemAllocator * This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
46
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
47 static HRESULT STDCALL GetBuffer (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
48 IMemAllocator * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
49 /* [out] */ IMediaSample **ppBuffer,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
50 /* [in] */ REFERENCE_TIME *pStartTime,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
51 /* [in] */ REFERENCE_TIME *pEndTime,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
52 /* [in] */ DWORD dwFlags);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
53
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
54 static HRESULT STDCALL ReleaseBuffer (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
55 IMemAllocator * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
56 /* [in] */ IMediaSample *pBuffer);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
57 };
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
58
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
59 #endif