[PATCH 2/6] mfplat: Forward media type methods to attribute storage.

Nikolay Sivov nsivov at codeweavers.com
Fri Mar 8 00:57:42 CST 2019


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/mfplat/mediatype.c | 20 +++++++++++++++-----
 include/mfapi.h         | 15 ++++++++-------
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c
index 7abbf31796..7470d400a0 100644
--- a/dlls/mfplat/mediatype.c
+++ b/dlls/mfplat/mediatype.c
@@ -309,16 +309,26 @@ static HRESULT WINAPI mediatype_CopyAllItems(IMFMediaType *iface, IMFAttributes
 
 static HRESULT WINAPI mediatype_GetMajorType(IMFMediaType *iface, GUID *guid)
 {
-    FIXME("%p, %p.\n", iface, guid);
-
-    return E_NOTIMPL;
+    struct media_type *media_type = impl_from_IMFMediaType(iface);
+    TRACE("%p, %p.\n", iface, guid);
+    return IMFAttributes_GetGUID(&media_type->attributes.IMFAttributes_iface, &MF_MT_MAJOR_TYPE, guid);
 }
 
 static HRESULT WINAPI mediatype_IsCompressedFormat(IMFMediaType *iface, BOOL *compressed)
 {
-    FIXME("%p, %p.\n", iface, compressed);
+    struct media_type *media_type = impl_from_IMFMediaType(iface);
+    UINT32 value;
+    HRESULT hr;
 
-    return E_NOTIMPL;
+    TRACE("%p, %p.\n", iface, compressed);
+
+    hr = IMFAttributes_GetUINT32(&media_type->attributes.IMFAttributes_iface, &MF_MT_ALL_SAMPLES_INDEPENDENT, &value);
+    if (FAILED(hr))
+        value = 0;
+
+    *compressed = !value;
+
+    return hr;
 }
 
 static HRESULT WINAPI mediatype_IsEqual(IMFMediaType *iface, IMFMediaType *type, DWORD *flags)
diff --git a/include/mfapi.h b/include/mfapi.h
index f8414b73ff..2ad9f25062 100644
--- a/include/mfapi.h
+++ b/include/mfapi.h
@@ -80,13 +80,14 @@ typedef enum _EAllocationType
 #include <initguid.h>
 #endif
 
-DEFINE_GUID(MF_MT_AVG_BITRATE,         0x20332624, 0xfb0d, 0x4d9e, 0xbd, 0x0d, 0xcb, 0xf6, 0x78, 0x6c, 0x10, 0x2e);
-DEFINE_GUID(MF_MT_FRAME_RATE,          0xc459a2e8, 0x3d2c, 0x4e44, 0xb1, 0x32, 0xfe, 0xe5, 0x15, 0x6c, 0x7b, 0xb0);
-DEFINE_GUID(MF_MT_FRAME_SIZE,          0x1652c33d, 0xd6b2, 0x4012, 0xb8, 0x34, 0x72, 0x03, 0x08, 0x49, 0xa3, 0x7d);
-DEFINE_GUID(MF_MT_INTERLACE_MODE,      0xe2724bb8, 0xe676, 0x4806, 0xb4, 0xb2, 0xa8, 0xd6, 0xef, 0xb4, 0x4c, 0xcd);
-DEFINE_GUID(MF_MT_MAJOR_TYPE,          0x48eba18e, 0xf8c9, 0x4687, 0xbf, 0x11, 0x0a, 0x74, 0xc9, 0xf9, 0x6a, 0x8f);
-DEFINE_GUID(MF_MT_PIXEL_ASPECT_RATIO,  0xc6376a1e, 0x8d0a, 0x4027, 0xbe, 0x45, 0x6d, 0x9a, 0x0a, 0xd3, 0x9b, 0xb6);
-DEFINE_GUID(MF_MT_SUBTYPE,             0xf7e34c9a, 0x42e8, 0x4714, 0xb7, 0x4b, 0xcb, 0x29, 0xd7, 0x2c, 0x35, 0xe5);
+DEFINE_GUID(MF_MT_AVG_BITRATE,             0x20332624, 0xfb0d, 0x4d9e, 0xbd, 0x0d, 0xcb, 0xf6, 0x78, 0x6c, 0x10, 0x2e);
+DEFINE_GUID(MF_MT_FRAME_RATE,              0xc459a2e8, 0x3d2c, 0x4e44, 0xb1, 0x32, 0xfe, 0xe5, 0x15, 0x6c, 0x7b, 0xb0);
+DEFINE_GUID(MF_MT_FRAME_SIZE,              0x1652c33d, 0xd6b2, 0x4012, 0xb8, 0x34, 0x72, 0x03, 0x08, 0x49, 0xa3, 0x7d);
+DEFINE_GUID(MF_MT_INTERLACE_MODE,          0xe2724bb8, 0xe676, 0x4806, 0xb4, 0xb2, 0xa8, 0xd6, 0xef, 0xb4, 0x4c, 0xcd);
+DEFINE_GUID(MF_MT_MAJOR_TYPE,              0x48eba18e, 0xf8c9, 0x4687, 0xbf, 0x11, 0x0a, 0x74, 0xc9, 0xf9, 0x6a, 0x8f);
+DEFINE_GUID(MF_MT_PIXEL_ASPECT_RATIO,      0xc6376a1e, 0x8d0a, 0x4027, 0xbe, 0x45, 0x6d, 0x9a, 0x0a, 0xd3, 0x9b, 0xb6);
+DEFINE_GUID(MF_MT_SUBTYPE,                 0xf7e34c9a, 0x42e8, 0x4714, 0xb7, 0x4b, 0xcb, 0x29, 0xd7, 0x2c, 0x35, 0xe5);
+DEFINE_GUID(MF_MT_ALL_SAMPLES_INDEPENDENT, 0xc9173739, 0x5e56, 0x461c, 0xb7, 0x13, 0x46, 0xfb, 0x99, 0x5c, 0xb9, 0x5f);
 
 DEFINE_GUID(MFT_CATEGORY_VIDEO_DECODER,   0xd6c02d4b, 0x6833, 0x45b4, 0x97, 0x1a, 0x05, 0xa4, 0xb0, 0x4b, 0xab, 0x91);
 DEFINE_GUID(MFT_CATEGORY_VIDEO_ENCODER,   0xf79eac7d, 0xe545, 0x4387, 0xbd, 0xee, 0xd6, 0x47, 0xd7, 0xbd, 0xe4, 0x2a);
-- 
2.20.1




More information about the wine-devel mailing list