[mythtv-commits] Ticket #6355: Mythfrontend hangs when rewinding and then returning to playback via LIRC remote control

MythTV mythtv at cvs.mythtv.org
Sun Sep 13 09:21:11 UTC 2009


#6355: Mythfrontend hangs when rewinding and then returning to playback via LIRC
remote control
---------------------------------------+------------------------------------
 Reporter:  tomimo at ncircle.nullnet.fi  |        Owner:  ijr    
     Type:  defect                     |       Status:  closed 
 Priority:  minor                      |    Milestone:  unknown
Component:  MythTV - Video Playback    |      Version:  head   
 Severity:  medium                     |   Resolution:  invalid
  Mlocked:  0                          |  
---------------------------------------+------------------------------------

Comment(by tomimo at ncircle.nullnet.fi):

 Sorry, It seems that I've missed gnome42's offer completely. If gnome42 is
 still willing to check this out, here is a debug log taken with the
 SVN21761.

 I've added the following debug lines:

 {{{
 Index: libs/libmythtv/NuppelVideoPlayer.cpp
 ===================================================================
 --- libs/libmythtv/NuppelVideoPlayer.cpp        (revision 21761)
 +++ libs/libmythtv/NuppelVideoPlayer.cpp        (working copy)
 @@ -575,6 +575,9 @@

  void NuppelVideoPlayer::PauseVideo(bool wait)
  {
 +    VERBOSE(VB_PLAYBACK, LOC_WARN +
 +                "NuppelVideoPlayer::PauseVideo() Called!");
 +
      QMutexLocker locker(&pauseUnpauseLock);
      video_actually_paused = false;
      pausevideo = true;
 @@ -589,10 +592,14 @@
          if ((i % 10) == 9)
              VERBOSE(VB_IMPORTANT, "Waited too long for video out to
 pause");
      }
 +    VERBOSE(VB_PLAYBACK, LOC_WARN +
 +                "NuppelVideoPlayer::PauseVideo() End!");
  }

  void NuppelVideoPlayer::UnpauseVideo(bool wait)
  {
 +    VERBOSE(VB_PLAYBACK, LOC_WARN +
 +                "NuppelVideoPlayer::UnpauseVideo() Called!");
      QMutexLocker locker(&pauseUnpauseLock);
      pausevideo = false;

 @@ -606,6 +613,8 @@
          if ((i % 10) == 9)
              VERBOSE(VB_IMPORTANT, "Waited too long for video out to
 unpause");
      }
 +    VERBOSE(VB_PLAYBACK, LOC_WARN +
 +                "NuppelVideoPlayer::UnpauseVideo() End!");
  }

  void NuppelVideoPlayer::SetVideoActuallyPaused(bool val)
 }}}

 The key to reproducing this problem seems to be a slightly slow machine
 (2.8GHz, diskless Amd Athlon) with a lirc based remote controller
 (Microsoft media remote controller) and the following procedure:

 1. Fast forward for 5-10 secs
 2. Stop
 3. Quickly fast rewind for a few seconds and then immediately hit Play
 again!

 The above procedure seems to hit the a race condition where the
 pause/unpause order goes completely haywire and therefore the frontend
 never gets woken up again from pause.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/6355#comment:7>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list