[PATCH v2 8/8] qedit/tests: Test bitmap grab mode on an AVI file.

Gabriel Ivăncescu gabrielopcode at gmail.com
Fri Oct 23 10:18:58 CDT 2020


A new 1 second long AVI file was used as the others were too short and
failed on Windows, for some reason.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
 dlls/qedit/tests/mediadet.c    |  41 ++++++++++++++++++++++++++++++++-
 dlls/qedit/tests/qedit.rc      |   2 ++
 dlls/qedit/tests/rc.h          |   1 +
 dlls/qedit/tests/test_long.avi | Bin 0 -> 17412 bytes
 4 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 dlls/qedit/tests/test_long.avi

diff --git a/dlls/qedit/tests/mediadet.c b/dlls/qedit/tests/mediadet.c
index 6a09642..0f38a04 100644
--- a/dlls/qedit/tests/mediadet.c
+++ b/dlls/qedit/tests/mediadet.c
@@ -570,6 +570,7 @@ static void testfilter_init(struct testfilter *filter)
 
 static WCHAR test_avi_filename[MAX_PATH];
 static WCHAR test_sound_avi_filename[MAX_PATH];
+static WCHAR test_long_avi_filename[MAX_PATH];
 
 static BOOL unpack_avi_file(int id, WCHAR name[MAX_PATH])
 {
@@ -810,7 +811,8 @@ static void check_bitmap_file_(unsigned line, const WCHAR *filename, void *buffe
 static BOOL init_tests(void)
 {
     return unpack_avi_file(TEST_AVI_RES, test_avi_filename)
-        && unpack_avi_file(TEST_SOUND_AVI_RES, test_sound_avi_filename);
+        && unpack_avi_file(TEST_SOUND_AVI_RES, test_sound_avi_filename)
+        && unpack_avi_file(TEST_LONG_AVI_RES, test_long_avi_filename);
 }
 
 static void test_mediadet(void)
@@ -1827,6 +1829,41 @@ static void test_bitmap_grab_mode(void)
     ok(!ref, "Got outstanding refcount %d.\n", ref);
     ref = IBaseFilter_Release(&testfilter.filter.IBaseFilter_iface);
     ok(!ref, "Got outstanding refcount %d.\n", ref);
+
+    /* Exercise the bitmap grab mode on an avi file */
+    hr = CoCreateInstance(&CLSID_MediaDet, NULL, CLSCTX_INPROC_SERVER,
+                          &IID_IMediaDet, (void **)&detector);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    str = SysAllocString(test_long_avi_filename);
+    hr = IMediaDet_put_Filename(detector, str);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    SysFreeString(str);
+
+    hr = IMediaDet_EnterBitmapGrabMode(detector, 0.0);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IMediaDet_get_OutputStreams(detector, &count);
+    ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
+
+    str = SysAllocString(test_long_avi_filename);
+    hr = IMediaDet_put_Filename(detector, str);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    SysFreeString(str);
+
+    hr = IMediaDet_GetSampleGrabber(detector, &sg);
+    ok(hr == E_NOINTERFACE, "Got hr %#x.\n", hr);
+    hr = IMediaDet_get_OutputStreams(detector, &count);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    ok(count == 1, "Got %d streams.\n", count);
+
+    hr = IMediaDet_GetBitmapBits(detector, 0.1, NULL, buf, 640, 480);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IMediaDet_WriteBitmapBits(detector, 0.5, 21, 13, filename);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    DeleteFileW(filename);
+
+    ref = IMediaDet_Release(detector);
+    ok(!ref, "Got outstanding refcount %d.\n", ref);
     free(buf);
 }
 
@@ -1864,6 +1901,8 @@ START_TEST(mediadet)
     ok(ret, "Failed to delete file, error %u.\n", GetLastError());
     ret = DeleteFileW(test_sound_avi_filename);
     ok(ret, "Failed to delete file, error %u.\n", GetLastError());
+    ret = DeleteFileW(test_long_avi_filename);
+    ok(ret, "Failed to delete file, error %u.\n", GetLastError());
 
     CoUninitialize();
 }
diff --git a/dlls/qedit/tests/qedit.rc b/dlls/qedit/tests/qedit.rc
index 733beac..85ec2f9 100644
--- a/dlls/qedit/tests/qedit.rc
+++ b/dlls/qedit/tests/qedit.rc
@@ -24,3 +24,5 @@
 TEST_AVI_RES       AVI_RES_TYPE test.avi
 /* @makedep: test_sound.avi */
 TEST_SOUND_AVI_RES AVI_RES_TYPE test_sound.avi
+/* @makedep: test_long.avi */
+TEST_LONG_AVI_RES AVI_RES_TYPE test_long.avi
diff --git a/dlls/qedit/tests/rc.h b/dlls/qedit/tests/rc.h
index 1de98d9..9639728 100644
--- a/dlls/qedit/tests/rc.h
+++ b/dlls/qedit/tests/rc.h
@@ -23,6 +23,7 @@
 
 #define TEST_AVI_RES       1
 #define TEST_SOUND_AVI_RES 2
+#define TEST_LONG_AVI_RES  3
 
 #define AVI_RES_TYPE 256
 
diff --git a/dlls/qedit/tests/test_long.avi b/dlls/qedit/tests/test_long.avi
new file mode 100644
index 0000000000000000000000000000000000000000..2e0fbc4e177c3f1a0e9f95ea1afb18f10c78da65
GIT binary patch
literal 17412
zcmeI4u}T9$5QZn1Mp1|&60q=!6gEPX6t<!S&WMFZd-0GQBm@!(mRDI>T3X}*d<4N4
z at KJn#6oSq~Zpo!cyO8~s++}8Ovy=JQ`HSV)tGL<xITbm%jiZbBy8XQ=(n$v0yHVOX
z7LoCDN#sBcZIxA#wSQBz*Loz<d)3UjW^=t(M23%pu3po*MrksP8%Ooop*BxGr+sH-
zkzZ~3m`G>W-#_eYhh33g7Oy1hVsqK}`F4JD*{W*n{87E0+|Q4}hX4d1009U<00Izz
z00bZa0SG`~xe3_*Kv_2)`bn>=pUz~t(_NUIv6!qZ9Ku5gKwwD;*gkDr_jh~!QEL07
zwx9Y*gFwIpGMZNc=up7LN9vA%*CHf%h7P%<h!HRWq`)r$bSU8BBXvi>Zxs?99db(%
zBVYn3fnNgXP{74U>W+ZlDkM5O<dz~vzyweNzXZ^sfQygR9Ra^pNOW|_Ek%rg37`ai
z37|s(7ayrR0)DHI=xOqFIM(;ZO^@_Ais^Y2_I`Elzo<RyZ|nIQv;Nyg(XVY4{r8=s
W-`FksAA3drtXA~D^gxYF|HB{S_cjRt

literal 0
HcmV?d00001

-- 
2.21.0




More information about the wine-devel mailing list