Fixed parsing channel data in case the audio pid is 0

This commit is contained in:
Klaus Schmidinger 2012-03-08 09:37:17 +01:00
parent 57f58a1546
commit 9b68c100b2
2 changed files with 9 additions and 3 deletions

View File

@ -6989,3 +6989,7 @@ Video Disk Recorder Revision History
due to a live channel switch, it can use that function's new parameter LiveView.
Any plugins that implement cStatus::ChannelSwitch() need to add the parameter
'bool LiveView' to that function.
- Fixed parsing channel data in case the audio pid is 0. On channels that only
broadcast Dolby Digital audio there were sometimes log entries like
"changing pids of channel ... from ... to ..." with no apparent difference
between the old and new set of pids.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: channels.c 2.19 2011/08/26 12:44:21 kls Exp $
* $Id: channels.c 2.20 2012/03/07 16:50:15 kls Exp $
*/
#include "channels.h"
@ -619,7 +619,8 @@ bool cChannel::Parse(const char *s)
}
else
*alangs[NumApids] = 0;
apids[NumApids++] = strtol(q, NULL, 10);
if ((apids[NumApids] = strtol(q, NULL, 10)) != 0)
NumApids++;
}
else
esyslog("ERROR: too many APIDs!"); // no need to set ok to 'false'
@ -647,7 +648,8 @@ bool cChannel::Parse(const char *s)
}
else
*dlangs[NumDpids] = 0;
dpids[NumDpids++] = strtol(q, NULL, 10);
if ((dpids[NumDpids] = strtol(q, NULL, 10)) != 0)
NumDpids++;
}
else
esyslog("ERROR: too many DPIDs!"); // no need to set ok to 'false'