I am not sure I have fully understood yourquestion:
do you mean if it needs to encode/decode different video streams at the same time? If so, it need to create Multiple Encoders/Decoders UMC instance. Each instance will handle one stream.
The internal threading with UMC encoder/decoder will make the code more fast to handle one video stream. For example, for encoder, it will divide each the video frame into small slices, and handle these slice data in parallel.
It is not the video frame. It means different videos. For example, if you have mutiple different videos that need to be decoded/encoded, it need to have one instance for one video.