443{
453
454 memset(&expect_mt, 0xcc,
sizeof(expect_mt));
455 expect_mt.pUnk =
NULL;
456 expect_mt.cbFormat = 0;
457 expect_mt.pbFormat =
NULL;
458
459 hr = IMemAllocator_SetProperties(
allocator, &req_props, &ret_props);
465 hr = IMediaSample_QueryInterface(
sample, &IID_IMediaSample2, (
void **)&sample2);
467
470
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);
481
482
483
485 hr = IMediaSample_GetMediaType(
sample, &mt);
487 ok(!mt,
"Got media type %p.\n", mt);
488
491
493 hr = IMediaSample_GetMediaType(
sample, &mt);
495 ok(!mt,
"Got media type %p.\n", mt);
496
499 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
500 ok(!
props.pMediaType,
"Got media type %p.\n",
props.pMediaType);
501
502 hr = IMediaSample_SetMediaType(
sample, &expect_mt);
504
505 hr = IMediaSample_GetMediaType(
sample, &mt);
509
514
517
519 hr = IMediaSample_GetMediaType(
sample, &mt);
521 ok(!mt,
"Got media type %p.\n", mt);
522
525 ok(!
props.dwSampleFlags,
"Got flags %#lx.\n",
props.dwSampleFlags);
526 ok(!
props.pMediaType,
"Got media type %p.\n",
props.pMediaType);
527
528
529
530 len = IMediaSample_GetActualDataLength(
sample);
531 ok(
len == 65536,
"Got length %ld.\n",
len);
532
533 hr = IMediaSample_SetActualDataLength(
sample, 65537);
535 hr = IMediaSample_SetActualDataLength(
sample, -1);
537 hr = IMediaSample_SetActualDataLength(
sample, 65536);
539 hr = IMediaSample_SetActualDataLength(
sample, 0);
541
542 len = IMediaSample_GetActualDataLength(
sample);
543 ok(
len == 0,
"Got length %ld.\n",
len);
544
547 ok(
props.lActual == 0,
"Got actual length %ld.\n",
props.lActual);
548
552
555 ok(
props.lActual == 123,
"Got actual length %ld.\n",
props.lActual);
556
557 len = IMediaSample_GetActualDataLength(
sample);
558 ok(
len == 123,
"Got length %ld.\n",
len);
559
560
561
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);
578
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);
595
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);
612
616 hr = IMediaSample_IsPreroll(
sample);
618 hr = IMediaSample_IsDiscontinuity(
sample);
620 hr = IMediaSample_IsSyncPoint(
sample);
625 "Got flags %#lx.\n",
props.dwSampleFlags);
626
627 hr = IMediaSample_SetMediaType(
sample, &expect_mt);
629
630 IMediaSample2_Release(sample2);
631 IMediaSample_Release(
sample);
632
635 hr = IMediaSample_QueryInterface(
sample, &IID_IMediaSample2, (
void **)&sample2);
637
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);
647
648 IMediaSample2_Release(sample2);
649 IMediaSample_Release(
sample);
651}
@ AM_SAMPLE_DATADISCONTINUITY
void WINAPI CoTaskMemFree(void *ptr)
#define VFW_E_BUFFER_OVERFLOW