GNOME Bugzilla – Bug 583470
mpegtsparse: Old pes pids not removed when receiving PAT table
Last modified: 2009-07-21 11:18:01 UTC
Please describe the problem:
gnome-dvb-daemon is not able to scan all the DVB-C channels om my cable network. The DVB-C channels are distributed in four frequences. Two of the channels are not found by gnome-dvb-daemon. Some PIDs are used on multiple frequencies and for different things. For example PID 700 is used for PES stream on one frequence and for PMT on another. The problem is the hash table in mpegtsparse containing PES pids. This hash table can contain old information when tuning to a different frequency and changing transport streams, since old PES pids aren't removed when a new PAT is received. The old programs are removed but the PES hash table is not updated.
Steps to reproduce:
Does this happen every time?
OS: Ubuntu 9.04
DVB-C: Anysee E30 C Plus
Created attachment 135125 [details] [review]
Thanks for the report and the patch, will look at it.
The patch looks good in general but why do you remove the free'ing of the PAT in _reset() ?
Yes, the change to _reset looks like there will be a memleak.
I've committed something like this patch now:
Author: Mikael Magnusson <email@example.com>
Date: Tue Jul 21 13:14:00 2009 +0200
mpegtsparse: Remove old PES PIDs when receiving PAT tables
Fixes bug #583470.