Menu

#47 eSpeak_Synchronize hangs on Solaris

closed-fixed
None
5
2009-08-28
2009-08-24
No

See also http://defect.opensolaris.org/bz/show_bug.cgi?id=10858.

The wave_sada.cpp file for eSpeak determines if audio is playing by using the play.active field of audio_info_t. With the introduction of the boomer audio system to OpenSolaris, the behavior of the play.active field is inconsistent with the prior behavior - for all intents and purposes, it is now never cleared as used by wave_sada.cpp. The result is that calls to eSpeak_Synchronize hang even if no speech samples are being played because wave_is_busy always returns True.

A boomer integrator says the play.active field is being used incorrectly by eSpeak's wave_sada.cpp file and that a different solution needs to be provided by eSpeak, not boomer.

The attached patch to espeak-1.40.02 changes wave_sada.cpp:wave_is_busy to look at the time remaining to play instead of the play.active field. This works well on pre-boomer and post-boomer versions of OpenSolaris and resolves the problem.

Discussion

  • Willie Walker

    Willie Walker - 2009-08-24

    Patch to replace use of play.active with wave_get_remaining_time

     
  • Jonathan Duddington

    Done for eSpeak version 1.4, which is now available.

     
  • Jonathan Duddington

    • assigned_to: nobody --> jonsd
    • status: open --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB