diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-10-01 19:51:36 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-10-01 19:51:36 +0100 |
| commit | 0f154f43bd0c88d1615e455bd8a169826a08c086 (patch) | |
| tree | 67eb30dc1564b88bad773e7fadfe6369e9c111a9 /src/lib/decoder.cc | |
| parent | cca887136613e3bf482fc520ed1b6d0a9ffbb6d5 (diff) | |
Various fixes to resampling.
Diffstat (limited to 'src/lib/decoder.cc')
| -rw-r--r-- | src/lib/decoder.cc | 13 |
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; } |
