[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