| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | //------------------------------------------------------------------------------// File: FourCC.h//// Desc: DirectShow base classes.//// Copyright (c) 1992-2001 Microsoft Corporation.  All rights reserved.//------------------------------------------------------------------------------// FOURCCMap//// provides a mapping between old-style multimedia format DWORDs// and new-style GUIDs.//// A range of 4 billion GUIDs has been allocated to ensure that this// mapping can be done straightforwardly one-to-one in both directions.//// January 95#ifndef __FOURCC__#define __FOURCC__// Multimedia format types are marked with DWORDs built from four 8-bit// chars and known as FOURCCs. New multimedia AM_MEDIA_TYPE definitions include// a subtype GUID. In order to simplify the mapping, GUIDs in the range://    XXXXXXXX-0000-0010-8000-00AA00389B71// are reserved for FOURCCs.class FOURCCMap : public GUID{public:    FOURCCMap();    FOURCCMap(DWORD Fourcc);    FOURCCMap(const GUID *);    DWORD GetFOURCC(void);    void SetFOURCC(DWORD fourcc);    void SetFOURCC(const GUID *);private:    void InitGUID();};#define GUID_Data2      0#define GUID_Data3     0x10#define GUID_Data4_1   0xaa000080#define GUID_Data4_2   0x719b3800inline voidFOURCCMap::InitGUID() {    Data2 = GUID_Data2;    Data3 = GUID_Data3;    ((DWORD *)Data4)[0] = GUID_Data4_1;    ((DWORD *)Data4)[1] = GUID_Data4_2;}inlineFOURCCMap::FOURCCMap() {    InitGUID();    SetFOURCC( DWORD(0));}inlineFOURCCMap::FOURCCMap(DWORD fourcc){    InitGUID();    SetFOURCC(fourcc);}inlineFOURCCMap::FOURCCMap(const GUID * pGuid){    InitGUID();    SetFOURCC(pGuid);}inline voidFOURCCMap::SetFOURCC(const GUID * pGuid){    FOURCCMap * p = (FOURCCMap*) pGuid;    SetFOURCC(p->GetFOURCC());}inline voidFOURCCMap::SetFOURCC(DWORD fourcc){    Data1 = fourcc;}inline DWORDFOURCCMap::GetFOURCC(void){    return Data1;}#endif /* __FOURCC__ */
 |