/* INTEL CONFIDENTIAL
* Copyright (c) 2009 Intel Corporation.  All rights reserved.
*
* The source code contained or described herein and all documents
* related to the source code ("Material") are owned by Intel
* Corporation or its suppliers or licensors.  Title to the
* Material remains with Intel Corporation or its suppliers and
* licensors.  The Material contains trade secrets and proprietary
* and confidential information of Intel or its suppliers and
* licensors. The Material is protected by worldwide copyright and
* trade secret laws and treaty provisions.  No part of the Material
* may be used, copied, reproduced, modified, published, uploaded,
* posted, transmitted, distributed, or disclosed in any way without
* Intel's prior express written permission.
*
* No license under any patent, copyright, trade secret or other
* intellectual property right is granted to or conferred upon you
* by disclosure or delivery of the Materials, either expressly, by
* implication, inducement, estoppel or otherwise. Any license
* under such intellectual property rights must be express and
* approved by Intel in writing.
*
*/



#ifndef ASF_GUIDS_H_
#define ASF_GUIDS_H_


typedef struct _GUID {
     unsigned long  Data1;
     unsigned short Data2;
     unsigned short Data3;
     unsigned char  Data4[8];
} GUID;

inline bool operator == (const GUID& a, const GUID& b) {
    return     a.Data1 == b.Data1
            && a.Data2 == b.Data2
            && a.Data3 == b.Data3
            && a.Data4[0] == b.Data4[0]
            && a.Data4[1] == b.Data4[1]
            && a.Data4[2] == b.Data4[2]
            && a.Data4[3] == b.Data4[3]
            && a.Data4[4] == b.Data4[4]
            && a.Data4[5] == b.Data4[5]
            && a.Data4[6] == b.Data4[6]
            && a.Data4[7] == b.Data4[7];
}


#ifdef INITGUID
    #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
    extern const GUID name = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }

#else
    #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
    extern const GUID name
#endif


