diff options
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | TODO | 7 | ||||
-rw-r--r-- | dxr3device.c | 13 |
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 @@ -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) @@ -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; |