These tests are for implementing encoding of sink writer. The implements MR is !7160, working in progress. Submitted the tests MR first.
-- v3: mfreadwrite/tests: Test sample processing for mp4 sink writer. mfreadwrite/tests: Test getting transforms from mp4 sink writer. mfreadwrite/tests: Test AddStream and SetInputMediaType for mp4 sink writer. mfreadwrite/tests: Remove trivial if.
From: Ziqing Hui zhui@codeweavers.com
--- dlls/mfreadwrite/tests/mfplat.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index b6981479a1b..21758cc5aae 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -1612,23 +1612,19 @@ static void test_sink_writer_mp4(void)
hr = MFCreateSinkWriterFromURL(NULL, stream, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - if (hr == S_OK) - IMFSinkWriter_Release(writer); + IMFSinkWriter_Release(writer);
hr = MFCreateSinkWriterFromURL(tmp_file, NULL, NULL, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - if (hr == S_OK) - IMFSinkWriter_Release(writer); + IMFSinkWriter_Release(writer);
hr = MFCreateSinkWriterFromURL(tmp_file, NULL, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - if (hr == S_OK) - IMFSinkWriter_Release(writer); + IMFSinkWriter_Release(writer);
hr = MFCreateSinkWriterFromURL(tmp_file, stream, NULL, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - if (hr == S_OK) - IMFSinkWriter_Release(writer); + IMFSinkWriter_Release(writer);
hr = MFCreateSinkWriterFromURL(tmp_file, stream, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
From: Ziqing Hui zhui@codeweavers.com
--- dlls/mfreadwrite/tests/mfplat.c | 78 ++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-)
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index 21758cc5aae..70c058eb29f 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -1582,11 +1582,31 @@ static void test_sink_writer_create(void)
static void test_sink_writer_mp4(void) { + static const struct attribute_desc video_stream_type_desc[] = + { + ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_H264), + ATTR_RATIO(MF_MT_FRAME_SIZE, 96, 96), + ATTR_RATIO(MF_MT_FRAME_RATE, 30000, 1001), + ATTR_UINT32(MF_MT_AVG_BITRATE, 193540), + ATTR_UINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive), + {0}, + }; + static const struct attribute_desc video_input_type_desc[] = + { + ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_RGB32), + ATTR_RATIO(MF_MT_FRAME_SIZE, 96, 96), + ATTR_RATIO(MF_MT_FRAME_RATE, 30000, 1001), + {0}, + }; + IMFMediaType *stream_type, *input_type; WCHAR tmp_file[MAX_PATH]; IMFSinkWriter *writer; IMFByteStream *stream; IMFAttributes *attr; IMFMediaSink *sink; + DWORD index; HRESULT hr;
GetTempPathW(ARRAY_SIZE(tmp_file), tmp_file); @@ -1598,6 +1618,10 @@ static void test_sink_writer_mp4(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); hr = MFCreateTempFile(MF_ACCESSMODE_READWRITE, MF_OPENMODE_DELETE_IF_EXIST, MF_FILEFLAGS_NONE, &stream); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + hr = MFCreateMediaType(&stream_type); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + hr = MFCreateMediaType(&input_type); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Test MFCreateSinkWriterFromURL. */ writer = (void *)0xdeadbeef; @@ -1629,7 +1653,43 @@ static void test_sink_writer_mp4(void) hr = MFCreateSinkWriterFromURL(tmp_file, stream, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- /* Test GetServiceForStream. */ + /* BeginWriting fails before calling AddStream. */ + hr = IMFSinkWriter_BeginWriting(writer); + ok(hr == MF_E_INVALIDREQUEST, "BeginWriting returned %#lx.\n", hr); + + /* Test AddStream. */ + init_media_type(stream_type, video_stream_type_desc, -1); + + hr = IMFSinkWriter_AddStream(writer, NULL, NULL); + ok(hr == E_INVALIDARG, "AddStream returned %#lx.\n", hr); + hr = IMFSinkWriter_AddStream(writer, stream_type, NULL); + ok(hr == E_POINTER, "AddStream returned %#lx.\n", hr); + + index = 0xdeadbeef; + hr = IMFSinkWriter_AddStream(writer, NULL, &index); + ok(hr == E_INVALIDARG, "AddStream returned %#lx.\n", hr); + ok(index == 0xdeadbeef, "Unexpected index %lu.\n", index); + + hr = IMFSinkWriter_AddStream(writer, stream_type, &index); + ok(hr == S_OK, "AddStream returned %#lx.\n", hr); + ok(index == 0, "Unexpected index %lu.\n", index); + + /* Test SetInputMediaType. */ + init_media_type(input_type, video_input_type_desc, -1); + hr = IMFSinkWriter_SetInputMediaType(writer, 0xdeadbeef, NULL, NULL); + todo_wine + ok(hr == E_INVALIDARG, "SetInputMediaType returned %#lx.\n", hr); + hr = IMFSinkWriter_SetInputMediaType(writer, 0, NULL, NULL); + todo_wine + ok(hr == E_INVALIDARG, "SetInputMediaType returned %#lx.\n", hr); + hr = IMFSinkWriter_SetInputMediaType(writer, 0xdeadbeef, input_type, NULL); + todo_wine + ok(hr == MF_E_INVALIDSTREAMNUMBER, "SetInputMediaType returned %#lx.\n", hr); + hr = IMFSinkWriter_SetInputMediaType(writer, 0, input_type, NULL); + todo_wine + ok(hr == S_OK, "SetInputMediaType returned %#lx.\n", hr); + + /* Test GetServiceForStream before calling BeginWriting. */ sink = (void *)0xdeadbeef; hr = IMFSinkWriter_GetServiceForStream(writer, MF_SINK_WRITER_MEDIASINK, &GUID_NULL, &IID_IMFMediaSink, (void **)&sink); @@ -1638,8 +1698,24 @@ static void test_sink_writer_mp4(void) todo_wine ok(!sink, "Unexpected pointer %p.\n", sink);
+ /* Test BeginWriting. */ + hr = IMFSinkWriter_BeginWriting(writer); + todo_wine + ok(hr == S_OK, "BeginWriting returned %#lx.\n", hr); + hr = IMFSinkWriter_BeginWriting(writer); + todo_wine + ok(hr == MF_E_INVALIDREQUEST, "BeginWriting returned %#lx.\n", hr); + + /* Test GetServiceForStream after calling BeginWriting. */ + hr = IMFSinkWriter_GetServiceForStream(writer, MF_SINK_WRITER_MEDIASINK, + &GUID_NULL, &IID_IMFMediaSink, (void **)&sink); + ok(hr == S_OK, "GetServiceForStream returned %#lx.\n", hr); + IMFMediaSink_Release(sink); + DeleteFileW(tmp_file); IMFSinkWriter_Release(writer); + IMFMediaType_Release(input_type); + IMFMediaType_Release(stream_type); IMFByteStream_Release(stream); IMFAttributes_Release(attr); }
From: Ziqing Hui zhui@codeweavers.com
The tests indicate that mp4 writer has 2 transforms: a processor and a encoder. --- dlls/mfreadwrite/tests/mfplat.c | 49 +++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-)
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index 70c058eb29f..6e49976aa4c 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -1601,13 +1601,16 @@ static void test_sink_writer_mp4(void) {0}, }; IMFMediaType *stream_type, *input_type; + IMFSinkWriterEx *writer_ex = NULL; WCHAR tmp_file[MAX_PATH]; + IMFTransform *transform; IMFSinkWriter *writer; IMFByteStream *stream; IMFAttributes *attr; IMFMediaSink *sink; DWORD index; HRESULT hr; + GUID guid;
GetTempPathW(ARRAY_SIZE(tmp_file), tmp_file); wcscat(tmp_file, L"tmp.mp4"); @@ -1653,6 +1656,10 @@ static void test_sink_writer_mp4(void) hr = MFCreateSinkWriterFromURL(tmp_file, stream, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IMFSinkWriter_QueryInterface(writer, &IID_IMFSinkWriterEx, (void **)&writer_ex); + todo_wine + ok(hr == S_OK, "QueryInterface returned %#lx.\n", hr); + /* BeginWriting fails before calling AddStream. */ hr = IMFSinkWriter_BeginWriting(writer); ok(hr == MF_E_INVALIDREQUEST, "BeginWriting returned %#lx.\n", hr); @@ -1674,6 +1681,19 @@ static void test_sink_writer_mp4(void) ok(hr == S_OK, "AddStream returned %#lx.\n", hr); ok(index == 0, "Unexpected index %lu.\n", index);
+ /* Get transform before SetInputMediaType. */ + transform = (void *)0xdeadbeef; + hr = IMFSinkWriter_GetServiceForStream(writer, 0, &GUID_NULL, &IID_IMFTransform, (void **)&transform); + todo_wine + ok(hr == MF_E_UNSUPPORTED_SERVICE, "GetServiceForStream returned %#lx.\n", hr); + ok(!transform, "Unexpected pointer %p.\n", transform); + + if (writer_ex) + { + hr = IMFSinkWriterEx_GetTransformForStream(writer_ex, 0, 0, &guid, &transform); + ok(hr == MF_E_INVALIDINDEX, "GetTransformForStream returned %#lx.\n", hr); + } + /* Test SetInputMediaType. */ init_media_type(input_type, video_input_type_desc, -1); hr = IMFSinkWriter_SetInputMediaType(writer, 0xdeadbeef, NULL, NULL); @@ -1689,7 +1709,30 @@ static void test_sink_writer_mp4(void) todo_wine ok(hr == S_OK, "SetInputMediaType returned %#lx.\n", hr);
- /* Test GetServiceForStream before calling BeginWriting. */ + /* Get transform after SetInputMediaType. */ + hr = IMFSinkWriter_GetServiceForStream(writer, 0, &GUID_NULL, &IID_IMFTransform, (void **)&transform); + todo_wine + ok(hr == S_OK, "GetServiceForStream returned %#lx.\n", hr); + if (hr == S_OK) + IMFTransform_Release(transform); + + if (writer_ex) + { + hr = IMFSinkWriterEx_GetTransformForStream(writer_ex, 0, 0, &guid, &transform); + ok(hr == S_OK, "GetTransformForStream returned %#lx.\n", hr); + ok(IsEqualGUID(&guid, &MFT_CATEGORY_VIDEO_PROCESSOR), "Unexpected guid %s.\n", debugstr_guid(&guid)); + IMFTransform_Release(transform); + + hr = IMFSinkWriterEx_GetTransformForStream(writer_ex, 0, 1, &guid, &transform); + ok(hr == S_OK, "GetTransformForStream returned %#lx.\n", hr); + ok(IsEqualGUID(&guid, &MFT_CATEGORY_VIDEO_ENCODER), "Unexpected guid %s.\n", debugstr_guid(&guid)); + IMFTransform_Release(transform); + + hr = IMFSinkWriterEx_GetTransformForStream(writer_ex, 0, 2, &guid, &transform); + ok(hr == MF_E_INVALIDINDEX, "GetTransformForStream returned %#lx.\n", hr); + } + + /* Get media sink before BeginWriting. */ sink = (void *)0xdeadbeef; hr = IMFSinkWriter_GetServiceForStream(writer, MF_SINK_WRITER_MEDIASINK, &GUID_NULL, &IID_IMFMediaSink, (void **)&sink); @@ -1706,12 +1749,14 @@ static void test_sink_writer_mp4(void) todo_wine ok(hr == MF_E_INVALIDREQUEST, "BeginWriting returned %#lx.\n", hr);
- /* Test GetServiceForStream after calling BeginWriting. */ + /* Get media sink after BeginWriting. */ hr = IMFSinkWriter_GetServiceForStream(writer, MF_SINK_WRITER_MEDIASINK, &GUID_NULL, &IID_IMFMediaSink, (void **)&sink); ok(hr == S_OK, "GetServiceForStream returned %#lx.\n", hr); IMFMediaSink_Release(sink);
+ if (writer_ex) + IMFSinkWriterEx_Release(writer_ex); DeleteFileW(tmp_file); IMFSinkWriter_Release(writer); IMFMediaType_Release(input_type);
From: Ziqing Hui zhui@codeweavers.com
--- dlls/mfreadwrite/tests/mfplat.c | 72 ++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 5 deletions(-)
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index 6e49976aa4c..ad5506e8dd5 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -162,6 +162,37 @@ static void init_attributes_(const char *file, int line, IMFAttributes *attribut } }
+static IMFSample *create_sample(const BYTE *data, DWORD size) +{ + IMFMediaBuffer *media_buffer; + IMFSample *sample; + BYTE *buffer; + DWORD length; + HRESULT hr; + ULONG ret; + + hr = MFCreateSample(&sample); + ok(hr == S_OK, "MFCreateSample returned %#lx\n", hr); + hr = MFCreateMemoryBuffer(size, &media_buffer); + ok(hr == S_OK, "MFCreateMemoryBuffer returned %#lx\n", hr); + + hr = IMFMediaBuffer_Lock(media_buffer, &buffer, NULL, &length); + ok(hr == S_OK, "Lock returned %#lx\n", hr); + ok(length == 0, "Unexpected length %lu\n", length); + memcpy(buffer, data, size); + hr = IMFMediaBuffer_Unlock(media_buffer); + ok(hr == S_OK, "Unlock returned %#lx\n", hr); + + hr = IMFMediaBuffer_SetCurrentLength(media_buffer, size); + ok(hr == S_OK, "SetCurrentLength returned %#lx\n", hr); + hr = IMFSample_AddBuffer(sample, media_buffer); + ok(hr == S_OK, "AddBuffer returned %#lx\n", hr); + ret = IMFMediaBuffer_Release(media_buffer); + ok(ret == 1, "Release returned %lu\n", ret); + + return sample; +} + static ULONG get_refcount(void *iface) { IUnknown *unknown = iface; @@ -1602,13 +1633,15 @@ static void test_sink_writer_mp4(void) }; IMFMediaType *stream_type, *input_type; IMFSinkWriterEx *writer_ex = NULL; + DWORD rgb32_data[96 * 96]; WCHAR tmp_file[MAX_PATH]; IMFTransform *transform; IMFSinkWriter *writer; IMFByteStream *stream; + DWORD index, i, size; IMFAttributes *attr; IMFMediaSink *sink; - DWORD index; + HANDLE file; HRESULT hr; GUID guid;
@@ -1641,10 +1674,6 @@ static void test_sink_writer_mp4(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); IMFSinkWriter_Release(writer);
- hr = MFCreateSinkWriterFromURL(tmp_file, NULL, NULL, &writer); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - IMFSinkWriter_Release(writer); - hr = MFCreateSinkWriterFromURL(tmp_file, NULL, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); IMFSinkWriter_Release(writer); @@ -1655,6 +1684,10 @@ static void test_sink_writer_mp4(void)
hr = MFCreateSinkWriterFromURL(tmp_file, stream, attr, &writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + IMFSinkWriter_Release(writer); + + hr = MFCreateSinkWriterFromURL(tmp_file, NULL, NULL, &writer); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMFSinkWriter_QueryInterface(writer, &IID_IMFSinkWriterEx, (void **)&writer_ex); todo_wine @@ -1755,6 +1788,35 @@ static void test_sink_writer_mp4(void) ok(hr == S_OK, "GetServiceForStream returned %#lx.\n", hr); IMFMediaSink_Release(sink);
+ /* WriteSample. */ + for (i = 0; i < ARRAY_SIZE(rgb32_data); ++i) + rgb32_data[i] = 0x0000ff00; + for (i = 0; i < 30; ++i) + { + IMFSample *sample = create_sample((const BYTE *)rgb32_data, sizeof(rgb32_data)); + hr = IMFSample_SetSampleTime(sample, 333333 * i); + ok(hr == S_OK, "SetSampleTime returned %#lx.\n", hr); + hr = IMFSample_SetSampleDuration(sample, 333333); + ok(hr == S_OK, "SetSampleDuration returned %#lx.\n", hr); + hr = IMFSinkWriter_WriteSample(writer, 0, sample); + todo_wine + ok(hr == S_OK, "WriteSample returned %#lx.\n", hr); + IMFSample_Release(sample); + } + + /* Finalize. */ + hr = IMFSinkWriter_Finalize(writer); + todo_wine + ok(hr == S_OK, "Finalize returned %#lx.\n", hr); + + /* Check the output file. */ + file = CreateFileW(tmp_file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + todo_wine + ok(file != INVALID_HANDLE_VALUE, "CreateFileW failed.\n"); + size = GetFileSize(file, NULL); + todo_wine + ok(size != INVALID_FILE_SIZE && size > 0x400, "Unexpected file size %#lx.\n", size); + if (writer_ex) IMFSinkWriterEx_Release(writer_ex); DeleteFileW(tmp_file);
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=150961
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
mfreadwrite: mfplat.c:1694: Test failed: QueryInterface returned 0x80004002. mfplat.c:1743: Test failed: SetInputMediaType returned 0xc00d36b4. mfplat.c:1748: Test failed: GetServiceForStream returned 0xc00d36ba. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1810: Test failed: Finalize returned 0xc00d4a44. mfplat.c:1815: Test failed: CreateFileW failed. mfplat.c:1818: Test failed: Unexpected file size 0xffffffff.
=== w7u_adm (32 bit report) ===
mfreadwrite: mfplat.c:1694: Test failed: QueryInterface returned 0x80004002. mfplat.c:1743: Test failed: SetInputMediaType returned 0xc00d36b4. mfplat.c:1748: Test failed: GetServiceForStream returned 0xc00d36ba. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1810: Test failed: Finalize returned 0xc00d4a44. mfplat.c:1815: Test failed: CreateFileW failed. mfplat.c:1818: Test failed: Unexpected file size 0xffffffff.
=== w7u_el (32 bit report) ===
mfreadwrite: mfplat.c:1694: Test failed: QueryInterface returned 0x80004002. mfplat.c:1743: Test failed: SetInputMediaType returned 0xc00d36b4. mfplat.c:1748: Test failed: GetServiceForStream returned 0xc00d36ba. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1810: Test failed: Finalize returned 0xc00d4a44. mfplat.c:1815: Test failed: CreateFileW failed. mfplat.c:1818: Test failed: Unexpected file size 0xffffffff.
=== w7pro64 (64 bit report) ===
mfreadwrite: mfplat.c:1694: Test failed: QueryInterface returned 0x80004002. mfplat.c:1743: Test failed: SetInputMediaType returned 0xc00d36b4. mfplat.c:1748: Test failed: GetServiceForStream returned 0xc00d36ba. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1803: Test failed: WriteSample returned 0x8000ffff. mfplat.c:1810: Test failed: Finalize returned 0x8000ffff. mfplat.c:1815: Test failed: CreateFileW failed. mfplat.c:1818: Test failed: Unexpected file size 0xffffffff.
This merge request was closed by Ziqing Hui.