summaryrefslogtreecommitdiffstats
path: root/thirdparties/win32/include/directshow/fourcc.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparties/win32/include/directshow/fourcc.h')
-rw-r--r--thirdparties/win32/include/directshow/fourcc.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/thirdparties/win32/include/directshow/fourcc.h b/thirdparties/win32/include/directshow/fourcc.h
new file mode 100644
index 0000000..dea8171
--- /dev/null
+++ b/thirdparties/win32/include/directshow/fourcc.h
@@ -0,0 +1,101 @@
+//------------------------------------------------------------------------------
+// File: FourCC.h
+//
+// Desc: DirectShow base classes.
+//
+// Copyright (c) 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 0x719b3800
+
+inline void
+FOURCCMap::InitGUID() {
+ Data2 = GUID_Data2;
+ Data3 = GUID_Data3;
+ ((DWORD *)Data4)[0] = GUID_Data4_1;
+ ((DWORD *)Data4)[1] = GUID_Data4_2;
+}
+
+inline
+FOURCCMap::FOURCCMap() {
+ InitGUID();
+ SetFOURCC( DWORD(0));
+}
+
+inline
+FOURCCMap::FOURCCMap(DWORD fourcc)
+{
+ InitGUID();
+ SetFOURCC(fourcc);
+}
+
+inline
+FOURCCMap::FOURCCMap(const GUID * pGuid)
+{
+ InitGUID();
+ SetFOURCC(pGuid);
+}
+
+inline void
+FOURCCMap::SetFOURCC(const GUID * pGuid)
+{
+ FOURCCMap * p = (FOURCCMap*) pGuid;
+ SetFOURCC(p->GetFOURCC());
+}
+
+inline void
+FOURCCMap::SetFOURCC(DWORD fourcc)
+{
+ Data1 = fourcc;
+}
+
+inline DWORD
+FOURCCMap::GetFOURCC(void)
+{
+ return Data1;
+}
+
+#endif /* __FOURCC__ */
+
OpenPOWER on IntegriCloud