[Summary] HOT FIX: Fixed crash which happens on an attempt to load a session with audio after preferences removal, when buffer preset is set to Medium.
[Details] It happened because ARDOUR::Butler::thread_work() was called before Buttler::map_parameters() method was called, which sets up the correct buffering parameters (set_buffering_parameters () call) according to chosen preset. I've added this calls into Butler::start_thread () to make sure everything is set up and ready for use for Butler. This is a hot fix, because it requires the review from Paul Davis, and probably more gentle solution. But it's possible this commit may become the main solution itself.
This commit is contained in:
parent
6878742d9f
commit
be92c927e8
@ -104,12 +104,16 @@ Butler::config_changed (std::string p)
|
|||||||
int
|
int
|
||||||
Butler::start_thread()
|
Butler::start_thread()
|
||||||
{
|
{
|
||||||
const float rate = (float)_session.frame_rate();
|
Diskstream::set_buffering_parameters (Config->get_buffering_preset());
|
||||||
|
|
||||||
/* size is in Samples, not bytes */
|
/* size is in Samples, not bytes */
|
||||||
|
const float rate = (float)_session.frame_rate();
|
||||||
audio_dstream_capture_buffer_size = (uint32_t) floor (Config->get_audio_capture_buffer_seconds() * rate);
|
audio_dstream_capture_buffer_size = (uint32_t) floor (Config->get_audio_capture_buffer_seconds() * rate);
|
||||||
audio_dstream_playback_buffer_size = (uint32_t) floor (Config->get_audio_playback_buffer_seconds() * rate);
|
audio_dstream_playback_buffer_size = (uint32_t) floor (Config->get_audio_playback_buffer_seconds() * rate);
|
||||||
|
|
||||||
|
_session.adjust_capture_buffering ();
|
||||||
|
_session.adjust_playback_buffering ();
|
||||||
|
|
||||||
/* size is in bytes
|
/* size is in bytes
|
||||||
* XXX: Jack needs to tell us the MIDI buffer size
|
* XXX: Jack needs to tell us the MIDI buffer size
|
||||||
* (i.e. how many MIDI bytes we might see in a cycle)
|
* (i.e. how many MIDI bytes we might see in a cycle)
|
||||||
|
Loading…
Reference in New Issue
Block a user