#ifndef _IMG_IN_H
#define _IMG_IN_H
#include <gpac/modules/codec.h>
#include <gpac/modules/service.h>
#include <gpac/constants.h>
enum
{
DEC_RESERVED = 0,
DEC_PNG,
DEC_JPEG,
DEC_JP2,
DEC_BMP,
};
typedef struct
{
u32 type;
void *opaque;
} IMGDec;
Bool NewPNGDec(GF_BaseDecoder *dec);
void DeletePNGDec(GF_BaseDecoder *dec);
Bool NewJPEGDec(GF_BaseDecoder *dec);
void DeleteJPEGDec(GF_BaseDecoder *dec);
#ifdef GPAC_HAS_JP2
Bool NewJP2Dec(GF_BaseDecoder *dec);
void DeleteJP2Dec(GF_BaseDecoder *dec);
#endif
#if defined(WIN32) || defined(_WIN32_WCE)
#include <windows.h>
#else
typedef struct tagBITMAPFILEHEADER
{
u16 bfType;
u32 bfSize;
u16 bfReserved1;
u16 bfReserved2;
u32 bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER {
u32 biSize;
s32 biWidth;
s32 biHeight;
u16 biPlanes;
u16 biBitCount;
u32 biCompression;
u32 biSizeImage;
s32 biXPelsPerMeter;
s32 biYPelsPerMeter;
u32 biClrUsed;
u32 biClrImportant;
} BITMAPINFOHEADER;
#define BI_RGB 0L
#endif
#define GPAC_BMP_OTI 0x82
Bool NewBMPDec(GF_BaseDecoder *dec);
void DeleteBMPDec(GF_BaseDecoder *dec);
#define IMG_CM_SIZE 1
void *NewLoaderInterface();
void DeleteLoaderInterface(void *ifce);
#endif