This removes the need for an extra videoconvert, and any ambiguity that comes with it.
Ambiguity? What does that mean?
Also reduce our dependency on the GStreamer elements to behave as we assume they do, and reduce the chances to see unnecessary copies happening which can be harmful with large buffers. Some GStreamer versions for instance have a bogus videoflip that causes a buffer copy to happen when it is supposed to be pass through.
If videoflip is copying when it should be passthrough then that should be fixed upstream. I don't want to introduce a bunch of extra code just to work around a GStreamer bug, especially if it's already fixed upstream (which is not clear from this commit message).
- update_format_padding(&input_format, &output_format);
I still am failing to understand this at all, sorry. Why is the format that's set on the transform not the format we store?