diff options
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index d5ff3d223c..e8f6ec1023 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3288,7 +3288,19 @@ Session::remove_redirect (Redirect* redirect) nframes_t Session::available_capture_duration () { - const double scale = 4096.0 / sizeof (Sample); + float sample_bytes_on_disk; + + switch (Config->get_native_file_data_format()) { + case FormatFloat: + sample_bytes_on_disk = 4; + break; + + case FormatInt24: + sample_bytes_on_disk = 3; + break; + } + + double scale = 4096.0 / sample_bytes_on_disk; if (_total_free_4k_blocks * scale > (double) max_frames) { return max_frames; |