decodebin: Update buffering messages when removing an element that had buffering pending
Otherwise we'll remove that element while keeping its buffering message in our list, and because of that never ever report buffering 100% as that element will always be at a lower percentage. This fixes e.g. seeking over Period boundaries in DASH and various other issues when buffering happens between group switches. Also use a new mutex for protecting the buffering messages. The object lock is already used by gst_object_has_as_ancestor() and we need to use it now for checking if the buffering message sender has the to-be-removed element as ancestor.
Showing with 61 additions and 2 deletions