- diff --git a/xbmc/cores/dvdplayer/DVDAudio.cpp b/xbmc/cores/dvdplayer/DVDAudio.cpp
- index 11ce7ef..9878919 100644
- --- a/xbmc/cores/dvdplayer/DVDAudio.cpp
- +++ b/xbmc/cores/dvdplayer/DVDAudio.cpp
- @@ -43,6 +43,7 @@ CDVDAudio::CDVDAudio(volatile bool &bStop)
- m_iBitrate = 0;
- m_SecondsPerByte = 0.0;
- m_bPaused = true;
- + m_pAudioCallback = NULL;
- }
- CDVDAudio::~CDVDAudio()
- @@ -78,6 +79,9 @@ bool CDVDAudio::Create(const DVDAudioFrame &audioframe, CodecID codec, bool need
- );
- if (!m_pAudioStream) return false;
- + if (m_pAudioCallback)
- + RegisterAudioCallback(m_pAudioCallback);
- +
- m_iBitrate = audioframe.sample_rate;
- m_iBitsPerSample = audioframe.bits_per_sample;
- m_bPassthrough = audioframe.passthrough;
- @@ -235,6 +239,7 @@ void CDVDAudio::Drain()
- void CDVDAudio::RegisterAudioCallback(IAudioCallback* pCallback)
- {
- + m_pAudioCallback = pCallback;
- CSingleLock lock (m_critSection);
- if (m_pAudioStream)
- m_pAudioStream->RegisterAudioCallback(pCallback);
- @@ -245,6 +250,7 @@ void CDVDAudio::UnRegisterAudioCallback()
- CSingleLock lock (m_critSection);
- if (m_pAudioStream)
- m_pAudioStream->UnRegisterAudioCallback();
- + m_pAudioCallback = NULL;
- }
- void CDVDAudio::SetVolume(float volume)
- diff --git a/xbmc/cores/dvdplayer/DVDAudio.h b/xbmc/cores/dvdplayer/DVDAudio.h
- index deefdd2..d2ab4ac 100644
- --- a/xbmc/cores/dvdplayer/DVDAudio.h
- +++ b/xbmc/cores/dvdplayer/DVDAudio.h
- @@ -92,6 +92,7 @@ protected:
- bool m_bPassthrough;
- CAEChannelInfo m_channelLayout;
- bool m_bPaused;
- + IAudioCallback* m_pAudioCallback;
- volatile bool& m_bStop;
- //counter that will go from 0 to m_iSpeed-1 and reset, data will only be output when speedstep is 0