diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 276c1cc..0bce176 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -117,3 +117,6 @@ Alwin Esch BBlack for reporting that updating recordings list on CmdPLAY is a bad idea + +lhanisch + for fixing a memory leak in cStreamdevPatFilter::GetPid diff --git a/HISTORY b/HISTORY index 8b4ac6e..7cfd08c 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,7 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- fixed a memory leak in cStreamdevPatFilter::GetPid (thanks to lhanisch) - length -1 is the correct value for streams in M3U playlists - added DELT FORCE option to delete running timers (thanks to Alwin Esch) - fixed missing virtual destructor for cTSRemux diff --git a/server/livestreamer.c b/server/livestreamer.c index 833c949..c894468 100644 --- a/server/livestreamer.c +++ b/server/livestreamer.c @@ -183,14 +183,17 @@ int cStreamdevPatFilter::GetPid(SI::PMT::Stream& stream) case SI::AC3DescriptorTag: Dprintf("cStreamdevPatFilter PMT scanner: adding PID %d (%s) %s\n", stream.getPid(), psStreamTypes[stream.getStreamType()], "AC3"); + delete d; return stream.getPid(); case SI::TeletextDescriptorTag: Dprintf("cStreamdevPatFilter PMT scanner: adding PID %d (%s) %s\n", stream.getPid(), psStreamTypes[stream.getStreamType()], "Teletext"); + delete d; return stream.getPid(); case SI::SubtitlingDescriptorTag: Dprintf("cStreamdevPatFilter PMT scanner: adding PID %d (%s) %s\n", stream.getPid(), psStreamTypes[stream.getStreamType()], "DVBSUB"); + delete d; return stream.getPid(); default: Dprintf("cStreamdevPatFilter PMT scanner: NOT adding PID %d (%s) %s\n", @@ -223,6 +226,7 @@ int cStreamdevPatFilter::GetPid(SI::PMT::Stream& stream) stream.getPid(), stream.getStreamType(), d->getLength(), rawdata[2], rawdata[3], rawdata[4], rawdata[5]); + delete d; return stream.getPid(); } }