baseparse: Timestamp tracking has accumulating rounding errors when using frame rate
Submitted by Sebastian Dröge
Audio parsers often just use the frame rate based timestamp tracking, i.e. gst_base_parse_set_frame_rate(). The base class then simply stores fps_d/fps_n and uses this for the buffer durations. And then uses the buffer durations to interpolate the next buffer timestamps.
So if upstream only provides timestamps every now and then, or only one in the very beginning, or none at all (filesrc ! mpegaudioparse ! ...), the rounding errors caused by the division will accumulate until the point when things start to fail.