Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*********************************************************************
Interlace.h
Header file for interlace module. *********************************************************************/ #ifndef _INTERLACE_H
#define _INTERLACE_H
#include "Image.h"
#define NUM_PASSES 7
#pragma pack(2) /* Apparently, this is reasonably important */
/* The primary state data structure. */ typedef struct { IFLCLASS Class; long iImageHeight; long iImageWidth; long cbPixelSize;
long cScanBlocks; long cPassScanLines[NUM_PASSES]; long cTotalScanLines; long iPass; long iPassLine; long iScanLine; long iImageLine;
} ADAM7_STRUCT, *pADAM7_STRUCT;
//************************************************************************************
// Given an image described by the parameters of the ADAM7_STRUCT, calculate the
// number of scan lines in the image file which has been interlaced using the Adam7
// scheme.
//************************************************************************************
int iADAM7CalculateNumberOfScanLines(pADAM7_STRUCT ptAdam7);
//************************************************************************************
// Generate a deinterlaced DIB; i.e., each pixel is in BGR in the case
// of RGB/RGBA image classes, and raster line data is stored in a contiguous block.
//************************************************************************************
// The CALLING application is responsible for deallocating the structure created by
// this function.
LPBYTE *ppbADAM7InitDIBPointers(LPBYTE pbDIB, pADAM7_STRUCT ptAdam7, DWORD cbImageLine);
// The following returns TRUE if the scan line was an empty scan line.
BOOL ADAM7AddRowToDIB(LPBYTE *ppbDIBPtrs, LPBYTE pbScanLine, pADAM7_STRUCT ptAdam7);
//************************************************************************************
//************************************************************************************
// Generate a deinterlaced image; i.e., each pixel is in RGB in the case
// of RGB/RGBA image classes, and raster line data may not necessarily be stored
// in one contiguous block of memory.
//************************************************************************************
// The following returns TRUE if the scan line was an empty scan line.
BOOL ADAM7AddRowToImageBuffer(LPBYTE ppbInmageBuffer[], LPBYTE pbScanLine, pADAM7_STRUCT ptAdam7); //************************************************************************************
//************************************************************************************
// Generate a deinterlaced alpha channel data block.
//************************************************************************************
BOOL ADAM7RMFDeinterlaceAlpha(LPWORD *ppwInterlaced, LPWORD *ppwDeinterlaced, IFL_ALPHA_CHANNEL_INFO *ptIFLAlphaInfo);
#endif // _INTERLACE_H
|