From: Anton Baskanov baskanov@gmail.com
--- dlls/msvidc32/msvideo1.c | 7 +++++++ dlls/msvidc32/tests/msvidc32.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/msvidc32/msvideo1.c b/dlls/msvidc32/msvideo1.c index 327882f68f2..02427d98fa3 100644 --- a/dlls/msvidc32/msvideo1.c +++ b/dlls/msvidc32/msvideo1.c @@ -333,6 +333,13 @@ CRAM_DecompressQuery( Msvideo1Context *info, LPBITMAPINFO in, LPBITMAPINFO out ) TRACE("out->height = %ld\n", out->bmiHeader.biHeight ); TRACE("out->width = %ld\n", out->bmiHeader.biWidth );
+ if ((out->bmiHeader.biCompression != BI_RGB) && + (out->bmiHeader.biCompression != BI_BITFIELDS)) + { + TRACE("incompatible compression requested\n"); + return ICERR_BADFORMAT; + } + if ((in->bmiHeader.biBitCount != out->bmiHeader.biBitCount) && (in->bmiHeader.biBitCount != 16 || out->bmiHeader.biBitCount != 24)) { diff --git a/dlls/msvidc32/tests/msvidc32.c b/dlls/msvidc32/tests/msvidc32.c index 542617e84f7..f6a5eb77449 100644 --- a/dlls/msvidc32/tests/msvidc32.c +++ b/dlls/msvidc32/tests/msvidc32.c @@ -213,7 +213,7 @@ static void test_ICDecompressQuery(void) ok(lr == ICERR_OK, "got lr %Id.\n", lr);
lr = ICDecompressQuery(hic, &format_cram16, &format_yvuv); - todo_wine ok(lr == ICERR_BADFORMAT, "got lr %Id.\n", lr); + ok(lr == ICERR_BADFORMAT, "got lr %Id.\n", lr);
ICClose(hic); }