Gets the state of the element.
For elements that performed an ASYNC state change, as reported by set_state, this function will block up to the specified timeout value for the state change to complete. If the element completes the state change or goes into an error, this function returns immediately with a return value of SUCCESS or FAILURE respectively.
For elements that did not return ASYNC, this function returns the current and pending state immediately.
This function returns NO_PREROLL if the element successfully changed its state but is not able to provide data yet. This mostly happens for live sources that only produce data in PLAYING. While the state change return is equivalent to SUCCESS, it is returned to the application to signal that some sink elements might not be able to complete their state change because an element is not producing data to complete the preroll. When setting the element to playing, the preroll will complete and playback will start.
a Element to get the state of.
a pointer to State to hold the state. Can be
a pointer to State to hold the pending state. Can be