|
|
/*
* MEDDIBS.H * * This is the external definition of the video converter handlers. * * This file requires "windows.h", "mediaman.h" */
#ifndef _MEDDIBS_H_
#define _MEDDIBS_H_
#define medtypeDIBS medFOURCC('D','I','B','S') // logical type
#define medtypeIRLE medFOURCC('I','R','L','E') // 'rle' format
#define medtypeRLE0 medFOURCC('R','L','E','0') // 'rle0' format
#define medtypeMERI medFOURCC('M','E','R','I')
#define medtypeFLI medFOURCC('F','L','I',' ') // Autodesk .fli
#define medtypeDIBSEQ medFOURCC('D','S','E','Q') // DIB sequence
#define medtypeAVID medFOURCC('A','V','I',' ') // AVI DIBS
#define medtypeAVI0 medFOURCC('A','V','I','0') // Old AVI
#define medtypeAVIW medFOURCC('A','V','I','W') // AVI WAVE
#define medtypeAVIP medFOURCC('A','V','I','P') // AVI Palette
#define medtypeAVIM medFOURCC('A','V','I','M') // AVI MIDI
#define medtypeAVIMDIB medFOURCC('M','D','B','A') // AVI MDIB
#ifndef mmioFOURCC
#define mmioFOURCC( ch0, ch1, ch2, ch3 ) \
( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \ ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) ) #endif
#define DIBSF_NONINTERLEAVED 0x0001
#define DIBSF_NOPADDING 0x0040
#define DIBSF_VARIABLESIZEREC 0x0080
#define DIBSC_RANDOMACCESS 0x00000001
#define DIBSC_USEABLERANDOM 0x00000002
#define DIBSC_FASTACCESS 0x00000004
// The flag below is used if the handler supports quality, key frames, etc.
#define DIBSC_EXTENDEDINFO 0x00000008
#define DIBSC_KNOWSLENGTH 0x00000010
#define DIBSC_RETURNSFULLFRAMES 0x00000020
#define DIBS_GETINFO (MED_USER)
typedef struct { DWORD dwFlags; DWORD dwCapabilities; DWORD dwWidth; DWORD dwHeight; DWORD dwBytesPerSec; /* if not zero. */ DWORD dwMicroSecPerFrame; DWORD dwStreams;
DWORD dwQuality; DWORD dwFoo;
DWORD dwKeyFrameEvery; DWORD dwAudioEvery;
} DIBSINFO;
/* quality flags */ #define ICQUALITY_LOW 0
#define ICQUALITY_HIGH 10000
#define ICQUALITY_DEFAULT -1
typedef struct { DIBSINFO di; DWORD dwFrames; MEDTYPE medtypePhys; } DIBSCREATE;
#define DIBS_GETSTREAMTYPE (MED_USER+1)
/* Define stream types here.... */ #define DIBS_STREAM_VIDEO medFOURCC('v', 'i', 'd', 's')
#define DIBS_STREAM_AUDIO medFOURCC('a', 'u', 'd', 's')
#define DIBS_STREAM_MIDI medFOURCC('m', 'i', 'd', 's')
#define DIBS_STREAM_TEXT medFOURCC('t', 'x', 't', 's')
#define DIBS_GETSTREAMFORMAT (MED_USER+2)
#define DIBS_GETSTREAMHANDLER (MED_USER+3)
#define DIBS_GETHANDLERDATA (MED_USER+4)
#define DIBS_GETFRAMEDATA (MED_USER+5)
#define DIBS_GETLENGTH (MED_USER+6)
#define DIBS_GETKEYFRAMEINFO (MED_USER+7)
#define DIBS_GETFILESIZE (MED_USER+8)
#define DIBS_GETFRAMESIZE (MED_USER+9)
#define DIBS_GETRAWDATA (MED_USER+10)
#define DIBS_VID_KEYFRAME 0x01000000L
#define DIBS_VID_PERCENT(dwRet) LOBYTE(HIWORD(dwRet))
#define DIBS_VID_HDIB(dwRet) ((HANDLE) LOWORD(dwRet))
#define MediaDibsSetError(ERR) medSetExtError(ERR, ghInst)
/* lParam1 = buffer, lParam2 = buffer length. return = data size */ #define MED_GETEXTRACHUNKS 0x0080
/* Should the structure below even be public? */ typedef struct { DIBSINFO di; DWORD dwFrames; HMED hMed; DWORD dwFileLength; DWORD dwFrame; MEDTYPE medTypeCurrent; MEDID medidOld; HANDLE hColors; BITMAPINFOHEADER bih; #if 0
MEDID medidWAVE; MEDID medidMIDI; FOURCC fccVideoCompType; LPSTR lpVCParms; DWORD dwVCLen; FOURCC fccAudioCompType; LPSTR lpACParms; DWORD dwACLen; #endif
DWORD dwPhysData; } MediaDibs, FAR * FPMediaDibs;
#define DIBSF_NONINTERLEAVED 0x0001
#define DIBSF_VARIABLESIZEREC 0x0080
#define DIBSF_ALREADYCOMPRESSED 0x0100
#define OLDRLEF_MERGECOLORS 0x0010
#define OLDRLEF_SKIPSINGLE 0x0020
#define OLDRLEF_ADAPTIVE 0x0040
#define DIBSF_SPECIAL 0x1000
#define DIBSF_SPECIAL2 0x2000
/* ERROR MESSAGE DEFINITIONS, must be greater than 100 */
#define ERRCNV_BAD_HEADER 101
#define ERRCNV_MEMORY 102
#define ERRCNV_EOF 103
#define ERRCNV_NOVIDEO 104
#define ERRCNV_NOAUDIO 105
#define ERRCNV_NOT_FORM 120
#define ERRCNV_OPEN_INPUT 121
#define ERRCNV_OPEN_OUTPUT 122
#define ERRCNV_WRITING 129
#define ERRCNV_NOT_MERID 133
#define ERRCNV_NOTWRITE 143
#define ERRCNV_NOTREAD 144
#define ERRCNV_UNKNOWN 145
#define ERRCNV_SIZE 146
#define ERRCNV_IMAGE 147
#define ERRCNV_WAVEMEMORY 148
#define ERRCNV_BADMEDWAVEVERSION 160
#define ERRCNV_BADDSEQNAME 161
#define ERRCNV_DSEQTOOLONG 162
#define ERRCNV_CANTOPENCOMP 163
#define ERRCNV_DATARATETOOLOW 164
#define ERRCNV_CANTSTARTCOMP 165
#define ERRCNV_NOVIDEOSTREAM 170
#define ERRCNV_TWOVIDEOSTREAMS 171
#define ERRCNV_TWOAUDIOSTREAMS 172
#define ERRCNV_BADFORMAT 173
#define ERRCNV_MEDBITSNOTRUECOLOR 174
#define ERRCNV_ALPHAFORMAT 175
#define ERRCNV_NOPALETTE 176
#define ERRCNV_CHANGESEQNAME 177
#endif /* _MEDDIBS_H_ */
|