64 memset(&ret_props, 0xcc,
sizeof(ret_props));
65 hr = IMemAllocator_GetProperties(
allocator, &ret_props);
67 ok(!ret_props.cBuffers,
"Got %ld buffers.\n", ret_props.cBuffers);
68 ok(!ret_props.cbBuffer,
"Got size %ld.\n", ret_props.cbBuffer);
69 ok(!ret_props.cbAlign,
"Got align %ld.\n", ret_props.cbAlign);
70 ok(!ret_props.cbPrefix,
"Got prefix %ld.\n", ret_props.cbPrefix);
72 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
78 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
80 ok(!
memcmp(&req_props, &
tests[
i],
sizeof(req_props)),
"Test %u: Requested props should not be changed.\n",
i);
81 ok(ret_props.cBuffers == req_props.
cBuffers,
"Test %u: Got %ld buffers.\n",
i, ret_props.cBuffers);
82 ok(ret_props.cbBuffer >= req_props.
cbBuffer,
"Test %u: Got size %ld.\n",
i, ret_props.cbBuffer);
83 ok(ret_props.cbAlign == req_props.
cbAlign,
"Test %u: Got alignment %ld.\n",
i, ret_props.cbAlign);
84 ok(ret_props.cbPrefix == req_props.
cbPrefix,
"Test %u: Got prefix %ld.\n",
i, ret_props.cbPrefix);
87 hr = IMemAllocator_GetProperties(
allocator, &ret_props);
89 ok(ret_props.cBuffers == req_props.
cBuffers,
"Test %u: Got %ld buffers.\n",
i, ret_props.cBuffers);
90 ok(ret_props.cbBuffer ==
ret_size,
"Test %u: Got size %ld.\n",
i, ret_props.cbBuffer);
91 ok(ret_props.cbAlign == req_props.
cbAlign,
"Test %u: Got alignment %ld.\n",
i, ret_props.cbAlign);
92 ok(ret_props.cbPrefix == req_props.
cbPrefix,
"Test %u: Got prefix %ld.\n",
i, ret_props.cbPrefix);
102 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
114 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
132 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
145 IMediaSample_Release(
sample);
170 IMediaSample_Release(
sample);
184 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
190 hr = IMediaSample_QueryInterface(
sample, &IID_IMediaSample2, (
void **)&sample2);
202 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
212 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
237 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
248 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
264 "Got flags %#lx.\n",
props.dwSampleFlags);
268 props.dwSampleFlags = 0;
277 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
280 props.tStart = 0x123;
296 props.tStart = 0x1234;
297 props.tStop = 0x4321;
310 "Got flags %#lx.\n",
props.dwSampleFlags);
314 IMediaSample2_Release(sample2);
315 IMediaSample_Release(
sample);
321 hr = IMediaSample_QueryInterface(
sample, &IID_IMediaSample2, (
void **)&sample2);
333 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
343 IMediaSample2_Release(sample2);
344 IMediaSample_Release(
sample);
357 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
403 IMediaSample_Release(
sample);
430 IMediaSample_Release(
sample);
438 IMediaSample_Release(
sample);
454 memset(&expect_mt, 0xcc,
sizeof(expect_mt));
455 expect_mt.pUnk =
NULL;
456 expect_mt.cbFormat = 0;
457 expect_mt.pbFormat =
NULL;
459 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
465 hr = IMediaSample_QueryInterface(
sample, &IID_IMediaSample2, (
void **)&sample2);
473 ok(!
props.dwTypeSpecificFlags,
"Got type-specific flags %#lx.\n",
props.dwTypeSpecificFlags);
474 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
475 ok(
props.lActual == 65536,
"Got actual length %ld.\n",
props.lActual);
477 ok(!
props.dwStreamId,
"Got stream ID %#lx.\n",
props.dwStreamId);
478 ok(!
props.pMediaType,
"Got media type %p.\n",
props.pMediaType);
480 ok(
props.cbBuffer == 65536,
"Got buffer length %ld.\n",
props.cbBuffer);
485 hr = IMediaSample_GetMediaType(
sample, &mt);
487 ok(!mt,
"Got media type %p.\n", mt);
493 hr = IMediaSample_GetMediaType(
sample, &mt);
495 ok(!mt,
"Got media type %p.\n", mt);
499 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
500 ok(!
props.pMediaType,
"Got media type %p.\n",
props.pMediaType);
502 hr = IMediaSample_SetMediaType(
sample, &expect_mt);
505 hr = IMediaSample_GetMediaType(
sample, &mt);
519 hr = IMediaSample_GetMediaType(
sample, &mt);
521 ok(!mt,
"Got media type %p.\n", mt);
525 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
526 ok(!
props.pMediaType,
"Got media type %p.\n",
props.pMediaType);
530 len = IMediaSample_GetActualDataLength(
sample);
531 ok(
len == 65536,
"Got length %ld.\n",
len);
533 hr = IMediaSample_SetActualDataLength(
sample, 65537);
535 hr = IMediaSample_SetActualDataLength(
sample, -1);
537 hr = IMediaSample_SetActualDataLength(
sample, 65536);
539 hr = IMediaSample_SetActualDataLength(
sample, 0);
542 len = IMediaSample_GetActualDataLength(
sample);
543 ok(
len == 0,
"Got length %ld.\n",
len);
547 ok(
props.lActual == 0,
"Got actual length %ld.\n",
props.lActual);
555 ok(
props.lActual == 123,
"Got actual length %ld.\n",
props.lActual);
557 len = IMediaSample_GetActualDataLength(
sample);
558 ok(
len == 123,
"Got length %ld.\n",
len);
562 hr = IMediaSample_IsPreroll(
sample);
566 hr = IMediaSample_IsPreroll(
sample);
573 hr = IMediaSample_IsPreroll(
sample);
577 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
579 hr = IMediaSample_IsDiscontinuity(
sample);
583 hr = IMediaSample_IsDiscontinuity(
sample);
590 hr = IMediaSample_IsDiscontinuity(
sample);
594 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
596 hr = IMediaSample_IsSyncPoint(
sample);
600 hr = IMediaSample_IsSyncPoint(
sample);
607 hr = IMediaSample_IsSyncPoint(
sample);
611 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
616 hr = IMediaSample_IsPreroll(
sample);
618 hr = IMediaSample_IsDiscontinuity(
sample);
620 hr = IMediaSample_IsSyncPoint(
sample);
625 "Got flags %#lx.\n",
props.dwSampleFlags);
627 hr = IMediaSample_SetMediaType(
sample, &expect_mt);
630 IMediaSample2_Release(sample2);
631 IMediaSample_Release(
sample);
635 hr = IMediaSample_QueryInterface(
sample, &IID_IMediaSample2, (
void **)&sample2);
640 ok(!
props.dwTypeSpecificFlags,
"Got type-specific flags %#lx.\n",
props.dwTypeSpecificFlags);
641 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
642 ok(
props.lActual == 123,
"Got actual length %ld.\n",
props.lActual);
644 ok(!
props.dwStreamId,
"Got stream ID %#lx.\n",
props.dwStreamId);
645 ok(!
props.pMediaType,
"Got media type %p.\n",
props.pMediaType);
646 ok(
props.cbBuffer == 65536,
"Got buffer length %ld.\n",
props.cbBuffer);
648 IMediaSample2_Release(sample2);
649 IMediaSample_Release(
sample);
@ AM_SAMPLE_DATADISCONTINUITY
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
void WINAPI CoTaskMemFree(void *ptr)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static struct test_info tests[]
static void ULONG ULONG * ret_size
static void test_media_time(void)
static void test_sample_properties(void)
static void test_sample_time(void)
static void test_commit(void)
static IMemAllocator * create_allocator(void)
static void test_properties(void)
#define VFW_E_SAMPLE_TIME_NOT_SET
#define VFW_E_MEDIA_TIME_NOT_SET
#define VFW_E_NOT_COMMITTED
#define VFW_E_BUFFERS_OUTSTANDING
#define VFW_S_NO_STOP_TIME
#define VFW_E_BUFFER_OVERFLOW
#define VFW_E_ALREADY_COMMITTED
static const WCHAR props[]