From ce2adcea79d9bc78263ae6ababe37c620715413e Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Wed, 29 Dec 2010 06:26:56 +0000 Subject: [PATCH] Revert r4828 as I decided to fix it in FFMS2 instead. Originally committed to SVN as r5057. --- aegisub/src/audio_provider_ffmpegsource.cpp | 19 +++---------------- aegisub/src/audio_provider_ffmpegsource.h | 3 --- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/aegisub/src/audio_provider_ffmpegsource.cpp b/aegisub/src/audio_provider_ffmpegsource.cpp index 4f8f3afa0..893f91244 100644 --- a/aegisub/src/audio_provider_ffmpegsource.cpp +++ b/aegisub/src/audio_provider_ffmpegsource.cpp @@ -190,9 +190,8 @@ void FFmpegSourceAudioProvider::LoadAudio(wxString filename) { channels = AudioInfo.Channels; sample_rate = AudioInfo.SampleRate; - delay = AudioInfo.FirstTime * sample_rate; - num_samples = AudioInfo.NumSamples + delay; - if (channels <= 0 || sample_rate <= 0 || num_samples <= 0 || delay < 0) + num_samples = AudioInfo.NumSamples; + if (channels <= 0 || sample_rate <= 0 || num_samples <= 0) throw AudioOpenError("sanity check failed, consult your local psychiatrist"); // FIXME: use the actual sample format too? @@ -229,19 +228,7 @@ void FFmpegSourceAudioProvider::Close() { /// @param Count /// void FFmpegSourceAudioProvider::GetAudio(void *Buf, int64_t Start, int64_t Count) const { - uint8_t *Buf2 = static_cast(Buf); - Start -= delay; - if (Start < 0) { - size_t Bytes = std::min(-Start, Count) * bytes_per_sample * channels; - memset(Buf2, 0, Bytes); - - Count += Start; - if (Count <= 0) return; - - Start = 0; - Buf2 += Bytes; - } - if (FFMS_GetAudio(AudioSource, Buf2, Start, Count, &ErrInfo)) { + if (FFMS_GetAudio(AudioSource, Buf, Start, Count, &ErrInfo)) { throw AudioDecodeError(std::string("Failed to get audio samples: ") + ErrInfo.Buffer); } } diff --git a/aegisub/src/audio_provider_ffmpegsource.h b/aegisub/src/audio_provider_ffmpegsource.h index 12062805c..19fbc13b2 100644 --- a/aegisub/src/audio_provider_ffmpegsource.h +++ b/aegisub/src/audio_provider_ffmpegsource.h @@ -52,9 +52,6 @@ private: void Close(); void LoadAudio(wxString filename); - /// Audio delay in samples - int64_t delay; - public: FFmpegSourceAudioProvider(wxString filename); virtual ~FFmpegSourceAudioProvider();