concurrency fixes
mutexes are only locked and unlocked on decoding and playing threads