projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
spline interpolation: fix crash bugs on negative speed and NULL inputs
[ardour.git]
/
libs
/
ardour
/
session_process.cc
diff --git
a/libs/ardour/session_process.cc
b/libs/ardour/session_process.cc
index 8ab43df7212a7568547f253d85ff5889ed258e0e..2dd68744b4266c390e32a6e04a0791bcd5778d73 100644
(file)
--- a/
libs/ardour/session_process.cc
+++ b/
libs/ardour/session_process.cc
@@
-325,8
+325,8
@@
Session::process_with_events (nframes_t nframes)
if (_transport_speed == 1.0) {
frames_moved = (long) nframes;
} else {
if (_transport_speed == 1.0) {
frames_moved = (long) nframes;
} else {
- interpolation.set_target_speed (
_target_transport_speed
);
- interpolation.set_speed (
_transport_speed
);
+ interpolation.set_target_speed (
fabs(_target_transport_speed)
);
+ interpolation.set_speed (
fabs(_transport_speed)
);
frames_moved = (long) interpolation.interpolate (0, nframes, 0, 0);
}
frames_moved = (long) interpolation.interpolate (0, nframes, 0, 0);
}
@@
-846,8
+846,8
@@
Session::process_without_events (nframes_t nframes)
if (_transport_speed == 1.0) {
frames_moved = (long) nframes;
} else {
if (_transport_speed == 1.0) {
frames_moved = (long) nframes;
} else {
- interpolation.set_target_speed (
_target_transport_speed
);
- interpolation.set_speed (
_transport_speed
);
+ interpolation.set_target_speed (
fabs(_target_transport_speed)
);
+ interpolation.set_speed (
fabs(_transport_speed)
);
frames_moved = (long) interpolation.interpolate (0, nframes, 0, 0);
}
frames_moved = (long) interpolation.interpolate (0, nframes, 0, 0);
}