Please sign in to comment.
MythPlayer: Fix a Live TV channel change deadlock.
This recognises that the decoder loop effectively has 3 different states - running, partially paused and completely paused. The partial pause state still allows the playback thread to decode a single frame on demand, seek and perform position map syncs. Allowing these while the decoder is changing adds various complications - hence add a new member state variable, totalDecoderPause, that ensures the decoder loop does nothing other than check its own pause state when completely paused. Aside from fixing a deadlock on channel changes, this should also speedup decoder changes under certain situations and probably prevents a couple of even more obscure bugs (e.g. if a seek is triggered at the same time as a channel change).
- Loading branch information...
Showing with 12 additions and 1 deletion.