There could be some buffers from the previous stream remaining in the pipeline if drain / ProcessOutput wasn't called before changing the input type for instance, what needs to be done with the remaining buffers is not clear to me. I don't think creating this specific pipeline takes time, it's more of an issue in decodebin.