Skip to content

queue2: Fix missing/dropped buffering messages at startup

This fixes a bug that occurs when an attempt is made to post a buffering message before the queue2 was assigned a bus. One common situation where this happens is when the use-buffering property is set to TRUE before the queue2 was added to a bin.

If the result of gst_element_post_message() is not checked, and the aforementioned situation occurs, then last_posted_buffering_percent and percent_changed will still be updated, as if posting the message succeeded. Later attempts to post again will not do anything because the code then assumes that a message with the same percentage was previously posted successfully and posting again is redundant.

Updating these variables only if posting succeed and explicitely posting a buffering message in the READY->PAUSED state change ensures that a buffering message is posted as early as possible.

Merge request reports