diff options
-rw-r--r-- | dxr3.c | 2 | ||||
-rw-r--r-- | dxr3audio-alsa.c | 4 | ||||
-rw-r--r-- | dxr3audio-alsa.h | 2 | ||||
-rw-r--r-- | dxr3audio-oss.c | 34 | ||||
-rw-r--r-- | dxr3audio-oss.h | 2 | ||||
-rw-r--r-- | dxr3audio.c | 2 | ||||
-rw-r--r-- | dxr3audio.h | 15 | ||||
-rw-r--r-- | dxr3demuxdevice.c | 6 | ||||
-rw-r--r-- | dxr3device.c | 2 | ||||
-rw-r--r-- | dxr3output-audio.c | 4 |
10 files changed, 25 insertions, 48 deletions
@@ -274,6 +274,7 @@ cString cPluginDxr3::SVDRPCommand(const char *Command, const char *Option, cDxr3Interface::instance()->updateBcsValues(); return cString::sprintf("Saturation set to %d", value); } +#if 0 if (!strcasecmp(Command, "SDO")) { device->getAudioOutput()->setAudioMode(iAudio::DigitalPcm); return "Switched to digital PCM audio output"; @@ -286,6 +287,7 @@ cString cPluginDxr3::SVDRPCommand(const char *Command, const char *Option, device->getAudioOutput()->setAudioMode(iAudio::Ac3); return "Switched to digital AC3 audio output"; } +#endif if (!strcasecmp(Command, "DON")) { device->turnPlugin(true); return "vdr-plugin-dxr3 turned on"; diff --git a/dxr3audio-alsa.c b/dxr3audio-alsa.c index d327661..6129f58 100644 --- a/dxr3audio-alsa.c +++ b/dxr3audio-alsa.c @@ -227,10 +227,6 @@ void cAudioAlsa::write(uchar* data, size_t size) } } -void cAudioAlsa::setAudioMode(AudioMode mode) -{ -} - void cAudioAlsa::Xrun() { int res; diff --git a/dxr3audio-alsa.h b/dxr3audio-alsa.h index ed96d06..31e4f95 100644 --- a/dxr3audio-alsa.h +++ b/dxr3audio-alsa.h @@ -36,7 +36,7 @@ public: virtual void releaseDevice(); virtual void setup(const SampleContext& ctx); virtual void write(uchar* data, size_t size); - virtual void setAudioMode(AudioMode m); + virtual void setDigitalAudio(bool on) {} private: snd_pcm_t *handle; diff --git a/dxr3audio-oss.c b/dxr3audio-oss.c index ae6cbea..9f3409d 100644 --- a/dxr3audio-oss.c +++ b/dxr3audio-oss.c @@ -38,14 +38,6 @@ void cAudioOss::openDevice() exit(1); } - if (cDxr3ConfigData::instance()->GetUseDigitalOut()) { - dsyslog("[dxr3-audio-oss] audio mode: digital"); - setAudioMode(DigitalPcm); - } else { - dsyslog("[dxr3-audio-oss] audio mode: analog"); - setAudioMode(Analog); - } - open = true; } @@ -91,27 +83,23 @@ void cAudioOss::write(uchar* data, size_t size) } } -void cAudioOss::setAudioMode(AudioMode mode) +void cAudioOss::setDigitalAudio(bool on) { - uint32_t ioval = 0; + if (digitalAudio == on) { + return; + } - switch (mode) { - case Analog: - ioval = EM8300_AUDIOMODE_ANALOG; - break; + uint32_t ioval = 0; - case DigitalPcm: + if (on) { ioval = EM8300_AUDIOMODE_DIGITALPCM; - break; - - case Ac3: - ioval = EM8300_AUDIOMODE_DIGITALAC3; - break; + } else { + ioval = EM8300_AUDIOMODE_ANALOG; } // we need to do it this way, as we dont have access // to the file handle for the conrtol sub device. - if (cDxr3Interface::instance()->OssSetPlayMode(ioval)) { - this->mode = mode; - } + cDxr3Interface::instance()->OssSetPlayMode(ioval); + + digitalAudio = on; } diff --git a/dxr3audio-oss.h b/dxr3audio-oss.h index a5232be..998e22a 100644 --- a/dxr3audio-oss.h +++ b/dxr3audio-oss.h @@ -32,7 +32,7 @@ public: virtual void releaseDevice(); virtual void setup(const SampleContext& ctx); virtual void write(uchar* data, size_t size); - virtual void setAudioMode(AudioMode m); + virtual void setDigitalAudio(bool on); private: int fd; diff --git a/dxr3audio.c b/dxr3audio.c index 7cfbc50..793efad 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) +iAudio::iAudio() : open(false), vol(0), audioChannel(0), digitalAudio(false), ac3dts(false) { memset(&curContext, 0, sizeof(SampleContext)); } diff --git a/dxr3audio.h b/dxr3audio.h index e6039d9..e508839 100644 --- a/dxr3audio.h +++ b/dxr3audio.h @@ -31,12 +31,6 @@ struct SampleContext { class iAudio { public: - enum AudioMode { - Analog, - DigitalPcm, - Ac3, - }; - iAudio(); virtual ~iAudio() {} @@ -52,13 +46,10 @@ public: void setAudioChannel(int channel) { audioChannel = channel; } int getAudioChannel() { return audioChannel; } - virtual void setDigitalAudio(bool on) { digitalAudio = on; } + virtual void setDigitalAudio(bool on) = 0; bool isDigitalAudio() { return digitalAudio; } - virtual void setAudioMode(AudioMode m) = 0; - AudioMode getAudioMode() { return mode; } - - bool isAudioModeAC3() { return mode == Ac3; } + bool isAc3Dts() { return ac3dts; } protected: @@ -67,7 +58,7 @@ protected: int audioChannel; bool digitalAudio; SampleContext curContext; - AudioMode mode; + bool ac3dts; }; #endif /*_AUDIO_H_*/ diff --git a/dxr3demuxdevice.c b/dxr3demuxdevice.c index 2e3a37d..1f814f7 100644 --- a/dxr3demuxdevice.c +++ b/dxr3demuxdevice.c @@ -334,7 +334,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) } else if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_AUDIO_DATA && m_demuxMode != DXR3_DEMUX_VIDEO_ONLY_MODE - && !m_pAudioThread->audio()->isAudioModeAC3()) { + && !m_pAudioThread->audio()->isAc3Dts()) { if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED || m_synchState == DXR3_DEMUX_SYNCHED) { if (pts && m_synchState != DXR3_DEMUX_SYNCHED) { @@ -381,7 +381,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) } } else if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_PRIVATE_DATA && m_demuxMode != DXR3_DEMUX_VIDEO_ONLY_MODE - && !m_pAudioThread->audio()->isAudioModeAC3() + && !m_pAudioThread->audio()->isAc3Dts() && !bAc3Dts) { if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED || m_synchState == DXR3_DEMUX_SYNCHED) { @@ -416,7 +416,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts) } } else if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_PRIVATE_DATA && m_demuxMode != DXR3_DEMUX_VIDEO_ONLY_MODE - && m_pAudioThread->audio()->isAudioModeAC3() + && m_pAudioThread->audio()->isAc3Dts() && bAc3Dts) { if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED || m_synchState == DXR3_DEMUX_SYNCHED) { diff --git a/dxr3device.c b/dxr3device.c index 41bf9cc..92ea540 100644 --- a/dxr3device.c +++ b/dxr3device.c @@ -193,7 +193,7 @@ int cDxr3Device::PlayVideo(const uchar *Data, int Length) return Length; } - return m_DemuxDevice.DemuxPes(Data, Length); + return m_DemuxDevice.DemuxPes(Data, Length, false); } // ================================== diff --git a/dxr3output-audio.c b/dxr3output-audio.c index 21fc11e..aaf8a97 100644 --- a/dxr3output-audio.c +++ b/dxr3output-audio.c @@ -118,7 +118,7 @@ void cDxr3AudioOutThread::PlayFrame(cFixedLengthFrame *frame) } // volume changes - if (!audio()->isAudioModeAC3()) { + if (!audio()->isAc3Dts()) { audioOutput->changeVolume((short *)frame->GetData(), (size_t)frame->GetCount()); } @@ -131,7 +131,7 @@ void cDxr3AudioOutThread::PlayFrame(cDxr3PesFrame *frame) audioOutput->setup(frame->ctx); // volume changes - if (!audio()->isAudioModeAC3()) { + if (!audio()->isAc3Dts()) { audioOutput->changeVolume((short *)frame->decoded, (size_t)frame->decodedSize); } |