On 22/06/20 6:37 a. m., Nikolay Sivov wrote:
On 6/15/20 4:41 AM, Sergio Gómez Del Real wrote:
- if (FAILED(IMFTopology_GetNodeCount(input_topology, &count))
|| count < 2)
- {
hr = MF_E_TOPO_UNSUPPORTED;
return hr;
- }
This should come up later as more generic case of zero branches, or badly incomplete output topology.
The reason I insist with this is that this case specifically returns MF_E_TOPO_UNSUPPORTED. Continuing with processing could return a different, mistaken, error.
- if (FAILED(hr = MFCreateTopology(output_topology)))
return hr;
- i = 0;
- while (SUCCEEDED(IMFTopology_GetNode(input_topology, i++, &node))) {
Won't moving creation call before the loop leak output topology on error case? I seems unlikely that on error condition it still returns empty output topology.
Right. There could be an error later on, if output node doesn't have IMFStreamSink interface, which would leak output_topology. I'll also add error checking for _CloneFrom().