289{
291
295
296 TRACE(
"(%p,%p,%p,%d,%d,%d,%d)\n", iface, lpbiWanted, lpBits,
298
301
305 }
306
310
314 This->lCurrentFrame = -1;
315
316
319
321 if (
This->cbInBuffer == 0)
322 This->cbInBuffer = 1024;
323
326
331 }
332
337 }
338
340 }
341
342
343 if (
This->lpInFormat->biClrUsed == 0 &&
This->lpInFormat->biBitCount <= 8)
344 This->lpInFormat->biClrUsed = 1u <<
This->lpInFormat->biBitCount;
345 if (
This->lpInFormat->biSizeImage == 0 &&
347 This->lpInFormat->biSizeImage =
349 }
350
351
352 if (
This->lpInFormat->biCompression ==
BI_RGB && lpBits ==
NULL) {
358 This->lpOutFormat =
This->lpInFormat;
361 }
362 }
363
364
370 }
371 }
372
373
376
377 if (
This->lpInFormat->biCompression ==
BI_RGB)
379 else if (
This->lpInFormat->biCompression ==
BI_RLE8)
381 else
383
389 }
390
395 }
396 }
397
398
400
403
404
409 } else {
410 if (bBestDisplay) {
414 This->lpOutFormat) < 0) {
417 }
418 }
419
420
421 if (
This->lpOutFormat->biClrUsed == 0 &&
422 This->lpOutFormat->biBitCount <= 8)
423 This->lpOutFormat->biClrUsed = 1u <<
This->lpOutFormat->biBitCount;
424 if (
This->lpOutFormat->biSizeImage == 0 &&
426 This->lpOutFormat->biSizeImage =
428 }
429
430 if (lpBits ==
NULL) {
432
433 size +=
This->lpOutFormat->biSize +
This->lpOutFormat->biSizeImage;
438 }
440 } else
441 This->lpOutBuffer = lpBits;
442
443
445 dx =
This->lpOutFormat->biWidth;
447 dy =
This->lpOutFormat->biHeight;
448
449
450 if (
x != 0 ||
y != 0) {
451 if (
dy ==
This->lpOutFormat->biHeight &&
452 dx ==
This->lpOutFormat->biWidth)
454 else
456 }
457
463
465 0,
This->lpInFormat->biWidth,
466 This->lpInFormat->biHeight,
This->lpOutFormat,
472
474
476}
#define DIBWIDTHBYTES(bi)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
#define memcpy(s1, s2, n)
#define mmioFOURCC(c0, c1, c2, c3)
HIC VFWAPI ICLocate(DWORD type, DWORD handler, BITMAPINFOHEADER *in, BITMAPINFOHEADER *out, WORD mode)
HIC VFWAPI ICGetDisplayFormat(HIC hic, BITMAPINFOHEADER *in, BITMAPINFOHEADER *out, int depth, int width, int height)
DWORD dwSuggestedBufferSize
#define ICMODE_DECOMPRESS
#define AVIERR_NOCOMPRESSOR
#define AVISTREAMINFO_FORMATCHANGES
#define AVIERR_UNSUPPORTED
#define ICDecompressBegin(hic, lpbiInput, lpbiOutput)
#define AVIGETFRAMEF_BESTDISPLAYFMT
#define ICDecompressGetFormat(hic, lpbiInput, lpbiOutput)
static LRESULT VFWAPI ICDecompressExBegin(_In_ HIC hic, _In_ DWORD dwFlags, _In_ LPBITMAPINFOHEADER lpbiSrc, _In_opt_ LPVOID lpSrc, _In_ int xSrc, _In_ int ySrc, _In_ int dxSrc, _In_ int dySrc, _In_ LPBITMAPINFOHEADER lpbiDst, _Out_opt_ LPVOID lpDst, _In_ int xDst, _In_ int yDst, _In_ int dxDst, _In_ int dyDst)
#define AVIERR_COMPRESSOR