summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Endriss <devnull@localhost>2003-04-12 01:37:05 +0000
committerOliver Endriss <devnull@localhost>2003-04-12 01:37:05 +0000
commited53c097fbf1a3744cda2c9252796c46fcd00a62 (patch)
tree4b81aa50be36d35ab432a3f852abdec09540a832
parentd8bcca2542551e853ac3e50012c280062af0987b (diff)
downloadmediapointer-dvb-s2-ed53c097fbf1a3744cda2c9252796c46fcd00a62.tar.gz
mediapointer-dvb-s2-ed53c097fbf1a3744cda2c9252796c46fcd00a62.tar.bz2
fixed race condition between ChangePIDs() and av7110_before_after_tune()
when tuning to a new transponder with vdr, the audio pid was not passed to the ARM firmware under some circumstances
-rw-r--r--linux/drivers/media/dvb/ttpci/av7110.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/ttpci/av7110.c b/linux/drivers/media/dvb/ttpci/av7110.c
index 07eb817f4..9578a1036 100644
--- a/linux/drivers/media/dvb/ttpci/av7110.c
+++ b/linux/drivers/media/dvb/ttpci/av7110.c
@@ -2005,8 +2005,13 @@ SetPIDs(av7110_t *av7110, u16 vpid, u16 apid, u16 ttpid,
DEB_EE(("av7110: %p\n",av7110));
if (vpid == 0x1fff || apid == 0x1fff ||
- ttpid == 0x1fff || subpid == 0x1fff || pcrpid == 0x1fff)
+ ttpid == 0x1fff || subpid == 0x1fff || pcrpid == 0x1fff) {
vpid = apid = ttpid = subpid = pcrpid = 0;
+ av7110->pids[DMX_PES_VIDEO] = 0;
+ av7110->pids[DMX_PES_AUDIO] = 0;
+ av7110->pids[DMX_PES_TELETEXT] = 0;
+ av7110->pids[DMX_PES_PCR] = 0;
+ }
return outcom(av7110, COMTYPE_PIDFILTER, MultiPID, 5,
pcrpid, vpid, apid, ttpid, subpid);