diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-07-25 22:04:20 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-07-25 22:04:20 +0100 |
| commit | 78e5a331074a456097a162d47501daf1df1ab1a3 (patch) | |
| tree | 17dbc6cd0e3e6a4878277959d7cd86129fb516b4 /src/lib/audio_decoder.cc | |
| parent | 991244a0d4be149e8733a8dd70bfd745cab72583 (diff) | |
Hopefully much cleaner handling of PTS changes under resample.
Diffstat (limited to 'src/lib/audio_decoder.cc')
| -rw-r--r-- | src/lib/audio_decoder.cc | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/src/lib/audio_decoder.cc b/src/lib/audio_decoder.cc index 846cdf595..1f5868583 100644 --- a/src/lib/audio_decoder.cc +++ b/src/lib/audio_decoder.cc @@ -32,36 +32,16 @@ using std::cout; using boost::optional; using boost::shared_ptr; -AudioDecoder::AudioDecoder (shared_ptr<const Film> film, shared_ptr<const AudioContent> content) +AudioDecoder::AudioDecoder (shared_ptr<const Film> film) : Decoder (film) , _audio_position (0) { - if (content->content_audio_frame_rate() != content->output_audio_frame_rate() && content->audio_channels ()) { - _resampler.reset ( - new Resampler ( - content->content_audio_frame_rate(), - content->output_audio_frame_rate(), - content->audio_channels() - ) - ); - } -} - -void -AudioDecoder::audio (shared_ptr<const AudioBuffers> data, AudioContent::Frame) -{ - if (_resampler) { - data = _resampler->run (data); - } - Audio (data, _audio_position); - _audio_position += data->frames (); } void -AudioDecoder::flush () +AudioDecoder::audio (shared_ptr<const AudioBuffers> data, AudioContent::Frame frame) { - if (_resampler) { - _resampler->flush (); - } + Audio (data, frame); + _audio_position = frame + data->frames (); } |
