summaryrefslogtreecommitdiff
path: root/src/lib/audio_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-03-04 20:22:47 +0000
committerCarl Hetherington <cth@carlh.net>2014-03-04 20:22:47 +0000
commit1b1bc528ee5ca1fee1bd33f9fb6f79cd551e3b33 (patch)
treed60b9fb573dd8d6ab89036fb8788cd1b1c69aada /src/lib/audio_decoder.cc
parent6d8bcba724be622739a749064466901486304cee (diff)
New DCPTime/ContentTime types.
Diffstat (limited to 'src/lib/audio_decoder.cc')
-rw-r--r--src/lib/audio_decoder.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/lib/audio_decoder.cc b/src/lib/audio_decoder.cc
index 8d3b0e128..b0d0cc22f 100644
--- a/src/lib/audio_decoder.cc
+++ b/src/lib/audio_decoder.cc
@@ -60,12 +60,11 @@ AudioDecoder::audio (shared_ptr<const AudioBuffers> data, ContentTime time)
if (!_audio_position) {
shared_ptr<const Film> film = _film.lock ();
assert (film);
- FrameRateChange frc = film->active_frame_rate_change (_audio_content->position ());
- _audio_position = (double (time) / frc.speed_up) * film->audio_frame_rate() / TIME_HZ;
+ _audio_position = time;
}
- _pending.push_back (shared_ptr<DecodedAudio> (new DecodedAudio (data, _audio_position.get ())));
- _audio_position = _audio_position.get() + data->frames ();
+ _pending.push_back (shared_ptr<DecodedAudio> (new DecodedAudio (_audio_position.get (), data)));
+ _audio_position = _audio_position.get() + ContentTime (data->frames (), _audio_content->output_audio_frame_rate ());
}
void
@@ -77,8 +76,8 @@ AudioDecoder::flush ()
shared_ptr<const AudioBuffers> b = _resampler->flush ();
if (b) {
- _pending.push_back (shared_ptr<DecodedAudio> (new DecodedAudio (b, _audio_position.get ())));
- _audio_position = _audio_position.get() + b->frames ();
+ _pending.push_back (shared_ptr<DecodedAudio> (new DecodedAudio (_audio_position.get (), b)));
+ _audio_position = _audio_position.get() + ContentTime (b->frames (), _audio_content->output_audio_frame_rate ());
}
}