diff options
-rw-r--r-- | dxr3audio-alsa.c | 2 | ||||
-rw-r--r-- | dxr3audio-oss.c | 2 | ||||
-rw-r--r-- | dxr3audio.c | 2 | ||||
-rw-r--r-- | dxr3audio.h | 10 | ||||
-rw-r--r-- | dxr3demuxdevice.c | 26 | ||||
-rw-r--r-- | dxr3interface.c | 11 | ||||
-rw-r--r-- | dxr3interface.h | 6 |
7 files changed, 20 insertions, 39 deletions
diff --git a/dxr3audio-alsa.c b/dxr3audio-alsa.c index 6129f58..70ed3c9 100644 --- a/dxr3audio-alsa.c +++ b/dxr3audio-alsa.c @@ -189,7 +189,7 @@ void cAudioAlsa::setup(const SampleContext& ctx) void cAudioAlsa::write(uchar* data, size_t size) { - if (!open) + if (!open || !enabled) return; snd_pcm_uframes_t frames = size / bytesFrame; diff --git a/dxr3audio-oss.c b/dxr3audio-oss.c index 9f3409d..4e70df4 100644 --- a/dxr3audio-oss.c +++ b/dxr3audio-oss.c @@ -73,7 +73,7 @@ void cAudioOss::setup(const SampleContext& ctx) void cAudioOss::write(uchar* data, size_t size) { - if (!open) + if (!open || !enabled) return; size_t ret = WriteAllOrNothing(fd, data, size, 1000, 10); diff --git a/dxr3audio.c b/dxr3audio.c index 793efad..fa61708 100644 --- a/dxr3audio.c +++ b/dxr3audio.c @@ -29,7 +29,7 @@ const static int AUDIO_STEREO = 0; const static int AUDIO_MONO_LEFT = 1; const static int AUDIO_MONO_RIGHT = 2; -iAudio::iAudio() : open(false), vol(0), audioChannel(0), digitalAudio(false), ac3dts(false) +iAudio::iAudio() : open(false), enabled(false), vol(0), audioChannel(0), digitalAudio(false) { memset(&curContext, 0, sizeof(SampleContext)); } diff --git a/dxr3audio.h b/dxr3audio.h index e508839..243460c 100644 --- a/dxr3audio.h +++ b/dxr3audio.h @@ -39,8 +39,9 @@ public: virtual void setup(const SampleContext& ctx) = 0; virtual void write(uchar* data, size_t size) = 0; - void setVolume(int v) { vol = v; } - void mute() { setVolume(0); } + void setEnabled(bool on) { dsyslog("audio enable %d", (int)on); enabled = on; } + void setVolume(int v) { vol = v; } + void mute() { setVolume(0); } void changeVolume(short* pcmbuf, size_t size); void setAudioChannel(int channel) { audioChannel = channel; } @@ -49,16 +50,13 @@ public: virtual void setDigitalAudio(bool on) = 0; bool isDigitalAudio() { return digitalAudio; } - bool isAc3Dts() { return ac3dts; } - - protected: bool open; + bool enabled; int vol; int audioChannel; bool digitalAudio; SampleContext curContext; - bool ac3dts; }; #endif /*_AUDIO_H_*/ diff --git a/dxr3demuxdevice.c b/dxr3demuxdevice.c index cbba41d..a834e25 100644 --- a/dxr3demuxdevice.c +++ b/dxr3demuxdevice.c @@ -65,7 +65,7 @@ cDxr3DemuxDevice::~cDxr3DemuxDevice() void cDxr3DemuxDevice::Stop() { m_dxr3Device->DisableVideo(); - m_dxr3Device->DisableAudio(); + m_pAudioThread->audio()->setEnabled(false); m_vBuf.Clear(); m_aBuf.Clear(); m_vBuf.WakeUp(); @@ -83,7 +83,7 @@ void cDxr3DemuxDevice::Stop() void cDxr3DemuxDevice::Resync() { m_dxr3Device->DisableVideo(); - m_dxr3Device->DisableAudio(); + m_pAudioThread->audio()->setEnabled(false); m_vBuf.Clear(); m_aBuf.Clear(); m_vBuf.WakeUp(); @@ -99,7 +99,7 @@ void cDxr3DemuxDevice::Resync() void cDxr3DemuxDevice::Clear() { m_dxr3Device->DisableVideo(); - m_dxr3Device->DisableAudio(); + m_pAudioThread->audio()->setEnabled(false); m_vBuf.Clear(); m_aBuf.Clear(); m_vBuf.WakeUp(); @@ -122,7 +122,7 @@ void cDxr3DemuxDevice::SetReplayMode() m_dxr3Device->SetPlayMode(); m_dxr3Device->SetSysClock(m_stopScr); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); m_vBuf.WakeUp(); @@ -143,7 +143,7 @@ void cDxr3DemuxDevice::SetTrickMode(eDxr3TrickState trickState, int Speed) { m_demuxMode = DXR3_DEMUX_TRICK_MODE; m_trickState = trickState; - m_dxr3Device->DisableAudio(); + m_pAudioThread->audio()->setEnabled(false); if (m_demuxMode == DXR3_DEMUX_TRICK_MODE && m_trickState == DXR3_FREEZE) @@ -292,7 +292,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -325,7 +325,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -342,7 +342,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -372,7 +372,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -406,7 +406,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -424,7 +424,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -453,7 +453,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) m_dxr3Device->SetSysClock(pcr); m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } @@ -488,7 +488,7 @@ int cDxr3DemuxDevice::DemuxAudioPes(const uint8_t* buf, int length) m_synchState = DXR3_DEMUX_AUDIO_SYNCHED; m_dxr3Device->SetPlayMode(); m_dxr3Device->EnableVideo(); - m_dxr3Device->EnableAudio(); + m_pAudioThread->audio()->setEnabled(true); m_vBuf.Start(); m_aBuf.Start(); } diff --git a/dxr3interface.c b/dxr3interface.c index 99d8192..445195d 100644 --- a/dxr3interface.c +++ b/dxr3interface.c @@ -119,16 +119,6 @@ int64_t cDxr3Interface::GetPts() return m_lastSeenPts << 1; } -// state changes -// ================================== -//! disable audio output of dxr3 -void cDxr3Interface::DisableAudio() -{ - Lock(); - m_AudioActive = false; - Unlock(); -} - // set/get functions // ================================== //! get aspect ratio @@ -372,7 +362,6 @@ void cDxr3Interface::ClaimDevices() } // set default values - m_AudioActive = false; m_VideoActive = false; m_horizontal = 720; m_vertical = 576; diff --git a/dxr3interface.h b/dxr3interface.h index 5650784..8112470 100644 --- a/dxr3interface.h +++ b/dxr3interface.h @@ -87,11 +87,6 @@ public: { m_VideoActive = false; } - void EnableAudio() - { - m_AudioActive = true; - } - void DisableAudio(); // set/get functions uint32_t GetAspectRatio() const; @@ -144,7 +139,6 @@ private: uint32_t m_aspectRatio; ///< current used aspect ratio uint32_t m_horizontal; ///< horizontal size of current videostream uint32_t m_vertical; ///< vertical size of current videostream - bool m_AudioActive; ///< is audio active? bool m_VideoActive; ///< is video active? // bcs |