Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
if (sample_entry->sample)
{
if ((hr = IMFTransform_ProcessInput(topo_node->object.transform, stream_id,
sample_entry->sample, 0)) == MF_E_NOTACCEPTING)
break;
if (FAILED(hr))
WARN("Failed to process input for stream %u/%lu, hr %#lx.\n", i, stream_id, hr);
transform_release_sample(sample_entry);
}
else
{
transform_stream_drop_samples(stream);
drain = TRUE;
}
}
}
What does this have to go? Are samples supposed to be lost if downstream transform does not accept them?