This PR abstracts the playbin so that it can be cloned and called from different threads (moved), it also does:
add PlayerInternalCmd so that we are actually exhaustive in the matching and less confusion about what sender / receiver goes where
actually handle the Buffering messages as the gstreamer documentation wants (setting state to pause / playing)
the ultimate goal was to remove the speed-hack that is in place, but i failed at that as i couldnt find a place to properly apply the seek event on initial start and track change (i always ran into issues like the queries position still being of the old track or heavy audio cracking on skip to next track or no speed being applied at all)
This PR abstracts the playbin so that it can be cloned and called from different threads (moved), it also does:
PlayerInternalCmd
so that we are actually exhaustive in the matching and less confusion about what sender / receiver goes whereBuffering
messages as the gstreamer documentation wants (setting state to pause / playing)the ultimate goal was to remove the speed-hack that is in place, but i failed at that as i couldnt find a place to properly apply the seek event on initial start and track change (i always ran into issues like the queries position still being of the old track or heavy audio cracking on skip to next track or no speed being applied at all)