From da948a50d2318fd9c818a4b969b74555ce577b1e Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 8 Jan 2006 18:00:00 +0100 Subject: =?UTF-8?q?Version=201.3.38=20-=20Fixed=20handling=20second=20audi?= =?UTF-8?q?o=20and=20Dolby=20Digital=20PIDs=20for=20encrypted=20channels?= =?UTF-8?q?=20=20=20(was=20broken=20in=20version=201.3.37).=20-=20Improved?= =?UTF-8?q?=20TS/PES=20conversion=20to=20better=20handle=20lost=20TS=20pac?= =?UTF-8?q?kets=20(thanks=20to=20=20=20Reinhard=20Nissl).=20-=20Limited=20?= =?UTF-8?q?the=20frequency=20of=20log=20messages=20from=20the=20cRepackers?= =?UTF-8?q?.=20-=20Now=20using=20the=20gettid()=20syscall=20to=20get=20a?= =?UTF-8?q?=20thread's=20pid,=20so=20that=20we=20get=20a=20=20=20useful=20?= =?UTF-8?q?value=20on=20NPTL=20systems=20(suggested=20by=20Johannes=20Stez?= =?UTF-8?q?enbach).=20-=20Fixed=20the=20RCU=20remote=20control=20handling?= =?UTF-8?q?=20to=20avoid=20problems=20with=20NPTL=20(thanks=20=20=20to=20A?= =?UTF-8?q?ndreas=20Share=20for=20reporting=20a=20lockup=20with=20the=20RC?= =?UTF-8?q?U=20on=20NPTL=20systems).=20-=20When=20displaying=20the=20amoun?= =?UTF-8?q?t=20of=20free=20disk=20space,=20the=20space=20consumed=20by=20?= =?UTF-8?q?=20=20recordings=20that=20have=20been=20"deleted"=20but=20not?= =?UTF-8?q?=20yet=20actually=20"removed"=20is=20now=20=20=20taken=20into?= =?UTF-8?q?=20account=20(suggested=20by=20Christian=20Vogt).=20-=20Now=20a?= =?UTF-8?q?voiding=20unnecessary=20disk=20access=20when=20checking=20if=20?= =?UTF-8?q?there=20are=20deleted=20=20=20recordings=20that=20need=20to=20b?= =?UTF-8?q?e=20removed=20(reported=20by=20Carsten=20Koch).=20-=20Fixed=20h?= =?UTF-8?q?andling=20the=20DELETEDLIFETIME=20when=20removing=20deleted=20r?= =?UTF-8?q?ecordings.=20Now=20=20=20a=20deleted=20recording=20is=20retaine?= =?UTF-8?q?d=20at=20least=20DELETEDLIFETIME=20seconds=20before=20=20=20act?= =?UTF-8?q?ually=20removing=20it.=20=20=20The=20value=20of=20DELETEDLIFETI?= =?UTF-8?q?ME=20has=20been=20changed=20to=20300.=20So=20after=20(possibly?= =?UTF-8?q?=20=20=20inadvertently)=20deleting=20a=20recording,=20there=20w?= =?UTF-8?q?ill=20be=20at=20least=205=20minutes=20=20=20in=20which=20it=20c?= =?UTF-8?q?an=20be=20recovered=20(unless=20a=20new=20recording=20immediate?= =?UTF-8?q?ly=20requires=20=20=20the=20disk=20space).=20The=20count=20star?= =?UTF-8?q?ts=20again=20at=200=20every=20time=20VDR=20is=20started.=20-=20?= =?UTF-8?q?Fixed=20a=20possible=20crash=20when=20displaying=20the=20"Low?= =?UTF-8?q?=20disk=20space!"=20message=20from=20=20=20a=20background=20thr?= =?UTF-8?q?ead=20(thanks=20to=20Christof=20Steininger).=20-=20Fixed=20hand?= =?UTF-8?q?ling=20OSD=20areas=20that=20have=20invalid=20sizes=20(thanks=20?= =?UTF-8?q?to=20Marco=20Schl=C3=BC=C3=9Fler).=20-=20Added=20a=20mutex=20to?= =?UTF-8?q?=20AssertFreeDiskSpace()=20to=20make=20sure=20calls=20from=20fo?= =?UTF-8?q?reground=20=20=20and=20background=20threads=20won't=20interfere?= =?UTF-8?q?.=20-=20The=20main=20menu=20now=20dynamically=20updates=20its?= =?UTF-8?q?=20contents=20in=20case=20an=20instant=20=20=20recording=20or?= =?UTF-8?q?=20replay=20stops,=20etc.=20-=20The=20version=20number=20of=20E?= =?UTF-8?q?PG=20events=20is=20now=20also=20stored=20in=20the=20epg.data=20?= =?UTF-8?q?file=20=20=20(thanks=20to=20Kendy=20Kutzner).=20-=20EPG=20event?= =?UTF-8?q?s=20that=20are=20no=20longer=20in=20the=20currently=20broadcast?= =?UTF-8?q?ed=20data=20stream=20are=20=20=20now=20automatically=20deleted.?= =?UTF-8?q?=20-=20Removed=20an=20invalid=20access=20to=20Event->schedule?= =?UTF-8?q?=20in=20cSchedule::DelEvent().=20-=20Modified=20cSchedule::Clea?= =?UTF-8?q?nup()=20(events=20are=20always=20sorted=20by=20time).=20-=20Sch?= =?UTF-8?q?edules=20are=20now=20cleaned=20up=20once=20every=20hour=20(not?= =?UTF-8?q?=20only=20at=2005:00).=20-=20The=20"Schedule"=20and=20"What's?= =?UTF-8?q?=20on=20now/next=3F"=20menus=20are=20now=20updated=20if=20a=20t?= =?UTF-8?q?imer=20=20=20is=20set=20or=20modified.=20-=20cTimer=20no=20long?= =?UTF-8?q?er=20has=20its=20own=20'schedule'=20member,=20it=20rather=20use?= =?UTF-8?q?s=20that=20of=20the=20=20=20event=20it=20has=20been=20set=20to.?= =?UTF-8?q?=20-=20The=20"Red"=20button=20in=20the=20"Schedule",=20"What's?= =?UTF-8?q?=20on=20now/next=3F"=20and=20"Event"=20menus=20=20=20now=20imme?= =?UTF-8?q?diately=20creates=20a=20timer=20for=20the=20selected=20event=20?= =?UTF-8?q?and=20marks=20it=20with=20'T'.=20=20=20If=20the=20event=20is=20?= =?UTF-8?q?already=20marked=20with=20'T',=20the=20"Red"=20button=20opens?= =?UTF-8?q?=20the=20"Edit=20=20=20timer"=20menu=20for=20that=20timer.=20-?= =?UTF-8?q?=20Removing=20deleted=20recordings=20is=20now=20done=20in=20a?= =?UTF-8?q?=20separate=20thread.=20-=20Dropped=20the=20unused=20"stop=20re?= =?UTF-8?q?cording=20on=20primary=20interface"=20stuff.=20-=20Converting?= =?UTF-8?q?=20a=20grabbed=20image=20to=20JPEG=20is=20now=20done=20with=20t?= =?UTF-8?q?he=20new=20function=20=20=20RgbToJpeg()=20(see=20tools.h).=20-?= =?UTF-8?q?=20The=20SVDRP=20command=20GRAB=20now=20determines=20the=20imag?= =?UTF-8?q?e=20type=20(JPEG=20or=20PNM)=20from=20the=20=20=20extension=20(?= =?UTF-8?q?".jpg",=20".jpeg"=20or=20".pnm")=20of=20the=20given=20file=20na?= =?UTF-8?q?me.=20The=20explicit=20=20=20'jpeg'=20or=20'pnm'=20parameter=20?= =?UTF-8?q?is=20still=20accepted=20for=20backward=20compatibility,=20but?= =?UTF-8?q?=20=20=20has=20no=20meaning=20any=20more.=20-=20The=20function?= =?UTF-8?q?=20cDevice::GrabImage()=20no=20longer=20writes=20the=20grabbed?= =?UTF-8?q?=20image=20to=20a=20=20=20file,=20but=20rather=20returns=20a=20?= =?UTF-8?q?pointer=20to=20the=20image=20in=20memory.=20The=20wrapper=20=20?= =?UTF-8?q?=20function=20cDevice::GrabImageFile()=20can=20be=20used=20to?= =?UTF-8?q?=20write=20the=20grabbed=20image=20=20=20directly=20to=20a=20fi?= =?UTF-8?q?le.=20Plugins=20that=20used=20the=20old=20version=20of=20cDevic?= =?UTF-8?q?e::GrabImage()=20=20=20need=20to=20be=20adapted=20to=20the=20ne?= =?UTF-8?q?w=20interface.=20-=20The=20new=20class=20cBase64Encoder=20(see?= =?UTF-8?q?=20tools.h)=20can=20be=20used=20to=20encode=20data=20in=20=20?= =?UTF-8?q?=20base64=20(thanks=20to=20Bob=20Withers=20for=20publishing=20h?= =?UTF-8?q?is=20Base64=20class).=20-=20The=20SVDRP=20command=20GRAB=20now?= =?UTF-8?q?=20writes=20the=20image=20data=20to=20the=20SVDRP=20connection?= =?UTF-8?q?=20=20=20(encoded=20in=20base64)=20if=20the=20given=20file=20na?= =?UTF-8?q?me=20consists=20of=20only=20the=20file=20=20=20extension=20(".j?= =?UTF-8?q?pg",=20".jpeg"=20or=20".pnm"),=20or=20if=20only=20"-"=20is=20gi?= =?UTF-8?q?ven=20as=20file=20=20=20name=20(based=20on=20a=20suggestion=20f?= =?UTF-8?q?rom=20Darren=20Salt).=20=20=20A=20simple=20way=20of=20viewing?= =?UTF-8?q?=20a=20grabbed=20image=20on=20a=20remote=20host=20is:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svdrpsend.pl -d 'grab -' | sed -n -e 's/^216-//p' -e '1ibegin-base64 644 -' -e '$a====' | uudecode | display - - The new command line option '-g' must be given if the SVDRP command GRAB shall be allowed to write image files to disk. The parameter to this option must be the full path name of an existing directory, without any "..", double '/' or symlinks. By default, or if "-g- is given, grabbing to files is not allowed any more because of potential security risks. - Modified the way the SVDRP command GRAB writes the grabbed image to a file to avoid a security hole (CAN-2005-0071, reported by Javier Fernández-Sanguino Peña): + The file handle is now opened in a way that it won't follow symbolic links (suggested by Darren Salt). + The given file name is now canonicalized, so that it won't contain any ".." or symlinks (suggested by Darren Salt). + Grabbing to files is limited to the directory given in the the command line option '-g'. By default grabbing to files is not allowed any more. - Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos). - Changed all "illegal" to "invalid" in error messages (there's nothing "illegal" in VDR ;-). - When started as user 'root' VDR now switches to a lesser privileged user id, keeping the capability to set the system time (based on a patch from Ludwig Nussel). By default the user id 'vdr' is used, which can be changed through the new command line option '-u'. Note that for security reasons VDR will no longer run as user 'root' (unless you explicitly start it with '-u root', but this is not recommended!). The 'runvdr' script has been changed to use the '-u' option. - Changed the API of the functions cStatus::Recording() and cStatus::Replaying(), so that they can provide the full file name of the recording. Plugins that use these (or the related cStatus::Msg...() functions) need to be adapted (suggested by Andreas Brugger). - The DVB devices now retune (and, if applicable, resend the DiSEqC data) if the lock is lost (based on a patch from Reinhard Nissl). - Fixed handling multi byte key sequences in cKbdRemote (based on a patch from Jürgen Schneider). - Removed unused variables in skinclassic.c and skinsttng.c (thanks to Marco Schlüßler). - Made the static cControl functions thread safe (thanks to Patrick Fischer). - Fixed initializing pthread_mutexattr_t and pthread_rwlockattr_t to avoid warnings with g++ 4.1.0 (thanks to Ville Skyttä). - Fixed incrementing the 'state' variables in the repacker classes in remux.c to avoid warnings with g++ 4.1.0 (reported by Ville Skyttä). - The Makefile now reports a summary of failed plugins (thanks to Udo Richter). - The cTimer constructor can now take an optional cChannel (suggested by Patrick Fischer). - Fixed setting the main thread id if VDR is running as a daemon. - Fixed handling TS packets in cTS2PES (thanks to Reinhard Nissl). - Added cTimer::SetPriority() to set a timer's priority (suggested by Kendy Kutzner). - Added cMenuEditStrItem::InEditMode() (suggested by Christian Wieninger). - Now using FE_READ_STATUS to read the current frontend status (suggested by Holger Wächtler). - The "Menu" key now behaves consistently. If there is anything on the OSD, it is closed when the "Menu" key is pressed, and if there is nothing on the OSD, the "Menu" key opens the main menu (suggested by Luca Olivetti). - The new option "Setup/OSD/Timeout requested channel info" can be used to turn off the automatic timeout of the channel display in case it was invoked by a press of the "Ok" key (suggested by Thiemo Gehrke). - A message is now given when an instant recording is started (suggested by Helmut Auer). Actually the code was already there, just commented out - don't remember why it wasn't active... - Removed an obsolete "Summary" text from i18n.c and preceded all key definition texts with "Key$" to avoid duplicates (reported by Lucian Muresan). - Preceded all button texts with "Button$". - Removed obsolete "Eject", "Language" and "scanning recordings..." texts. - Added missing #include "thread.h" to dvbspu.c (reported by Gavin Hamill). - Disabled the use of "fadvise" in cUnbufferedFile because there have been several reports that it causes more problems than it solves (suggested by Petri Hintukainen). If you want to use "fadvise", you can activate the line //#define USE_FADVISE in tools.c. - Removed unused 'offset' member from cOsdItem. - In the "Channels" menu the numeric keys now position the cursor to the channel with the given number (see MANUAL, section "Remote Control Keys", note (3) for details). - The "Mark/Move" function in the "Channels" menu now also works in the non-numeric sort modes. - The default cOsdObject::Show() now automatically calls cOsdMenu::Display() if this is a menu. - The new "Info" key brings up information on the currently viewed programme or recording. For a live programme this is the same as "Schedule/Ok", i.e. the description of the current EPG event. For a recording this is the same as shown by the "Info" button in the "Recordings" menu. Plugins that implement players can overwrite their cControl::GetInfo() function to show their own info (see PLUGINS.html for details). Pressing the "Info" key again while the info is displayed will close the OSD. In order to assign this new key to an existing remote control setup, the remote.conf file needs to be deleted and VDR has to be restarted to go through the process of learning the remote control keys. - Any cReceivers still attached to a cDevice when that device switches to a different transponder are now automatically detached (suggested by Patrick Fischer). - The "flags" of a timer are now handled as an unsigned integer value. In order to do this, the interface of cMenuEditBitItem also had to be changed. - In string entry fields (like, e.g., the file name of a recording) the characters can now be entered by pressing the numeric keys, the same way as on a telephone keypad (based on the "Easy Input" patch from Marcel Schaeben). - Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch from "single shot" to "weekly", followed by the "Right" key (reported by Andreas Böttger). - The file 'ca.conf' is obsolete and has been removed. - Revised all descriptions regarding CICAM. - Adapted c(Dvb)Device::ProvidesCa() to the dynamic CA handling. - Added a mutex to synchronize cDevice::PlayPesPacket() and SetCurrentAudioTrack() (thanks to Reinhard Nissl). - Added a SleepMs() in cRecorder::Action() to avoid a busy loop (thanks to Ingo Schneider). - Cleaned up some trailing white space. --- CONTRIBUTORS | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) (limited to 'CONTRIBUTORS') diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c4173a0..d524a30 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -16,6 +16,8 @@ Carsten Koch for fixing converting summary.vdr files that would result in a very long 'short text' for his help in testing and debugging reading the list of recordings in a separate thread + for reporting some unnecessary disk access when checking if there are deleted + recordings that need to be removed Plamen Ganev for fixing the frequency offset for Hotbird channels @@ -310,6 +312,7 @@ Andreas Share for his support in keeping the Premiere World channels up to date in 'channels.conf' for pointing out that section filters should only be set if the device actually has a lock + for reporting a lockup with the RCU on NPTL systems Simon Bauschulte for his support in keeping the Premiere World channels up to date in 'channels.conf' @@ -480,6 +483,8 @@ Oliver Lorei Andreas Böttger for reporting a bug in skipping forward in time shift mode near the end of the recording for fixing setting system time to avoid time jumps in case of faulty data + for reporting a bug in the "Day" field of the "Edit timer" menu when pressing + '0' to switch from "single shot" to "weekly", followed by the "Right" key Onno Kreuzinger for reporting leftover references to the file FORMATS in MANUAL and svdrp.c @@ -517,8 +522,9 @@ Christian Rienecker Joerg Riechardt for filling in some missing teletext PIDs -Holger Wächtler +Holger Wächtler for some valuable advice during adapting to the NEWSTRUCT driver + for suggesting to use FE_READ_STATUS to read the current frontend status Jürgen Zimmermann for adding some missing #includes to files in libdtv for gcc 3.2 @@ -531,6 +537,7 @@ Helmut Auer for implementing a default cRemote::Initialize() for suggesting to increase the default value for 'Min. user inactivity' to 300 minutes for suggesting to add cChannel::LinkChannels() and cChannel::RefChannel() + for suggesting to give a message when an instant recording is started Jeremy Hall for fixing an incomplete initialization of the filter parameters in eit.c @@ -821,6 +828,7 @@ Ludwig Nussel cThread::Start() for removing the LOCK_THREAD from the LIRC thread for making the Makefile patch friendlier + for a patch that was used for implementing setting the user id Thomas Koch for his support in keeping the Premiere World channels up to date in 'channels.conf' @@ -1007,6 +1015,11 @@ Reinhard Nissl for suggesting to always use stream id 0xE0 for the video stream, to avoid problems with post processing tools that choke on different ids for fixing cDvbPlayer::SkipFrames() to properly handle radio recordings + for improving TS/PES conversion to better handle lost TS packets + for suggesting to make the DVB devices retune (and, if applicable, resend the + DiSEqC data) if the lock is lost + for fixing handling TS packets in cTS2PES + for adding a mutex to synchronize cDevice::PlayPesPacket() and SetCurrentAudioTrack() Richard Robson for reporting freezing replay if a timer starts while in Transfer Mode from the @@ -1252,6 +1265,8 @@ Marco Schl for fixing initializing the day index when editing the weekday parameter of a repeating timer for figuring out some obscure length bytes the the CA PMT Reply data of AlphaCrypt CAMs + for fixing handling OSD areas that have invalid sizes + for removing unused variables in skinclassic.c and skinsttng.c Jürgen Schmitz for reporting a bug in displaying the current channel when switching via the SVDRP @@ -1307,6 +1322,7 @@ Udo Richter for reporting a bug in opening recording folders in case the last replayed recording no longer exists for reporting a missing check against MAXOSDAREAS in cOsd::CanHandleAreas() + for making the Makefile report a summary of failed plugins Sven Kreiensen for his help in keeping 'channels.conf.terr' up to date @@ -1318,6 +1334,7 @@ Lucian Muresan for updating the Romanian language texts and the iso8859-2 fonts for making VDR actually use the iso8859-15 fonts for suggesting to make the function ExchangeChars() + for reporting duplicate texts in i18n.c Mattias Grönlund for pointing out a missing cleanup at program exit in case there is a problem @@ -1346,6 +1363,8 @@ Andreas Brugger for reporting the missing Euro sign in iso8859-1 for reporting a problem with making changes to timers through SVDRP while they are being edited via the menu + for suggesting to change the API of the functions cStatus::Recording() and + cStatus::Replaying(), so that they can provide the full file name of the recording Dino Ravnic for fixing some characters in the iso8859-2 font file @@ -1364,6 +1383,9 @@ Darren Salt for a patch that was used to add the command line options '--lirc', '--rcu' and '--no-kbd' for adding '__attribute__' to functions that use printf() like parameters + for suggesting to write grabbed images to the SVDRP connection encoded in base64 + for suggesting to open the file handle in the SVDRP GRAB command in a way that + it won't follow symbolic links, and to canonicalize the file name Sean Carlos for translating OSD texts to the Italian language @@ -1416,6 +1438,7 @@ Chris Warren Luca Olivetti for making cDevice::AttachPlayer() keep the track language codes and descriptions in Transfer Mode + for suggesting to make the "Menu" key behave consistently Mikko Salo for suggesting to make the setup option "DVB/Video display format" available only @@ -1432,6 +1455,10 @@ Ville Skytt for making LIRC command parsing more robust for fixing some typos in MANUAL for reporting that the default value for "Setup/EPG bugfix level" was wrong + for fixing initializing pthread_mutexattr_t and pthread_rwlockattr_t to avoid + warnings with g++ 4.1.0 + for reporting warnings with g++ 4.1.0 regarding incrementing the 'state' variables + in the repacker classes in remux.c Steffen Beyer for fixing setting the colored button help after deleting a recording in case the next @@ -1453,6 +1480,8 @@ Michael Reinelt Johannes Stezenbach for pointing out that the byte swap for big endian systems in cDvbOsd::Flush() is wrong + for suggesting to use gettid() syscall to get a thread's pid, so that we get a + useful value on NPTL systems Paavo Hartikainen for verifying that the byte swap for big endian systems in cDvbOsd::Flush() was @@ -1538,6 +1567,10 @@ Nicolas Huillard Patrick Fischer for reporting an error in the cFilter example in PLUGINS.html + for making the static cControl functions thread safe + for suggesting that the cTimer constructor should take an optional cChannel + for suggesting that any cReceivers still attached to a cDevice when that device + switches to a different transponder shall be automatically detached Ralf Müller for a patch that was used to implement cUnbufferedFile @@ -1547,3 +1580,48 @@ Maarten Wisse Holger Brunn for adding a copy constructor to cString and fixing its assignment operator + +Christian Vogt + for suggesting to take deleted recordings into account when displaying the + amount of free disk space + +Christof Steininger + for fixing a possible crash when displaying the "Low disk space!" message from + a background thread + +Kendy Kutzner + for making the version number of EPG events be stored in the epg.data file + for suggesting to add cTimer::SetPriority() to set a timer's priority + +Bob Withers + for publishing a Base64 encoder at http://www.ruffboy.com/download.htm + (http://www.ruffboy.com/code/Base64.zip), part of which was used when writing + the cBase64Encoder class + +Javier Fernández-Sanguino Peña + for reporting a security hole in the way the SVDRP command GRAB writes the + image file + +Jürgen Schneider + for a patch that was used as a base to fix handling multi byte key sequences + in cKbdRemote + +Christian Wieninger + for suggesting to add cMenuEditStrItem::InEditMode() + +Thiemo Gehrke + for suggesting to add a setup option to turn off the automatic timeout of the + channel display in case it was invoked by a press of the "Ok" key + +Gavin Hamill + for reporting a missing #include "thread.h" in dvbspu.c + +Petri Hintukainen + for suggesting to disable the use of "fadvise" in cUnbufferedFile because there + have been several reports that it causes more problems than it solves + +Marcel Schaeben + for his "Easy Input" patch + +Ingo Schneider + for adding a SleepMs() in cRecorder::Action() to avoid a busy loop -- cgit v1.2.3