Module: wine Branch: master Commit: f1b9c9a4c7731a954188f0efc4c5973fbb66e775 URL: https://gitlab.winehq.org/wine/wine/-/commit/f1b9c9a4c7731a954188f0efc4c5973...
Author: Bernhard Kölbl besentv@gmail.com Date: Mon Nov 7 12:27:03 2022 +0100
mf: Assume same up and downstream media type for copier creation.
The copier creation is only called, when the topo resolve code was successful, thus it should always be given, that up and down media types in the copier branch are compatible/the same at this point.
---
dlls/mf/topology_loader.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/dlls/mf/topology_loader.c b/dlls/mf/topology_loader.c index 0c42a93511b..273d96a81ba 100644 --- a/dlls/mf/topology_loader.c +++ b/dlls/mf/topology_loader.c @@ -533,23 +533,21 @@ static BOOL topology_loader_is_node_d3d_aware(IMFTopologyNode *node) static HRESULT topology_loader_create_copier(IMFTopologyNode *upstream_node, DWORD upstream_output, IMFTopologyNode *downstream_node, unsigned int downstream_input, IMFTransform **copier) { - IMFMediaType *input_type = NULL, *output_type = NULL; + IMFMediaType *up_type = NULL; IMFTransform *transform; HRESULT hr;
if (FAILED(hr = MFCreateSampleCopierMFT(&transform))) return hr;
- if (FAILED(hr = MFGetTopoNodeCurrentType(upstream_node, upstream_output, TRUE, &input_type))) + if (FAILED(hr = MFGetTopoNodeCurrentType(upstream_node, upstream_output, TRUE, &up_type))) WARN("Failed to get upstream media type hr %#lx.\n", hr);
- if (SUCCEEDED(hr) && FAILED(hr = MFGetTopoNodeCurrentType(downstream_node, downstream_input, FALSE, &output_type))) - WARN("Failed to get downstream media type hr %#lx.\n", hr); - - if (SUCCEEDED(hr) && FAILED(hr = IMFTransform_SetInputType(transform, 0, input_type, 0))) + if (SUCCEEDED(hr) && FAILED(hr = IMFTransform_SetInputType(transform, 0, up_type, 0))) WARN("Input type wasn't accepted, hr %#lx.\n", hr);
- if (SUCCEEDED(hr) && FAILED(hr = IMFTransform_SetOutputType(transform, 0, output_type, 0))) + /* We assume, that up_type is set to a value compatible with the down node by the branch resolver. */ + if (SUCCEEDED(hr) && FAILED(hr = IMFTransform_SetOutputType(transform, 0, up_type, 0))) WARN("Output type wasn't accepted, hr %#lx.\n", hr);
if (SUCCEEDED(hr)) @@ -558,10 +556,8 @@ static HRESULT topology_loader_create_copier(IMFTopologyNode *upstream_node, DWO IMFTransform_AddRef(*copier); }
- if (input_type) - IMFMediaType_Release(input_type); - if (output_type) - IMFMediaType_Release(output_type); + if (up_type) + IMFMediaType_Release(up_type);
IMFTransform_Release(transform);