[PATCH 2/5] mfmediaengine: Provide the partial topology to the media session.

Derek Lesho dlesho at codeweavers.com
Tue Oct 20 09:16:32 CDT 2020


On 10/20/20 6:43 AM, Nikolay Sivov wrote:
>
> On 10/17/20 1:02 AM, Derek Lesho wrote:
>> Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
>> ---
>>   dlls/mfmediaengine/main.c | 6 ++++++
>>   1 file changed, 6 insertions(+)
>>
>> diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c
>> index d93e2b2f38c..d1261e3cd73 100644
>> --- a/dlls/mfmediaengine/main.c
>> +++ b/dlls/mfmediaengine/main.c
>> @@ -418,7 +418,10 @@ static HRESULT media_engine_create_topology(struct media_engine *engine, IMFMedi
>>               {
>>                   sd_video = sd;
>>                   IMFStreamDescriptor_AddRef(sd_video);
>> +                /* TODO: reintroduce this once we set up video stream nodes */
>> +#if 0
>>                   IMFPresentationDescriptor_SelectStream(pd, i);
>> +#endif
>>               }
> What do we need to set them up?
I think we need the sample grabber in frame server mode, and the EVR in 
the normal presentation mode.
>>   
>>               IMFMediaTypeHandler_Release(type_handler);
>> @@ -480,6 +483,9 @@ static HRESULT media_engine_create_topology(struct media_engine *engine, IMFMedi
>>               if (audio_src)
>>                   IMFTopologyNode_Release(audio_src);
>>           }
>> +
>> +        if (SUCCEEDED(hr))
>> +            hr = IMFMediaSession_SetTopology(engine->session, MFSESSION_SETTOPOLOGY_IMMEDIATE, topology);
>>       }
> That's fine, either here or returning new topology to set it in the
> callback.
Probably less complex to just set it here since we don't access the 
object later.
>>   
>>       if (topology)
>



More information about the wine-devel mailing list