Nikolay Sivov : mfplat: Reduce duplication in MFCreateMFVideoFormatFromMFMediaType() for ratio attributes.
Alexandre Julliard
julliard at winehq.org
Thu Apr 22 15:55:25 CDT 2021
Module: wine
Branch: master
Commit: 895bb6f260e5c73cf49d417ac7fafe1a4d4cb769
URL: https://source.winehq.org/git/wine.git/?a=commit;h=895bb6f260e5c73cf49d417ac7fafe1a4d4cb769
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu Apr 22 09:25:34 2021 +0300
mfplat: Reduce duplication in MFCreateMFVideoFormatFromMFMediaType() for ratio attributes.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mfplat/mediatype.c | 33 ++++++++++++++-------------------
1 file changed, 14 insertions(+), 19 deletions(-)
diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c
index e0dbb6a1a78..fb90053c605 100644
--- a/dlls/mfplat/mediatype.c
+++ b/dlls/mfplat/mediatype.c
@@ -3063,10 +3063,16 @@ HRESULT WINAPI MFCreateVideoMediaTypeFromSubtype(const GUID *subtype, IMFVideoMe
return S_OK;
}
-static void media_type_get_ratio(UINT64 value, UINT32 *numerator, UINT32 *denominator)
+static void media_type_get_ratio(IMFMediaType *media_type, const GUID *attr, UINT32 *numerator,
+ UINT32 *denominator)
{
- *numerator = value >> 32;
- *denominator = value;
+ UINT64 value;
+
+ if (SUCCEEDED(IMFMediaType_GetUINT64(media_type, attr, &value)))
+ {
+ *numerator = value >> 32;
+ *denominator = value;
+ }
}
/***********************************************************************
@@ -3076,7 +3082,6 @@ HRESULT WINAPI MFCreateMFVideoFormatFromMFMediaType(IMFMediaType *media_type, MF
{
UINT32 flags, palette_size = 0, avgrate;
MFVIDEOFORMAT *format;
- UINT64 value;
INT32 stride;
GUID guid;
@@ -3101,14 +3106,11 @@ HRESULT WINAPI MFCreateMFVideoFormatFromMFMediaType(IMFMediaType *media_type, MF
format->surfaceInfo.Format = guid.Data1;
}
- if (SUCCEEDED(IMFMediaType_GetUINT64(media_type, &MF_MT_FRAME_SIZE, &value)))
- media_type_get_ratio(value, &format->videoInfo.dwWidth, &format->videoInfo.dwHeight);
-
- if (SUCCEEDED(IMFMediaType_GetUINT64(media_type, &MF_MT_PIXEL_ASPECT_RATIO, &value)))
- {
- media_type_get_ratio(value, &format->videoInfo.PixelAspectRatio.Numerator,
- &format->videoInfo.PixelAspectRatio.Denominator);
- }
+ media_type_get_ratio(media_type, &MF_MT_FRAME_SIZE, &format->videoInfo.dwWidth, &format->videoInfo.dwHeight);
+ media_type_get_ratio(media_type, &MF_MT_PIXEL_ASPECT_RATIO, &format->videoInfo.PixelAspectRatio.Numerator,
+ &format->videoInfo.PixelAspectRatio.Denominator);
+ 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);
@@ -3116,13 +3118,6 @@ HRESULT WINAPI MFCreateMFVideoFormatFromMFMediaType(IMFMediaType *media_type, MF
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);
-
- if (SUCCEEDED(IMFMediaType_GetUINT64(media_type, &MF_MT_FRAME_RATE, &value)))
- {
- media_type_get_ratio(value, &format->videoInfo.FramesPerSecond.Numerator,
- &format->videoInfo.FramesPerSecond.Denominator);
- }
-
IMFMediaType_GetUINT32(media_type, &MF_MT_VIDEO_NOMINAL_RANGE, &format->videoInfo.NominalRange);
IMFMediaType_GetBlob(media_type, &MF_MT_GEOMETRIC_APERTURE, (UINT8 *)&format->videoInfo.GeometricAperture,
sizeof(format->videoInfo.GeometricAperture), NULL);
More information about the wine-cvs
mailing list