mf: Move and rename topology_loader_get_node_type_handler.

To topology_node_get_type_handler.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
This commit is contained in:
Rémi Bernon 2022-07-08 11:18:43 +02:00 committed by Alexandre Julliard
parent fb513fcc07
commit 6c2b8fd3a4

View file

@ -1820,6 +1820,41 @@ HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE node_type, IMFTopologyNode
return hr;
}
static HRESULT topology_node_get_type_handler(IMFTopologyNode *node, IMFMediaTypeHandler **handler)
{
MF_TOPOLOGY_TYPE node_type;
IMFStreamSink *stream_sink;
IMFStreamDescriptor *sd;
HRESULT hr;
if (FAILED(hr = IMFTopologyNode_GetNodeType(node, &node_type)))
return hr;
switch (node_type)
{
case MF_TOPOLOGY_OUTPUT_NODE:
if (SUCCEEDED(hr = topology_node_get_object(node, &IID_IMFStreamSink, (void **)&stream_sink)))
{
hr = IMFStreamSink_GetMediaTypeHandler(stream_sink, handler);
IMFStreamSink_Release(stream_sink);
}
break;
case MF_TOPOLOGY_SOURCESTREAM_NODE:
if (SUCCEEDED(hr = IMFTopologyNode_GetUnknown(node, &MF_TOPONODE_STREAM_DESCRIPTOR,
&IID_IMFStreamDescriptor, (void **)&sd)))
{
hr = IMFStreamDescriptor_GetMediaTypeHandler(sd, handler);
IMFStreamDescriptor_Release(sd);
}
break;
default:
WARN("Unexpected node type %u.\n", node_type);
return MF_E_UNEXPECTED;
}
return hr;
}
/***********************************************************************
* MFGetTopoNodeCurrentType (mf.@)
*/
@ -2168,41 +2203,6 @@ static HRESULT connect_to_converter(struct transform_output_type *output_type, s
typedef HRESULT (*p_topology_loader_connect_func)(struct topoloader_context *context, IMFTopologyNode *upstream_node,
unsigned int output_index, IMFTopologyNode *downstream_node, unsigned int input_index);
static HRESULT topology_loader_get_node_type_handler(IMFTopologyNode *node, IMFMediaTypeHandler **handler)
{
MF_TOPOLOGY_TYPE node_type;
IMFStreamSink *stream_sink;
IMFStreamDescriptor *sd;
HRESULT hr;
if (FAILED(hr = IMFTopologyNode_GetNodeType(node, &node_type)))
return hr;
switch (node_type)
{
case MF_TOPOLOGY_OUTPUT_NODE:
if (SUCCEEDED(hr = topology_node_get_object(node, &IID_IMFStreamSink, (void **)&stream_sink)))
{
hr = IMFStreamSink_GetMediaTypeHandler(stream_sink, handler);
IMFStreamSink_Release(stream_sink);
}
break;
case MF_TOPOLOGY_SOURCESTREAM_NODE:
if (SUCCEEDED(hr = IMFTopologyNode_GetUnknown(node, &MF_TOPONODE_STREAM_DESCRIPTOR,
&IID_IMFStreamDescriptor, (void **)&sd)))
{
hr = IMFStreamDescriptor_GetMediaTypeHandler(sd, handler);
IMFStreamDescriptor_Release(sd);
}
break;
default:
WARN("Unexpected node type %u.\n", node_type);
return MF_E_UNEXPECTED;
}
return hr;
}
static HRESULT topology_loader_get_mft_categories(IMFMediaTypeHandler *handler, GUID *decode_cat, GUID *convert_cat)
{
GUID major;
@ -2291,10 +2291,10 @@ static HRESULT topology_loader_connect_source_to_sink(struct topoloader_context
TRACE("attempting to connect %p:%u to %p:%u\n", source, output_index, sink, input_index);
if (FAILED(hr = topology_loader_get_node_type_handler(source, &source_handler)))
if (FAILED(hr = topology_node_get_type_handler(source, &source_handler)))
goto done;
if (FAILED(hr = topology_loader_get_node_type_handler(sink, &sink_handler)))
if (FAILED(hr = topology_node_get_type_handler(sink, &sink_handler)))
goto done;
if (FAILED(IMFTopologyNode_GetUINT32(source, &MF_TOPONODE_CONNECT_METHOD, &source_method)))