decodebin3: make sure to add free_slot to async pool only once

In our DVR scenario, audio track is removed over rate 2x and the audio track is added again when it backs to 1x.

When this behaviour is doing as very quickly, crash could be happened by multiqueue slot is freed 2 times at similar time.

  • call free_multiqueue_slot_async from parsebin_pad_removed_cb
  • call free_multiqueue_slot_async from (custom-)eos on mutiqueue post

To avoid this problem, make sure free_multiqueue_slot_async is called only once.

Merge request reports