Nikolay Sivov : evr/presenter: Set sample size attributes when configuring mixer output.
Alexandre Julliard
julliard at winehq.org
Mon Apr 19 15:38:10 CDT 2021
Module: wine
Branch: master
Commit: 9973081f707a7b27633a7fcd57319d8b27aa1b9e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9973081f707a7b27633a7fcd57319d8b27aa1b9e
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Apr 19 16:03:07 2021 +0300
evr/presenter: Set sample size attributes when configuring mixer output.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/evr/presenter.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/dlls/evr/presenter.c b/dlls/evr/presenter.c
index 42c4c81d9d3..c86dccc7b44 100644
--- a/dlls/evr/presenter.c
+++ b/dlls/evr/presenter.c
@@ -312,6 +312,9 @@ static HRESULT video_presenter_set_media_type(struct video_presenter *presenter,
static HRESULT video_presenter_configure_output_type(struct video_presenter *presenter, const MFVideoArea *aperture,
IMFMediaType *media_type)
{
+ unsigned int size;
+ GUID subtype;
+ LONG stride;
HRESULT hr;
hr = IMFMediaType_SetUINT64(media_type, &MF_MT_FRAME_SIZE, (UINT64)aperture->Area.cx << 32 | aperture->Area.cy);
@@ -320,6 +323,20 @@ static HRESULT video_presenter_configure_output_type(struct video_presenter *pre
if (SUCCEEDED(hr))
hr = IMFMediaType_SetBlob(media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (UINT8 *)aperture, sizeof(*aperture));
+ if (SUCCEEDED(hr))
+ hr = IMFMediaType_GetGUID(media_type, &MF_MT_SUBTYPE, &subtype);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = MFGetStrideForBitmapInfoHeader(subtype.Data1, aperture->Area.cx, &stride);
+ if (SUCCEEDED(hr))
+ hr = MFGetPlaneSize(subtype.Data1, aperture->Area.cx, aperture->Area.cy, &size);
+ if (SUCCEEDED(hr))
+ hr = IMFMediaType_SetUINT32(media_type, &MF_MT_DEFAULT_STRIDE, stride);
+ if (SUCCEEDED(hr))
+ hr = IMFMediaType_SetUINT32(media_type, &MF_MT_SAMPLE_SIZE, stride);
+ }
+
return hr;
}
More information about the wine-cvs
mailing list