You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against b793799d3d5facb765d97041669da4bc159b860b.
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
From f2c8482489046a0623ef3d011ac7373209eef09a Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 16 Oct 2020 16:59:32 -0500
|
||||
Subject: [PATCH] mfmediaengine: Implement GetNativeVideoSize.
|
||||
|
||||
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
---
|
||||
dlls/mfmediaengine/main.c | 30 ++++++++++++++++++++++++++++--
|
||||
1 file changed, 28 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c
|
||||
index e126a925b67..974e11296e9 100644
|
||||
--- a/dlls/mfmediaengine/main.c
|
||||
+++ b/dlls/mfmediaengine/main.c
|
||||
@@ -91,6 +91,7 @@ struct media_engine
|
||||
double default_playback_rate;
|
||||
double volume;
|
||||
double duration;
|
||||
+ DWORD vid_width, vid_height;
|
||||
MF_MEDIA_ENGINE_ERR error_code;
|
||||
HRESULT extended_code;
|
||||
MF_MEDIA_ENGINE_READY ready_state;
|
||||
@@ -496,9 +497,23 @@ static HRESULT media_engine_create_topology(struct media_engine *engine, IMFMedi
|
||||
}
|
||||
else if (IsEqualGUID(&major, &MFMediaType_Video) && !sd_video && !(engine->flags & MF_MEDIA_ENGINE_AUDIOONLY))
|
||||
{
|
||||
+ IMFMediaType *video_type;
|
||||
+ UINT64 frame_size;
|
||||
+
|
||||
sd_video = sd;
|
||||
IMFStreamDescriptor_AddRef(sd_video);
|
||||
IMFPresentationDescriptor_SelectStream(pd, i);
|
||||
+
|
||||
+ engine->vid_width = 0;
|
||||
+ engine->vid_height = 0;
|
||||
+ if (SUCCEEDED(IMFMediaTypeHandler_GetCurrentMediaType(type_handler, &video_type)))
|
||||
+ {
|
||||
+ if (SUCCEEDED(IMFMediaType_GetUINT64(video_type, &MF_MT_FRAME_SIZE, &frame_size)))
|
||||
+ {
|
||||
+ engine->vid_width = frame_size >> 32;
|
||||
+ engine->vid_height = frame_size;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
IMFMediaTypeHandler_Release(type_handler);
|
||||
@@ -1230,9 +1245,20 @@ static BOOL WINAPI media_engine_HasAudio(IMFMediaEngine *iface)
|
||||
|
||||
static HRESULT WINAPI media_engine_GetNativeVideoSize(IMFMediaEngine *iface, DWORD *cx, DWORD *cy)
|
||||
{
|
||||
- FIXME("(%p, %p, %p): stub.\n", iface, cx, cy);
|
||||
+ struct media_engine *engine = impl_from_IMFMediaEngine(iface);
|
||||
|
||||
- return E_NOTIMPL;
|
||||
+ TRACE("(%p, %p, %p)\n", iface, cx, cy);
|
||||
+
|
||||
+ if (!(engine->flags & FLAGS_ENGINE_HAS_VIDEO))
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ if (!engine->vid_width || !engine->vid_height)
|
||||
+ return E_FAIL;
|
||||
+
|
||||
+ *cx = engine->vid_width;
|
||||
+ *cy = engine->vid_height;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI media_engine_GetVideoAspectRatio(IMFMediaEngine *iface, DWORD *cx, DWORD *cy)
|
||||
--
|
||||
2.28.0
|
||||
|
Reference in New Issue
Block a user