2 * Unit tests for Direct Show functions
4 * Copyright (C) 2005 Christian Costa
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 #include "wine/test.h"
28 static void CommitDecommitTest(void)
30 IMemAllocator
* pMemAllocator
;
33 hr
= CoCreateInstance(&CLSID_MemoryAllocator
, NULL
, CLSCTX_INPROC_SERVER
, &IID_IMemAllocator
, (LPVOID
*)&pMemAllocator
);
34 ok(hr
==S_OK
, "Unable to create memory allocator %x\n", hr
);
38 ALLOCATOR_PROPERTIES RequestedProps
;
39 ALLOCATOR_PROPERTIES ActualProps
;
41 IMediaSample
*sample
= NULL
, *sample2
= NULL
;
43 RequestedProps
.cBuffers
= 2;
44 RequestedProps
.cbBuffer
= 65536;
45 RequestedProps
.cbAlign
= 1;
46 RequestedProps
.cbPrefix
= 0;
48 hr
= IMemAllocator_SetProperties(pMemAllocator
, &RequestedProps
, &ActualProps
);
49 ok(hr
==S_OK
, "SetProperties returned: %x\n", hr
);
51 hr
= IMemAllocator_Commit(pMemAllocator
);
52 ok(hr
==S_OK
, "Commit returned: %x\n", hr
);
53 hr
= IMemAllocator_Commit(pMemAllocator
);
54 ok(hr
==S_OK
, "Commit returned: %x\n", hr
);
56 hr
= IMemAllocator_GetBuffer(pMemAllocator
, &sample
, NULL
, NULL
, 0);
57 ok(hr
==S_OK
, "Could not get a buffer: %x\n", hr
);
59 hr
= IMemAllocator_Decommit(pMemAllocator
);
60 ok(hr
==S_OK
, "Decommit returned: %x\n", hr
);
61 hr
= IMemAllocator_Decommit(pMemAllocator
);
62 ok(hr
==S_OK
, "Cecommit returned: %x\n", hr
);
64 /* Decommit and recommit while holding a sample */
67 hr
= IMemAllocator_Commit(pMemAllocator
);
68 ok(hr
==S_OK
, "Commit returned: %x\n", hr
);
70 hr
= IMemAllocator_GetBuffer(pMemAllocator
, &sample2
, NULL
, NULL
, 0);
71 ok(hr
==S_OK
, "Could not get a buffer: %x\n", hr
);
72 IMediaSample_Release(sample
);
74 IMediaSample_Release(sample2
);
76 hr
= IMemAllocator_Decommit(pMemAllocator
);
77 ok(hr
==S_OK
, "Cecommit returned: %x\n", hr
);
79 IMemAllocator_Release(pMemAllocator
);
83 START_TEST(memallocator
)