-- v4: mfmediaengine: Avoid implicit casts in IMFAttributes_GetUINT32 calls. mfmediaengine/tests: Use MF_MEDIA_ENGINE_CANPLAY type in IMFMediaEngine_CanPlayType call. mfplat: Introduce media_type_get_uint32 helper. mfplat/tests: Use MF_ATTRIBUTE_TYPE type in IMFMediaType_GetItemType call. mfplat: Avoid implicit cast in IMFAttributes_GetUINT32 call. mf: Avoid implicit enum to int pointer casts.
From: Jacek Caban jacek@codeweavers.com
--- dlls/mf/topology_loader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/mf/topology_loader.c b/dlls/mf/topology_loader.c index 806f61f8c33..50d9d3bd74f 100644 --- a/dlls/mf/topology_loader.c +++ b/dlls/mf/topology_loader.c @@ -386,8 +386,8 @@ static HRESULT topology_branch_connect_down(IMFTopology *topology, MF_CONNECT_ME { IMFMediaTypeHandler *down_handler; IMFMediaType *down_type = NULL; - MF_CONNECT_METHOD method; MF_TOPOLOGY_TYPE type; + UINT32 method; DWORD flags; HRESULT hr;
@@ -465,7 +465,7 @@ static HRESULT topology_branch_foreach_up_types(IMFTopology *topology, MF_CONNEC static HRESULT topology_branch_connect(IMFTopology *topology, MF_CONNECT_METHOD method_mask, struct topology_branch *branch, BOOL enumerate_source_types) { - MF_CONNECT_METHOD method; + UINT32 method; HRESULT hr;
TRACE("topology %p, method_mask %#x, branch %s.\n", topology, method_mask, debugstr_topology_branch(branch));
From: Jacek Caban jacek@codeweavers.com
--- dlls/mfplat/sample.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/mfplat/sample.c b/dlls/mfplat/sample.c index a50f81c93d4..4d75924b939 100644 --- a/dlls/mfplat/sample.c +++ b/dlls/mfplat/sample.c @@ -1423,7 +1423,7 @@ static HRESULT sample_allocator_initialize(struct sample_allocator *allocator, u unsigned int i, value; GUID major, subtype; UINT64 frame_size; - D3D11_USAGE usage; + UINT32 usage; HRESULT hr;
if (FAILED(hr = IMFMediaType_GetMajorType(media_type, &major)))
This merge request was approved by Alexandre Julliard.
From: Jacek Caban jacek@codeweavers.com
--- dlls/mfplat/tests/mfplat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index d75ad051d35..6897036e9dd 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -5069,7 +5069,8 @@ static void test_attributes_serialization(void) static void test_wrapped_media_type(void) { IMFMediaType *mediatype, *mediatype2; - UINT32 count, type; + MF_ATTRIBUTE_TYPE type; + UINT32 count; HRESULT hr; GUID guid;
From: Jacek Caban jacek@codeweavers.com
--- dlls/mfplat/mediatype.c | 45 +++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c index e68d7af2c12..66c0aaa2c62 100644 --- a/dlls/mfplat/mediatype.c +++ b/dlls/mfplat/mediatype.c @@ -3221,12 +3221,18 @@ HRESULT WINAPI MFCreateAMMediaTypeFromMFMediaType(IMFMediaType *media_type, GUID return hr; }
+static UINT32 media_type_get_uint32(IMFMediaType *media_type, REFGUID guid) +{ + UINT32 value; + return SUCCEEDED(IMFMediaType_GetUINT32(media_type, guid, &value)) ? value : 0; +} + /*********************************************************************** * MFCreateMFVideoFormatFromMFMediaType (mfplat.@) */ HRESULT WINAPI MFCreateMFVideoFormatFromMFMediaType(IMFMediaType *media_type, MFVIDEOFORMAT **video_format, UINT32 *size) { - UINT32 flags, palette_size = 0, value; + UINT32 palette_size = 0; MFVIDEOFORMAT *format; INT32 stride; GUID guid; @@ -3258,40 +3264,35 @@ HRESULT WINAPI MFCreateMFVideoFormatFromMFMediaType(IMFMediaType *media_type, MF media_type_get_ratio(media_type, &MF_MT_FRAME_RATE, &format->videoInfo.FramesPerSecond.Numerator, &format->videoInfo.FramesPerSecond.Denominator);
- IMFMediaType_GetUINT32(media_type, &MF_MT_VIDEO_CHROMA_SITING, &format->videoInfo.SourceChromaSubsampling); - IMFMediaType_GetUINT32(media_type, &MF_MT_INTERLACE_MODE, &format->videoInfo.InterlaceMode); - IMFMediaType_GetUINT32(media_type, &MF_MT_TRANSFER_FUNCTION, &format->videoInfo.TransferFunction); - IMFMediaType_GetUINT32(media_type, &MF_MT_VIDEO_PRIMARIES, &format->videoInfo.ColorPrimaries); - IMFMediaType_GetUINT32(media_type, &MF_MT_YUV_MATRIX, &format->videoInfo.TransferMatrix); - IMFMediaType_GetUINT32(media_type, &MF_MT_VIDEO_LIGHTING, &format->videoInfo.SourceLighting); - IMFMediaType_GetUINT32(media_type, &MF_MT_VIDEO_NOMINAL_RANGE, &format->videoInfo.NominalRange); + format->videoInfo.SourceChromaSubsampling = media_type_get_uint32(media_type, &MF_MT_VIDEO_CHROMA_SITING); + format->videoInfo.InterlaceMode = media_type_get_uint32(media_type, &MF_MT_INTERLACE_MODE); + format->videoInfo.TransferFunction = media_type_get_uint32(media_type, &MF_MT_TRANSFER_FUNCTION); + format->videoInfo.ColorPrimaries = media_type_get_uint32(media_type, &MF_MT_VIDEO_PRIMARIES); + format->videoInfo.TransferMatrix = media_type_get_uint32(media_type, &MF_MT_YUV_MATRIX); + format->videoInfo.SourceLighting = media_type_get_uint32(media_type, &MF_MT_VIDEO_LIGHTING); + format->videoInfo.NominalRange = media_type_get_uint32(media_type, &MF_MT_VIDEO_NOMINAL_RANGE); IMFMediaType_GetBlob(media_type, &MF_MT_GEOMETRIC_APERTURE, (UINT8 *)&format->videoInfo.GeometricAperture, sizeof(format->videoInfo.GeometricAperture), NULL); IMFMediaType_GetBlob(media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (UINT8 *)&format->videoInfo.MinimumDisplayAperture, sizeof(format->videoInfo.MinimumDisplayAperture), NULL);
/* Video flags. */ - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_PAD_CONTROL_FLAGS, &flags))) - format->videoInfo.VideoFlags |= flags; - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_SOURCE_CONTENT_HINT, &flags))) - format->videoInfo.VideoFlags |= flags; - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_DRM_FLAGS, &flags))) - format->videoInfo.VideoFlags |= flags; - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_PAN_SCAN_ENABLED, &flags)) && !!flags) + format->videoInfo.VideoFlags |= media_type_get_uint32(media_type, &MF_MT_PAD_CONTROL_FLAGS); + format->videoInfo.VideoFlags |= media_type_get_uint32(media_type, &MF_MT_SOURCE_CONTENT_HINT); + format->videoInfo.VideoFlags |= media_type_get_uint32(media_type, &MF_MT_DRM_FLAGS); + if (media_type_get_uint32(media_type, &MF_MT_PAN_SCAN_ENABLED)) { format->videoInfo.VideoFlags |= MFVideoFlag_PanScanEnabled; IMFMediaType_GetBlob(media_type, &MF_MT_PAN_SCAN_APERTURE, (UINT8 *)&format->videoInfo.PanScanAperture, sizeof(format->videoInfo.PanScanAperture), NULL); } - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_DEFAULT_STRIDE, (UINT32 *)&stride)) && stride < 0) + stride = media_type_get_uint32(media_type, &MF_MT_DEFAULT_STRIDE); + if (stride < 0) format->videoInfo.VideoFlags |= MFVideoFlag_BottomUpLinearRep;
- if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_AVG_BITRATE, &value))) - format->compressedInfo.AvgBitrate = value; - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_AVG_BIT_ERROR_RATE, &value))) - format->compressedInfo.AvgBitErrorRate = value; - if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_MAX_KEYFRAME_SPACING, &value))) - format->compressedInfo.MaxKeyFrameSpacing = value; + format->compressedInfo.AvgBitrate = media_type_get_uint32(media_type, &MF_MT_AVG_BITRATE); + format->compressedInfo.AvgBitErrorRate = media_type_get_uint32(media_type, &MF_MT_AVG_BIT_ERROR_RATE); + format->compressedInfo.MaxKeyFrameSpacing = media_type_get_uint32(media_type, &MF_MT_MAX_KEYFRAME_SPACING);
/* Palette. */ if (palette_size)
From: Jacek Caban jacek@codeweavers.com
--- dlls/mfmediaengine/tests/mfmediaengine.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/mfmediaengine/tests/mfmediaengine.c b/dlls/mfmediaengine/tests/mfmediaengine.c index 66a1f0b79e9..87db94ce18d 100644 --- a/dlls/mfmediaengine/tests/mfmediaengine.c +++ b/dlls/mfmediaengine/tests/mfmediaengine.c @@ -435,6 +435,7 @@ static void test_CreateInstance(void)
static void test_Shutdown(void) { + MF_MEDIA_ENGINE_CANPLAY can_play_state; struct media_engine_notify *notify; IMFMediaEngineEx *media_engine_ex; IMFMediaTimeRange *time_range; @@ -492,7 +493,7 @@ static void test_Shutdown(void) ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#lx.\n", hr);
str = SysAllocString(L"video/mp4"); - hr = IMFMediaEngine_CanPlayType(media_engine, str, &state); + hr = IMFMediaEngine_CanPlayType(media_engine, str, &can_play_state); ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#lx.\n", hr); SysFreeString(str);
From: Jacek Caban jacek@codeweavers.com
--- dlls/mfmediaengine/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c index d8694cf6011..0e16305ddda 100644 --- a/dlls/mfmediaengine/main.c +++ b/dlls/mfmediaengine/main.c @@ -1110,9 +1110,9 @@ static HRESULT media_engine_create_audio_renderer(struct media_engine *engine, I
static HRESULT media_engine_create_video_renderer(struct media_engine *engine, IMFTopologyNode **node) { - DXGI_FORMAT output_format; IMFMediaType *media_type; IMFActivate *activate; + UINT32 output_format; GUID subtype; HRESULT hr;
@@ -3255,7 +3255,7 @@ static ULONG WINAPI media_engine_factory_Release(IMFMediaEngineClassFactory *ifa
static HRESULT init_media_engine(DWORD flags, IMFAttributes *attributes, struct media_engine *engine) { - DXGI_FORMAT output_format; + UINT32 output_format; UINT64 playback_hwnd; IMFClock *clock; HRESULT hr;