summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dxr3.c2
-rw-r--r--dxr3audio-alsa.c4
-rw-r--r--dxr3audio-alsa.h2
-rw-r--r--dxr3audio-oss.c34
-rw-r--r--dxr3audio-oss.h2
-rw-r--r--dxr3audio.c2
-rw-r--r--dxr3audio.h15
-rw-r--r--dxr3demuxdevice.c6
-rw-r--r--dxr3device.c2
-rw-r--r--dxr3output-audio.c4
10 files changed, 25 insertions, 48 deletions
diff --git a/dxr3.c b/dxr3.c
index 3a4debb..17397b6 100644
--- a/dxr3.c
+++ b/dxr3.c
@@ -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);
}