[mythtv-commits] mythtv/master commit: c42834e19 by mark-kendall (mark-kendall)
MythTV
noreply at mythtv.org
Sun Apr 17 02:28:21 UTC 2011
Author: mark-kendall <mkendall at mythtv.org>
Change Date: 2011-04-16T19:28:08-07:00
Push Date: 2011/04/16 19:28:19 -0700
Repository: mythtv
Branch: master
New Revision: c42834e19857c4e79bd5600bd7c1768f34072d1d
Changeset: https://github.com/MythTV/mythtv/commit/c42834e19
Log:
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).
Modified:
mythtv/libs/libmythtv/mythplayer.cpp
mythtv/libs/libmythtv/mythplayer.h
More information about the mythtv-commits
mailing list