diff options
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | device.c | 5 |
3 files changed, 6 insertions, 2 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 8e5425f7..2e540271 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -266,6 +266,7 @@ Werner Fink <werner@suse.de> overhead in the firmware for a patch that was used as a base for implementing a modified PES packet handling in order to play AC3 audio over full featured DVB cards + for pointing out an error in masking SubStreamType in cDevice::PlayPesPacket() Rolf Hakenes <hakenes@hippomi.de> for providing 'libdtv' and adapting the EIT mechanisms to it @@ -3343,3 +3343,5 @@ Video Disk Recorder Revision History pointing this out). - Fixed a buffer overflow in case a station defines all 32 audio PIDs (thanks to Christian Jacobsen for reporting this one). +- Fixed masking SubStreamType in cDevice::PlayPesPacket() (thanks to Werner Fink + for pointing out this one). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 1.79 2005/01/25 18:19:30 kls Exp $ + * $Id: device.c 1.80 2005/01/30 12:52:45 kls Exp $ */ #include "device.h" @@ -842,7 +842,7 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly) case 0xBD: { // private stream 1 int PayloadOffset = Data[8] + 9; uchar SubStreamId = Data[PayloadOffset]; - uchar SubStreamType = SubStreamId & 0xE0; + uchar SubStreamType = SubStreamId & 0xF0; uchar SubStreamIndex = SubStreamId & 0x1F; // Compatibility mode for old VDR recordings, where 0xBD was only AC3: @@ -857,6 +857,7 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly) switch (SubStreamType) { case 0x20: // SPU + case 0x30: // SPU break; case 0x80: // AC3 & DTS if (Setup.UseDolbyDigital) { |