glvideomixer/compositor wrong scaling
The following pipeline causes a wrong results:
gst-launch-1.0 -v videotestsrc ! video/x-raw,width=1000,height=500 ! videoscale add-borders=false ! video/x-raw,width=500,height=500 ! compositor ! videoconvert ! ximagesink
The output should have a resolution of 500x500px. However, the final result has a resolution of 1000x500px.
The glvideomixer works in the same incorrect way as the compositor.
The logs show that the mixer receives incorrect caps: /GstPipeline:pipeline0/GstCompositor:compositor0.GstAggregatorPad:src: caps = video/x-raw, width=(int)1000, height=(int)500, framerate=(fraction)30/1, format=(string)I420, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)bt601
The pipeline works fine without a compositor/glvideomixer. In this case the final resolution is ok: 500x500px. Moreover, the following pipeline works fine too:
gst-launch-1.0 -v videotestsrc ! video/x-raw,width=1000,height=500 ! videoscale add-borders=false ! video/x-raw,width=500,height=500 ! tee name=t ! queue ! compositor ! videoconvert ! ximagesink t. ! queue ! videoconvert ! ximagesink
Tested on 1.16.2 and current master.
Additional info. The videoscale aims to limit the amount of data copied to the GPU using glupload (in case with a glvideomixer).