summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY4
-rw-r--r--channels.c8
2 files changed, 9 insertions, 3 deletions
diff --git a/HISTORY b/HISTORY
index a79267b0..cfd4b912 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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.
diff --git a/channels.c b/channels.c
index b9204f28..04e1e378 100644
--- a/channels.c
+++ b/channels.c
@@ -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'