summaryrefslogtreecommitdiff
path: root/src/lib/decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-10-01 19:51:36 +0100
committerCarl Hetherington <cth@carlh.net>2012-10-01 19:51:36 +0100
commit0f154f43bd0c88d1615e455bd8a169826a08c086 (patch)
tree67eb30dc1564b88bad773e7fadfe6369e9c111a9 /src/lib/decoder.cc
parentcca887136613e3bf482fc520ed1b6d0a9ffbb6d5 (diff)
Various fixes to resampling.
Diffstat (limited to 'src/lib/decoder.cc')
-rw-r--r--src/lib/decoder.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc
index b7aca764d..213ff9dd4 100644
--- a/src/lib/decoder.cc
+++ b/src/lib/decoder.cc
@@ -111,18 +111,23 @@ Decoder::process_end ()
*/
int64_t const audio_short_by_frames =
- ((int64_t) decoding_frames() * _fs->audio_sample_rate / _fs->frames_per_second)
+ ((int64_t) decoding_frames() * _fs->target_sample_rate() / _fs->frames_per_second)
- _audio_frames_processed;
if (audio_short_by_frames >= 0) {
- int bytes = audio_short_by_frames * _fs->audio_channels * _fs->bytes_per_sample();
+
+ stringstream s;
+ s << "Adding " << audio_short_by_frames << " frames of silence to the end.";
+ _log->log (s.str ());
+
+ int64_t bytes = audio_short_by_frames * _fs->audio_channels * _fs->bytes_per_sample();
- int const silence_size = 64 * 1024;
+ int64_t const silence_size = 64 * 1024;
uint8_t silence[silence_size];
memset (silence, 0, silence_size);
while (bytes) {
- int const t = min (bytes, silence_size);
+ int64_t const t = min (bytes, silence_size);
Audio (silence, t);
bytes -= t;
}