Share

eSpeak: speech synthesis

Tracker: Bugs

5 eSpeak_Synchronize hangs on Solaris - ID: 2843560
Last Update: Settings changed ( jonsd )

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.


Willie Walker ( wwalker ) - 2009-08-24 13:57

5

Closed

Fixed

Jonathan Duddington

None

None

Public


Comment ( 1 )

Date: 2009-08-28 00:15
Sender: jonsdProject Admin

Done for eSpeak version 1.4, which is now available.


Attached File ( 1 )

Filename Description Download
osol-busy.diff Patch to replace use of play.active with wave_get_remaining_time Download

Changes ( 6 )

Field Old Value Date By
status_id Open 2009-08-28 00:15 jonsd
resolution_id None 2009-08-28 00:15 jonsd
assigned_to nobody 2009-08-28 00:15 jonsd
allow_comments 1 2009-08-28 00:15 jonsd
close_date - 2009-08-28 00:15 jonsd
File Added 340348: osol-busy.diff 2009-08-24 13:57 wwalker