- shared_ptr<const Film> film = _film.lock ();
- assert (film);
-
- AudioFrame const len = divide_with_round (audio_length() * output_audio_frame_rate(), content_audio_frame_rate ());
-
- /* XXX: this depends on whether, alongside this audio, we are running video slower or faster than
- it should be. The calculation above works out the output audio frames assuming that we are just
- resampling the audio: it would be incomplete if, for example, we were running this audio alongside
- 25fps video that was being run at 24fps.
- */
-
- return film->audio_frames_to_time (len);
-}
-
-int
-SndfileContent::output_audio_frame_rate () const
-{
- shared_ptr<const Film> film = _film.lock ();
- assert (film);
-
- return film->audio_frame_rate ();
-}
-
-void
-SndfileContent::set_audio_mapping (AudioMapping m)
-{
- {
- boost::mutex::scoped_lock lm (_mutex);
- _audio_mapping = m;
- }
-
- signal_changed (AudioContentProperty::AUDIO_MAPPING);
+ FrameRateChange const frc = film()->active_frame_rate_change (position ());
+ return DCPTime::from_frames (audio_length() / frc.speed_up, audio_stream()->frame_rate ());