I am using an appsink on a playbin2 element to get raw decoded frames for a video. Whenever the first file in my playlist is done playing (hits EOS signal), I try to set the state to NULL (then change the playbin "uri" property to go to the next video) and then back to PLAYING from my main thread, but setting the state to playing always returns ASYNC and no amount of timeout to get_state() after that seems to be enough for it to go to playing state, it just blocks forever. When I don't use an appsink and just send the video directly to a normal video sink (e.g. glimagesink), it works as expected. Any idea what could be causing this?

Thanks