Use events and threads
add player observable class
use events to start stream and open player
terminate app when player or engine is terminated
add timeout argument support
add player observable class
use events to start stream and open player
terminate app when player or engine is terminated
add timeout argument support