Nikolay Sivov : mf/session: Handle MF_TOPONODE_DISABLE_PREROLL on sink nodes.
Alexandre Julliard
julliard at winehq.org
Mon Mar 29 16:00:03 CDT 2021
Module: wine
Branch: master
Commit: 4634fd4ccb8dc3069b12b712abaf1585ba864431
URL: https://source.winehq.org/git/wine.git/?a=commit;h=4634fd4ccb8dc3069b12b712abaf1585ba864431
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Mar 29 10:11:24 2021 +0300
mf/session: Handle MF_TOPONODE_DISABLE_PREROLL on sink nodes.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mf/session.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c
index aa96ffd33ca..c2334f82d62 100644
--- a/dlls/mf/session.c
+++ b/dlls/mf/session.c
@@ -1232,6 +1232,7 @@ static DWORD session_get_object_rate_caps(IUnknown *object)
static HRESULT session_add_media_sink(struct media_session *session, IMFTopologyNode *node, IMFMediaSink *sink)
{
struct media_sink *media_sink;
+ unsigned int disable_preroll = 0;
DWORD flags;
LIST_FOR_EACH_ENTRY(media_sink, &session->presentation.sinks, struct media_sink, entry)
@@ -1248,7 +1249,8 @@ static HRESULT session_add_media_sink(struct media_session *session, IMFTopology
IMFMediaSink_QueryInterface(media_sink->sink, &IID_IMFMediaEventGenerator, (void **)&media_sink->event_generator);
- if (SUCCEEDED(IMFMediaSink_GetCharacteristics(sink, &flags)) && flags & MEDIASINK_CAN_PREROLL)
+ IMFTopologyNode_GetUINT32(node, &MF_TOPONODE_DISABLE_PREROLL, &disable_preroll);
+ if (SUCCEEDED(IMFMediaSink_GetCharacteristics(sink, &flags)) && flags & MEDIASINK_CAN_PREROLL && !disable_preroll)
{
if (SUCCEEDED(IMFMediaSink_QueryInterface(media_sink->sink, &IID_IMFMediaSinkPreroll, (void **)&media_sink->preroll)))
session->presentation.flags |= SESSION_FLAG_NEEDS_PREROLL;
More information about the wine-cvs
mailing list