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.
Jonathan Duddington
None
None
Public
|
Date: 2009-08-28 00:15 Done for eSpeak version 1.4, which is now available. |
| Filename | Description | Download |
|---|---|---|
| osol-busy.diff | Patch to replace use of play.active with wave_get_remaining_time | Download |
| 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 |
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use