projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Give 'wrong target' KDM errors in a dialogue box rather than in the job manager ...
[dcpomatic.git]
/
src
/
lib
/
resampler.cc
diff --git
a/src/lib/resampler.cc
b/src/lib/resampler.cc
index 01d71c79b68219caefff036363336eb5e23a55f6..322c00c136779f009ad1163119bce5496a191dad 100644
(file)
--- a/
src/lib/resampler.cc
+++ b/
src/lib/resampler.cc
@@
-53,13
+53,17
@@
Resampler::Resampler (int in, int out, int channels)
Resampler::~Resampler ()
{
Resampler::~Resampler ()
{
- src_delete (_src);
+ if (_src) {
+ src_delete (_src);
+ }
}
void
Resampler::set_fast ()
{
src_delete (_src);
}
void
Resampler::set_fast ()
{
src_delete (_src);
+ _src = 0;
+
int error;
_src = src_new (SRC_LINEAR, _channels, &error);
if (!_src) {
int error;
_src = src_new (SRC_LINEAR, _channels, &error);
if (!_src) {
@@
-118,6
+122,8
@@
Resampler::run (shared_ptr<const AudioBuffers> in)
}
if (data.output_frames_gen == 0) {
}
if (data.output_frames_gen == 0) {
+ delete[] data.data_in;
+ delete[] data.data_out;
break;
}
break;
}
@@
-185,3
+191,9
@@
Resampler::flush ()
delete[] buffer;
return out;
}
delete[] buffer;
return out;
}
+
+void
+Resampler::reset ()
+{
+ src_reset (_src);
+}