videoconvert: overlay negotiation fails
Submitted by Arnaud Vrac
Created attachment 309955
videoconvert: properly transform caps containing added features
With the following pipeline overlay negotiation fails between textoverlay and the sink:
gst-launch-1.0 videotestsrc ! video/x-raw,format=YUV9 ! textoverlay text=YEAH font-desc="Arial 60" ! videoconvert ! glimagesink
The caps filter forces videoconvert in non-passthrough mode. The transform_meta and filter_meta callbacks in videoconvert do let the overlay composition meta pass, but the caps transformation function (that remove the video format info) does not account for it. This means the caps with SystemMemory and other caps features will be ignored.
The attached patch fixes this issue.
Note that there are probably other elements with the same issue. videoscale for example, but in this case it's more complicated because we also need to scale the overlay composition.
Patch 309955, "videoconvert: properly transform caps containing added features":