287{
289
293
294 TRACE(
"(%p,%p,%p,%d,%d,%d,%d)\n", iface, lpbiWanted, lpBits,
296
299
303 }
304
308
312 This->lCurrentFrame = -1;
313
314
317
319 if (
This->cbInBuffer == 0)
320 This->cbInBuffer = 1024;
321
324
329 }
330
335 }
336
338 }
339
340
341 if (
This->lpInFormat->biClrUsed == 0 &&
This->lpInFormat->biBitCount <= 8)
342 This->lpInFormat->biClrUsed = 1u <<
This->lpInFormat->biBitCount;
343 if (
This->lpInFormat->biSizeImage == 0 &&
345 This->lpInFormat->biSizeImage =
347 }
348
349
350 if (
This->lpInFormat->biCompression ==
BI_RGB && lpBits ==
NULL) {
356 This->lpOutFormat =
This->lpInFormat;
359 }
360 }
361
362
369 }
370 }
371
372
375
376 if (
This->lpInFormat->biCompression ==
BI_RGB)
378 else if (
This->lpInFormat->biCompression ==
BI_RLE8)
380 else
382
388 }
389
394 }
395 }
396
397
399
402
403
408 } else {
409 if (bBestDisplay) {
413 This->lpOutFormat) < 0) {
416 }
417 }
418
419
420 if (
This->lpOutFormat->biClrUsed == 0 &&
421 This->lpOutFormat->biBitCount <= 8)
422 This->lpOutFormat->biClrUsed = 1u <<
This->lpOutFormat->biBitCount;
423 if (
This->lpOutFormat->biSizeImage == 0 &&
425 This->lpOutFormat->biSizeImage =
427 }
428
429 if (lpBits ==
NULL) {
431
432 size +=
This->lpOutFormat->biSize +
This->lpOutFormat->biSizeImage;
437 }
439 } else
440 This->lpOutBuffer = lpBits;
441
442
444 dx =
This->lpOutFormat->biWidth;
446 dy =
This->lpOutFormat->biHeight;
447
448
449 if (
x != 0 ||
y != 0) {
450 if (
dy ==
This->lpOutFormat->biHeight &&
451 dx ==
This->lpOutFormat->biWidth)
453 else
455 }
456
462
464 0,
This->lpInFormat->biWidth,
465 This->lpInFormat->biHeight,
This->lpOutFormat,
471
473
475}
#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