GNOME Bugzilla – Bug 381603
GstBus should auto-flush on a failed NULL->READY state change
Last modified: 2018-11-03 12:12:47 UTC
A failure to change state to READY in the pipeline should be handled like a NULL->READY->NULL transition and set the bus to auto-flushing, so that default pipelines don't end up with refcount loops due to messages on the bus.
Created attachment 77538 [details] [review] patch to flush the bus when NULL->READ state change fails
Does not sound useful since you flush the error messages with the reason for the failed state change...
Right, but we've already said that any app that expects messages in NULL should set auto-flush = FALSE on the bus.
er, on the pipeline
This has been hanging around a while now. Is the consensus that it's not possible, because it would break existing apps that are not setting autoflush=false on the pipeline yet expect messages in NULL? If so, I'd like to punt it to a 0.11 enhancement, even though I get the feeling the way the bus works will be changing then anyway.
Now or never.. Me, I'm undecided. One could also special-case things so that a gst_element_set_state(NULL) will flush the bus if auto-flush isn't set to FALSE (instead of short-cutting due to current_state == target_state). I think most people will still do the set_state() to NULL at the end, because it's the most natural thing to do code-flow wise usually.
Guess we missed our chance here.. Jan, what's up with this now?
Same as it ever was, I guess, +5.5 years.
Don't worry Jan we will get this bug fixed for its 15th anniversary, I promise
Jan, can we close this? I think the best way to handle this would be if we could flush the bus on a state change from NULL to NULL , but not sure how/where one would implement this.
Change from NULL to NULL?
Yes.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/7.