summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY1
-rw-r--r--TODO7
-rw-r--r--dxr3device.c13
4 files changed, 13 insertions, 9 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index aa74272..23925de 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -12,6 +12,7 @@ Paavo Hartikainen
Tobias Haustein
Stefan Huelswitt
Seppo Ingalsuo
+Antti Järvinen
Atte Manninen
Lars Neufurth (donated some money for Christian's DD 5.1 system)
Andre Neumann
diff --git a/HISTORY b/HISTORY
index 8758bcc..9412c11 100644
--- a/HISTORY
+++ b/HISTORY
@@ -281,3 +281,4 @@ NOTE: I havent found time to include all of the languages, will be done in pre2
- fix OSD going pink after returning from the MPlayer plugin
(Ville Skyttä, Martin Cap)
- remove unused dxr3unixserversocket.* from 0.2.x (Ville Skyttä)
+- fix sound with the MP3 plugin and VDR >= 1.3.18 (Antti Järvinen)
diff --git a/TODO b/TODO
index 4dd47e0..05094ca 100644
--- a/TODO
+++ b/TODO
@@ -1,13 +1,6 @@
Known problems, bugs, and workarounds for this driver:
------------------------------------------------------
-* No sound with the MP3 plugin with VDR >= 1.3.18.
- Workaround: compile the MP3 plugin with OSS support, configure it to use
- something else than the DXR3 for output (see the --dsp option), and set
- the output mode to OSS in the VDR OSD menus. (Yes, this means that
- you'll need a sound card of some kind in addition to the DXR3, suxx.)
- Workaround 2: use VDR < 1.3.18.
-
* The MP3 plugin's "show live TV" option while playing stuff doesn't work.
Workaround: none known, but the black screen isn't that bad if you
make the MP3 progress stuff/playlist visible...
diff --git a/dxr3device.c b/dxr3device.c
index 3418f33..bd75fd6 100644
--- a/dxr3device.c
+++ b/dxr3device.c
@@ -384,11 +384,20 @@ int cDxr3Device::PlayVideo(const uchar *Data, int Length)
if (m_strBuf.length())
{
m_strBuf.append((const char*)Data, Length);
- retLength = m_DemuxDevice.DemuxPes((const uint8_t*)m_strBuf.data(), m_strBuf.length(), true);
+ if (m_PlayMode == pmAudioOnly) {
+ retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)m_strBuf.data(), m_strBuf.length());
+ } else {
+ retLength = m_DemuxDevice.DemuxPes((const uint8_t*)m_strBuf.data(), m_strBuf.length(), true);
+ }
+
}
else
{
- retLength = m_DemuxDevice.DemuxPes((const uint8_t*)Data, Length, true);
+ if (m_PlayMode == pmAudioOnly) {
+ retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)Data, Length);
+ } else {
+ retLength = m_DemuxDevice.DemuxPes((const uint8_t*)Data, Length, true);
+ }
}
Length -= retLength;