- if (subtitles) {
- _last_video->set_subtitle (subtitles.get ());
- }
-
- _last_video_time = time;
-
- Video (_last_video, *_last_video_time);
-
- /* Discard any subtitles we no longer need */
-
- for (list<pair<PlayerSubtitles, DCPTimePeriod> >::iterator i = _subtitles.begin (); i != _subtitles.end(); ) {
- list<pair<PlayerSubtitles, DCPTimePeriod> >::iterator tmp = i;
- ++tmp;
-
- if (i->second.to < time) {
- _subtitles.erase (i);
- }
-
- i = tmp;
- }
-}
-
-void
-Player::audio_flush (shared_ptr<Piece> piece, AudioStreamPtr stream)
-{
- shared_ptr<AudioContent> content = piece->content->audio;
- DCPOMATIC_ASSERT (content);
-
- shared_ptr<Resampler> r = resampler (content, stream, false);
- if (!r) {
- return;
- }
-
- pair<shared_ptr<const AudioBuffers>, Frame> ro = r->flush ();
- ContentAudio content_audio;
- content_audio.audio = ro.first;
- content_audio.frame = ro.second;
-
- /* Compute time in the DCP */
- DCPTime time = resampled_audio_to_dcp (piece, content_audio.frame) + DCPTime::from_seconds (content->delay() / 1000.0);
-
- audio_transform (content, stream, content_audio, time);