v3: - Rather than checking whether `ProcessOutput() == MF_E_TRANSFORM_NEED_MORE_INPUT` after `ProcessInput()`, instead check if there are still pending requests, to decide if requesting more samples upstream is necessary. If the transform requires multiple inputs to generate an output sample, and multiple samples are requested from downstream, it is possible for the pipeline to stall. - Reset `input_full` whenever `ProcessOutput()` succeeds.