DEFINE_GUID(ASF_Null_Object,
            0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
DEFINE_GUID(ASF_Header_Object,
            0x75B22630, 0x668E, 0x11CF, 0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C);
DEFINE_GUID(ASF_Data_Object,
            0x75B22636, 0x668E, 0x11CF, 0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C);
DEFINE_GUID(ASF_Simple_Index_Object,
            0x33000890, 0xE5B1, 0x11CF, 0x89, 0xF4, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xCB);
DEFINE_GUID(ASF_Index_Object,
            0xD6E229D3, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE);
DEFINE_GUID(ASF_Media_Object_Index_Object,
            0xFEB103F8, 0x12AD, 0x4C64, 0x84, 0x0F, 0x2A, 0x1D, 0x2F, 0x7A, 0xD4, 0x8C);
DEFINE_GUID(ASF_Timecode_Index_Object,
            0x3CB73FD0, 0x0C4A, 0x4803, 0x95, 0x3D, 0xED, 0xF7, 0xB6, 0x22, 0x8F, 0x0C);
DEFINE_GUID(ASF_File_Properties_Object,
            0x8CABDCA1, 0xA947, 0x11CF, 0x8E, 0xE4, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65);
DEFINE_GUID(ASF_Stream_Properties_Object,
            0xB7DC0791, 0xA9B7, 0x11CF, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65);
DEFINE_GUID(ASF_Header_Extension_Object,
            0x5FBF03B5, 0xA92E, 0x11CF, 0x8E, 0xE3, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65);
DEFINE_GUID(ASF_Codec_List_Object,
            0x86D15240, 0x311D, 0x11D0, 0xA3, 0xA4, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6);
DEFINE_GUID(ASF_Script_Command_Object,
            0x1EFB1A30, 0x0B62, 0x11D0, 0xA3, 0x9B, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6);
DEFINE_GUID(ASF_Marker_Object,
            0xF487CD01, 0xA951, 0x11CF, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65);
DEFINE_GUID(ASF_Bitrate_Mutual_Exclusion_Object,
            0xD6E229DC, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE);
DEFINE_GUID(ASF_Error_Correction_Object,
            0x75B22635, 0x668E, 0x11CF, 0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C);
DEFINE_GUID(ASF_Content_Description_Object,
            0x75B22633, 0x668E, 0x11CF, 0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C);
DEFINE_GUID(ASF_Extended_Content_Description_Object,
            0xD2D0A440, 0xE307, 0x11D2, 0x97, 0xF0, 0x00, 0xA0, 0xC9, 0x5E, 0xA8, 0x50);
DEFINE_GUID(ASF_Content_Branding_Object,
            0x2211B3FA, 0xBD23, 0x11D2, 0xB4, 0xB7, 0x00, 0xA0, 0xC9, 0x55, 0xFC, 0x6E);
DEFINE_GUID(ASF_Stream_Bitrate_Properties_Object,
            0x7BF875CE, 0x468D, 0x11D1, 0x8D, 0x82, 0x00, 0x60, 0x97, 0xC9, 0xA2, 0xB2);
DEFINE_GUID(ASF_Content_Encryption_Object,
            0x2211B3FB, 0xBD23, 0x11D2, 0xB4, 0xB7, 0x00, 0xA0, 0xC9, 0x55, 0xFC, 0x6E);
DEFINE_GUID(ASF_Extended_Content_Encryption_Object,
            0x298AE614, 0x2622, 0x4C17, 0xB9, 0x35, 0xDA, 0xE0, 0x7E, 0xE9, 0x28, 0x9C);
DEFINE_GUID(ASF_Digital_Signature_Object,
            0x2211B3FC, 0xBD23, 0x11D2, 0xB4, 0xB7, 0x00, 0xA0, 0xC9, 0x55, 0xFC, 0x6E);
DEFINE_GUID(ASF_Padding_Object,
            0x1806D474, 0xCADF, 0x4509, 0xA4, 0xBA, 0x9A, 0xAB, 0xCB, 0x96, 0xAA, 0xE8);
DEFINE_GUID(ASF_Extended_Stream_Properties_Object,
            0x14E6A5CB, 0xC672, 0x4332, 0x83, 0x99, 0xA9, 0x69, 0x52, 0x06, 0x5B, 0x5A);
DEFINE_GUID(ASF_Advanced_Mutual_Exclusion_Object,
            0xA08649CF, 0x4775, 0x4670, 0x8A, 0x16, 0x6E, 0x35, 0x35, 0x75, 0x66, 0xCD);
DEFINE_GUID(ASF_Group_Mutual_Exclusion_Object,
            0xD1465A40, 0x5A79, 0x4338, 0xB7, 0x1B, 0xE3, 0x6B, 0x8F, 0xD6, 0xC2, 0x49);
DEFINE_GUID(ASF_Stream_Prioritization_Object,
            0xD4FED15B, 0x88D3, 0x454F, 0x81, 0xF0, 0xED, 0x5C, 0x45, 0x99, 0x9E, 0x24);
DEFINE_GUID(ASF_Bandwidth_Sharing_Object,
            0xA69609E6, 0x517B, 0x11D2, 0xB6, 0xAF, 0x00, 0xC0, 0x4F, 0xD9, 0x08, 0xE9);
DEFINE_GUID(ASF_Language_List_Object,
            0x7C4346A9, 0xEFE0, 0x4BFC, 0xB2, 0x29, 0x39, 0x3E, 0xDE, 0x41, 0x5C, 0x85);
DEFINE_GUID(ASF_Metadata_Object,
            0xC5F8CBEA, 0x5BAF, 0x4877, 0x84, 0x67, 0xAA, 0x8C, 0x44, 0xFA, 0x4C, 0xCA);
DEFINE_GUID(ASF_Metadata_Library_Object,
            0x44231C94, 0x9498, 0x49D1, 0xA1, 0x41, 0x1D, 0x13, 0x4E, 0x45, 0x70, 0x54);
DEFINE_GUID(ASF_Index_Parameters_Object,
            0xD6E229DF, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE);
DEFINE_GUID(ASF_Media_Object_Index_Parameters_Object,
            0x6B203BAD, 0x3F11, 0x48E4, 0xAC, 0xA8, 0xD7, 0x61, 0x3D, 0xE2, 0xCF, 0xA7);
DEFINE_GUID(ASF_Timecode_Index_Parameters_Object,
            0xF55E496D, 0x9797, 0x4B5D, 0x8C, 0x8B, 0x60, 0x4D, 0xFE, 0x9B, 0xFB, 0x24);
DEFINE_GUID(ASF_Compatibility_Object,
            0x26F18B5D, 0x4584, 0x47EC, 0x9F, 0x5F, 0x0E, 0x65, 0x1F, 0x04, 0x52, 0xC9);
DEFINE_GUID(ASF_Advanced_Content_Encryption_Object,
            0x43058533, 0x6981, 0x49E6, 0x9B, 0x74, 0xAD, 0x12, 0xCB, 0x86, 0xD5, 0x8C);
DEFINE_GUID(ASF_Audio_Media,
            0xF8699E40, 0x5B4D, 0x11CF, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B);
DEFINE_GUID(ASF_Video_Media,
            0xBC19EFC0, 0x5B4D, 0x11CF, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B);
DEFINE_GUID(ASF_Command_Media,
            0x59DACFC0, 0x59E6, 0x11D0, 0xA3, 0xAC, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6);
DEFINE_GUID(ASF_JFIF_Media,
            0xB61BE100, 0x5B4E, 0x11CF, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B);
DEFINE_GUID(ASF_Degradable_JPEG_Media,
            0x35907DE0, 0xE415, 0x11CF, 0xA9, 0x17, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B);
DEFINE_GUID(ASF_File_Transfer_Media,
            0x91BD222C, 0xF21C, 0x497A, 0x8B, 0x6D, 0x5A, 0xA8, 0x6B, 0xFC, 0x01, 0x85);
DEFINE_GUID(ASF_Binary_Media,
            0x3AFB65E2, 0x47EF, 0x40F2, 0xAC, 0x2C, 0x70, 0xA9, 0x0D, 0x71, 0xD3, 0x43);
DEFINE_GUID(ASF_Web_Stream_Media_Subtype,
            0x776257D4, 0xC627, 0x41CB, 0x8F, 0x81, 0x7A, 0xC7, 0xFF, 0x1C, 0x40, 0xCC);
DEFINE_GUID(ASF_Web_Stream_Format,
            0xDA1E6B13, 0x8359, 0x4050, 0xB3, 0x98, 0x38, 0x8E, 0x96, 0x5B, 0xF0, 0x0C);
DEFINE_GUID(ASF_No_Error_Correction,
            0x20FB5700, 0x5B55, 0x11CF, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B);
DEFINE_GUID(ASF_Audio_Spread,
            0xBFC3CD50, 0x618F, 0x11CF, 0x8B, 0xB2, 0x00, 0xAA, 0x00, 0xB4, 0xE2, 0x20);
DEFINE_GUID(ASF_Reserved_1,
            0xABD3D211, 0xA9BA, 0x11cf, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65);
DEFINE_GUID(ASF_Content_Encryption_System_Windows_Media_DRM_Network_Devices,
            0x7A079BB6, 0xDAA4, 0x4e12, 0xA5, 0xCA, 0x91, 0xD3, 0x8D, 0xC1, 0x1A, 0x8D);
DEFINE_GUID(ASF_Reserved_2,
            0x86D15241, 0x311D, 0x11D0, 0xA3, 0xA4, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6);
DEFINE_GUID(ASF_Reserved_3,
            0x4B1ACBE3, 0x100B, 0x11D0, 0xA3, 0x9B, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6);
DEFINE_GUID(ASF_Reserved_4,
            0x4CFEDB20, 0x75F6, 0x11CF, 0x9C, 0x0F, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xCB);
DEFINE_GUID(ASF_Mutex_Language,
            0xD6E22A00, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE);
DEFINE_GUID(ASF_Mutex_Bitrate,
            0xD6E22A01, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE);
DEFINE_GUID(ASF_Mutex_Unknown,
            0xD6E22A02, 0x35DA, 0x11D1, 0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE);
DEFINE_GUID(ASF_Bandwidth_Sharing_Exclusive,
            0xAF6060AA, 0x5197, 0x11D2, 0xB6, 0xAF, 0x00, 0xC0, 0x4F, 0xD9, 0x08, 0xE9);
DEFINE_GUID(ASF_Bandwidth_Sharing_Partial,
            0xAF6060AB, 0x5197, 0x11D2, 0xB6, 0xAF, 0x00, 0xC0, 0x4F, 0xD9, 0x08, 0xE9);
DEFINE_GUID(ASF_Payload_Extension_System_Timecode,
            0x399595EC, 0x8667, 0x4E2D, 0x8F, 0xDB, 0x98, 0x81, 0x4C, 0xE7, 0x6C, 0x1E);
DEFINE_GUID(ASF_Payload_Extension_System_File_Name,
            0xE165EC0E, 0x19ED, 0x45D7, 0xB4, 0xA7, 0x25, 0xCB, 0xD1, 0xE2, 0x8E, 0x9B);
DEFINE_GUID(ASF_Payload_Extension_System_Content_Type,
            0xD590DC20, 0x07BC, 0x436C, 0x9C, 0xF7, 0xF3, 0xBB, 0xFB, 0xF1, 0xA4, 0xDC);
DEFINE_GUID(ASF_Payload_Extension_System_Pixel_Aspect_Ratio,
            0x1B1EE554, 0xF9EA, 0x4BC8, 0x82, 0x1A, 0x37, 0x6B, 0x74, 0xE4, 0xC4, 0xB8);
DEFINE_GUID(ASF_Payload_Extension_System_Sample_Duration,
            0xC6BD9450, 0x867F, 0x4907, 0x83, 0xA3, 0xC7, 0x79, 0x21, 0xB7, 0x33, 0xAD);
DEFINE_GUID(ASF_Payload_Extension_System_Encryption_Sample_ID,
            0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D);


#endif

