When the property "start-time-selection" is set to "first", it calculates the start time of the output from the buffer pts (converting it to running time of the segment), but if the rate is negative, the real start is not the pts, but the pts + duration, because it plays from the end of the buffer to it's start. As a result of this bug, in the negative rate, when the start-time-selection=first, the first frame is dropped by the videoaggregator (reproduced on d3d11compositor). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5276>
Base classes ------------ GstBaseSink FIXME: not much point making it operate in pull mode as a generic base class I guess...