12 Commits

Author SHA1 Message Date
Klaus Schmidinger
f836711024 Version 1.3.25
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Some cable providers don't mark short channel names according to the standard,
  but rather go their own way and use "name>short name". VDR now splits at this
  character for cable channels (thanks to Gerhard Steiner for reporting this one).
- Added a check for Setup.DiSEqC in cDvbDevice::ProvidesTransponder(), otherwise
  the EPG scan didn't work on systems that don't use DiSEqC (thanks to Michael
  Reinelt for reporting this one).
- Made the Makefile patch friendlier (thanks to Ludwig Nussel).
- Made cOsd::isOpen an integer counter to avoid problems with messages when a
  cOsdObject uses the raw OSD (thanks to Andreas Regel for reporting this one).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- The file 'summary.vdr' has been replaced with 'info.vdr' and now contains the
  information about a recording, in the same format as the events are stored in
  'epg.data' (see man vdr(5) for details). Existing summary files can be converted
  to the new format by running the Perl script 'summary2info.pl', as in

  summary2info.pl /video

  (the parameter given has to be the video directory). If there is no 'info.vdr'
  file for a recording, an attempt is made to read a 'summary.vdr'.
- The "Summary" button in the "Recordings" menu has been renamed to "Info", and
  the page it brings up now shows the recording's information, much like the EPG
  event page. Therefore it now no longer uses the skin's SetText() function, but
  rather the SetRecording() function. Skin plugins may need to adjust that function
  accordingly (see skinsttng.c, for instance).
- The SVDRP command LSTR now lists the recording information in the same tagged
  format as the LSTE command lists the EPG data.
- The audio track menu now contains track descriptions when replaying (provided
  such descriptions were available in the EPG data when the recording was made,
  and are stored in the info.vdr file).
- Avoiding extra blanks at the end of names of instant recordings.
- Removed converting byte order on big endian systems from cDvbOsd::Flush(),
  which, according to Johannes Stezenbach and Paavo Hartikainen, is wrong.
- Added cPlayer::DeviceSetVideoDisplayFormat() (thanks to Marco Schlüßler).
- No longer saving the setup in case of a fatal error, to keep the volume level
  from being set to a wrong value (thanks to Marco Schlüßler).
- Fixed a possible hangup when ending a replay session while cIndexFile::CatchUp()
  is waiting (thanks to Marco Schlüßler).
- The SVDRP command DELR no longer deletes recordings that are currently being
  written to by a timer (thanks to Sascha Volkenandt for pointing out this one).
- Pressing the "Play" key in live viewing mode now resumes a previous replay
  session (thanks to Mirko Dölle).
- Now dropping EPG events that have a zero start time or duration (thanks to
  Oliver Endriss).
- No longer stopping Transfer Mode or replay immediately when the Power button
  is pressed (thanks to Rolf Ahrenberg).
- Moved the NPTL and UTF-8 checks after the version and help output (thanks to
  Andreas Kool for pointing out that 'vdr --version' failed on an UTF-8 system).
- Made tChannelID::operator==() inline for better performance (thanks to Georg
  Acher).
- Introduced cListBase::count for better performance (thanks to Georg Acher).
- cEvent no longer stores the channelID directly, but rather has a pointer to
  the schedule it is in.
- Now using hash tables to speed up cSchedule::GetEvent() (partially based on
  a patch from Georg Acher).
- Avoiding unnecessary calls to getLength() in libsi/si.c, and avoiding the
  '& 0xff' in CRC32::crc32() of libsi/util.c (thanks to Georg Acher).
- Speeded up deleting duplicate channels.
- Fixed listing recordings with empty episode names in the LSTR command (thanks
  to Stefan Huelswitt for pointing this out).
- Added cThread::SetPriority() and using it in cSectionHandler::Action() to
  reduce the priority of the section handler threads (as suggested by Georg Acher).
2005-05-29 18:00:00 +02:00
Klaus Schmidinger
dbacda8274 Version 1.3.21
- Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching
  back to live mode if a recording is currently active on the primary device.
- Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function
  permanently returns 0 (thanks to Reinhard Nissl and Olaf Titz).
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Restricted the "setting audio track" log message to automatic changes during replay.
- Fixed handling Transfer Mode for radio channels (thanks to Andreas Regel for
  reporting this one).
- Fixed handling symbolic links in cRecordings::ScanVideoDir() (thanks to Stefan
  Huelswitt).
- Completed the Danish OSD texts (thanks to Mogens Elneff).
- Forcing a new resync after a call to cRemux::Clear() (suggested by Marco Schlüßler).
- The cAudio::Play() function now has an additional parameter 'uchar Id' which tells
  the function the substream id of the given audio packet, so that a plugin can
  take the right action for the various kinds if audio data - which now also includes
  "normal" audio with ids 0xC0...0xDF (based on suggestions by Werner Fink and Macro
  Schlüßler).
- Removed the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(), since this
  is now done when attaching the player to the device (thanks to Marco Schlüßler).
- Making sure the buffer reserve in cTransfer::Action() is re-established after
  clearing the buffer.
- Added DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer
  (thanks to Marco Schlüßler).
- Fixed a typo in detecting UTF-8 (thanks to Reinhard Nissl).
- Now using twice the buffer reserve in cTransfer if the primary DVB card is an
  unmodified version with only 2MB of SDRAM, to avoid audio stuttering when
  playing Dolby Digital over the DVB card (thanks to Christian Jacobsen and Chad
  Flynt for suggestions and experiments in that area).
- Making sure the first audio packet is not dropped when switching to "pre 1.3.19
  Dolby Digital compatibility mode".
- The 'plugins-clean' target of the Makefile now only deletes the actual plugin
  library files from this version of VDR (suggested by Andreas Brachold).
- Added a missing 'resultSkipped = 0' to cRemux::Clear() (thanks to Marco Schlüßler
  for reporting this one).
- The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by
  plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice
  from starting Transfer Mode in order to replay DD over the DVB device.
- Added missing reset of the 'repacker' to cTS2PES::Clear() (thanks to Marco
  Schlüßler for reporting this one).
2005-02-13 18:00:00 +01:00
Klaus Schmidinger
4d477cd144 Version 1.3.20
- Fixed displaying the "Audio" menu with the "Green" button from the "Main" menu
  in case there is only one audio track (thanks to Sascha Volkenandt for reporting
  this one).
- Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown()
  to avoid problems in case other threads access it (thanks to Wolfgang Rohdewald for
  pointing this out).
- Fixed a buffer overflow in case a station defines all 32 audio PIDs (thanks to
  Christian Jacobsen for reporting this one).
- Fixed masking SubStreamType in cDevice::PlayPesPacket() (thanks to Werner Fink
  for pointing out this one).
- The new function cPlugin::Stop() shall be used to stop any background activities
  of a plugin. Previously this was done in the plugin's destructor, but it is
  better to do this in a dedicated function that can be called early when shutting
  down.
- Moved the call to SetAudioChannel(0) into cDevice::ClrAvailableTracks() to have it
  executed also when starting a replay.
- Completed the Danish OSD texts (thanks to Mogens Elneff).
- Completed the French OSD texts (thanks to Olivier Jacques).
- The new setup option "OSD/Channel info time" can be used to define the time after
  which the channel display is removed if no key has been pressed (thanks to
  Olivier Jacques).
- Modified cDolbyRepacker to make sure PES packets don't exceed the requested length
  (thanks to Reinhard Nissl).
- Fixed several memory leaks that were introduced through the use of cString (thanks
  to Stefan Huelswitt for reporting these).
- Added CMD_SPU_CHG_COLCON to cDvbSpuDecoder::setTime() (thanks to Marco Schlüßler).
- Making sure the current audio track is actually one of the ones available in a
  recording (thanks to Sascha Volkenandt for reporting a problem when starting
  replay of a recording that has no Dolby Digital audio after switching to a channel
  that has DD and selecting the DD audio track).
- Removed 'flags' from tTrackId (thought we would need this, but apparently we don't).
- Making sure the "Mute" and "Volume+/-" keys don't interfere with digital audio.
- Fixed the "pre 1.3.19" compatibility mode for old Dolby Digital recordings (thanks
  to Werner Fink for pointing out that this can be triggered in the default branch).
- Calling pesAssembler->Reset() in cDevice::AttachPlayer() to avoid problems with
  residual data in replay and Transfer Mode (thanks to Werner Fink for pointing this
  out).
- Added MPEG1 replay capability to cPesAssembler (thanks to Stefan Huelswitt).
2005-02-06 18:00:00 +01:00
Klaus Schmidinger
fb5cccb2df Version 1.3.18
- Removed an unused variable from cTimer::GetWDayFromMDay() (thanks to Wayne Keer
  for reporting this one).
- Some more changes to the 'childTid' handling in cThread (based on suggestions by
  Stefan Huelswitt).
- Fixed the spelling of 'canceling' (thanks to Wayne Keer for reporting this one).
- Re-introduced a sleep to cDvbPlayer::Action() to avoid high CPU load in still
  picture mode (thanks to Reinhard Nissl for reporting this one).
- Fixed a possible race condition in generating the DVB device names (thanks to
  Rainer Zocholl for reporting this one).
- Changed the way PES packets are played to allow replay of AC3 sound over the
  full featured DVB cards (partially based on a patch from Werner Fink).
  + The new function cDevice::PlayPes() is now called with the complete PES data
    stream and calls PlayVideo() and PlayAudio() as necessary.
  + cDevice::PlayVideo() is now only called with actual video PES packets.
  + cDevice::PlayAudio() is now called with the actual audio PES packets, which
    can be either "normal" audio or AC3 data. You need at least firmware version
    0x261d to replay AC3 sound over a full featured DVB card. This function now
    has an 'int' return value.
  + PlayAudio() of derived cDevice classes shall no longer call the base class
    function. It shall just play the given data as audio.
  + cPlayer::PlayVideo() and cPlayer::PlayAudio() are now obsolete and have been
    replaced with cPlayer::PlayPes().
  + All StripAudioPackets() functions are now obsolete. The functionality has been
    moved into cDevice::PlayPes(), where only the video and audio packets that are
    actually required will be processed.
  + All audio track handling is now done by cDevice; cTransfer and cDvbPlayer no
    longer care about audio tracks. cPlayer, however, still has the virtual hooks
    for audio track handling in order to allow plugins to implement players that
    have their own idea about this.
  + cChannel::[AD]pid[12]() have been replaced with cChannel::[AD]pid(int i) to
    allow access to all available PIDs.
- Escaped the '-' and 'ö' characters in the man pages (thanks to Darren Salt for
  pointing this out).
- Completed the Italian OSD texts (thanks to Sean Carlos).
- Fixed setting 'synced' in cRemux when recording radio channels (thanks to
  Laurence Abbott).
- Removed the LOCK_THREAD from the LIRC thread (thanks to Ludwig Nussel).
- Fixed genfontfile.c (sometimes the character width was wrong, and the codes were
  shifted one too far to the left).
- Fixed the character width and shifted the codes one to the right in all font
  files.
- Renamed font???.c to font???-iso8859-1.c for symmetry.
- Switched the character set to iso8859-15 for English, German and Finnish (thanks
  to Andreas Brugger for reporting the missing Euro sign in iso8859-1).
- Added 'channels.conf.terr' entries for Lübeck (thanks to Stefan Hußfeldt).
- Fixed a race condition in starting a thread (thanks to Reinhard Nissl for
  reporting this one).
- Replaced non-threadsafe library functions with their threadsafe versions (thanks
  to Rainer Zocholl for pointing this out).
- Other non-threadsafe functions have been replaced by threadsafe classes that hide
  the actual buffering. In particular these are:
  readdir() -> cReadDir
  readline() -> cReadLine
- Several formerly non-threadsafe functions now have a return type of cString:
  cChannel::ToText()
  tChannelID::ToString()
  cEvent::GetDateString()
  cEvent::GetTimeString()
  cEvent::GetEndTimeString()
  cEvent::GetVpsString()
  cMark::ToText()
  cTimer::ToText()
  cSource::ToString()
  cTimer::PrintDay()
  cTimer::PrintFirstDay()
  PrefixVideoFileName()
  IndexToHMSF()
  ChannelString()
  strescape()
  AddDirectory()
  itoa()
  WeekDayName()
  DayDateTime()
  When using these functions in a 'const char *' context there is nothing special
  to consider, except that you can no longer have a pointer to the return value,
  as in
  const char *date = DayDateTime();
  Although this will compile without error message, the resulting 'date' will not
  be valid after this line. Use this instead:
  cString date = DayDateTime();
  In a 'const void *' context (as in printf() etc.) the result needs to be
  dereferenced with a '*', as in
  printf("%s", *DayDateTime());
  to make it a 'const char *'.
- Removed delay_ms(), using cCondWait::SleepMs() instead.
- Replaced time_ms() with a threadsafe and non-overflowing cTimeMs (thanks to Rainer
  Zocholl for pointing out this problem).
- Added cDevice::mutexReceiver to avoid a race condition when attaching/detaching
  receivers from different threads.
- The new remote control button "Audio" can be used to switch between different
  audio tracks. The "Green" button in the "Main" menu has been changed from "Language"
  to "Audio", since it now also controls switching between normal and Dolby Digital
  audio tracks (see MANUAL for details).
- The description of the audio tracks is now taken from the "component descriptors"
  that are broadcast in the EPG data. However (as no big surprise), not all channels
  actually provide useful data here, so there are now some additional EPG bugfixes,
  which can be activated by setting the "EPG bugfix level" to 3.
- The format of the 'epg.data' files has been extended by the new tag 'X', which
  contains the stream components of an event (see man vdr(5) for details).
- The cStatus class now has the new member function SetAudioTrack(), which can be
  used to get notified when the audio track has been switched, and the new member
  function SetAudioChannel() which is called when the audio channel is changed.
- Skins need to implement the new cSkinDisplayTrack class to display the audio
  track menu.
- The ST:TNG skin now displays the current audio track description (if any) at the
  botton left side.
- The new setup option "DVB/Audio languages" can be used to control which audio
  language shall be selected in case a channel broadcasts in different languages
  (see MANUAL for details).
- The "Left" and "Right" keys in the "Audio" menu can be used to switch between
  the left and right stereo channels in case there are different audio tracks
  in these channels (see MANUAL for details).
- Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grönlund).
- Fixed the default quality value when grabbing a JPEG image (thanks to Patrick
  Gleichmann).
- Fixed deleting a menu item in case the next item is not selectable (thanks to
  Dino Ravnic).
- Implemented displaying mandatory subtitles in the SPU decoder (thanks to Marco
  Schlüßler).
- The setup option "Recording/Record Dolby Digital" has been renamed and moved to
  "DVB/Use Dolby Digital". It now controls whether Dolby Digital is recorded and
  whether an available DD audio track will appear in the "Audio" menu.
- Added support for circular polarization (thanks to Jonan Santiago).
- Thanks to Werner Fink, Reinhard Nissl, Sascha Volkenandt and Bjørnar Nilsen for
  their support in testing and fine tuning this version.
2005-01-09 18:00:00 +01:00
Klaus Schmidinger
eb52e3004a Version 1.3.11
- In order to avoid problems on NPTL systems, VDR now checks for the presence
  of NPTL at program start, and if it is, exits and tells the user to do
  'export LD_ASSUME_KERNEL=2.4.1' before starting VDR.
- Revisited the "Fixed missing audio after replaying a DVD" change because it
  introduced a sound disturbance when switching between channels on the same
  transponder (thanks to Marco Schlüßler).
- In order to avoid problems on UTF-8 systems, VDR now checks for the presence
  of UTF-8 at program start, and if it is, exits and tells the user to turn off
  UTF-8 before starting VDR (thanks to Ludwig Nussel for pointing out a problem
  with systems that are set to use UTF-8). There are also problems in case the
  video partition is mounted with "iocharset=utf8" (thanks to Jörg Knitter for
  reporting this one).
  Please also read the "IMPORTANT NOTES" section in the INSTALL file!
- Some changes to the SPU decoder interface (thanks to Sven Goethel).
- Some improvements in cOsd creation (thanks to some suggestions by Jouni Karvo).
- Fixed calculating the OSD width and height (thanks to Olaf Henkel for reporting
  a problem with long event texts in the "Classic VDR" skin).
- Fixed switching channels while an encrypted channel is being recorded, because the
  channel was switched if the new channel was on the same transponder and was
  a radio channel or an unencrypted channel (thanks to Martin Dauskardt for reporting
  this one).
- No longer using the external 'find' command to scan the video directory for
  recordings (based on a suggestion by Mirko Dölle).
- The list of recordings is now kept statically in memory to avoid long delays
  when opening the "Recordings" menu. As a side effect, external modifications to
  the video directory are no longer immediately reflected in the "Recordings" menu.
  If a plugin manipulates the video directory in any way, it can call the function
  Recordings.TriggerUpdate() to trigger an update of the list of recordings.
  If some external tool manipulates the video directory, it can touch the file
  '.update' in the video directory to trigger an update of the list of recordings.
- Fixed a memory leak in theme description handling (thanks to Sascha Volkenandt).
- Added cDevice::Flush() to make sure that all data in the video card's buffers
  has been processed (thanks to Reinhard Nissl). Currently this is not yet actually
  implemented for FF DVB cards.
- Fixed handling the color button texts in cMenuEditStrItem (thanks to Maynard
  Cedric for reporting this one).
- Fixed the description of cRingBufferLinear (thanks to Ludwig Nussel for pointing
  out this one).
- Fixed cRingBufferLinear::Get() in case the buffer wraps around (thanks to Ludwig
  Nussel for reporting this one).
2004-06-19 18:00:00 +02:00
Klaus Schmidinger
c80a53ff6e Version 1.3.7
- Fixed a memory leak in thread handling when using NPTL (thanks to Jon Burgess).
- Fixed handling Setup.RecordDolbyDigital, which was broken since version 1.1.6.
- Fixed handling text lengths for itemized EPG texts (thanks to Marcel Wiesweg).
- Fixed the help for LSTE and LSTR (was broken in 1.3.6).
- Improved iso8859-7 fonts (thanks to Dimitrios Dimitrakos).
- Added some 3-letter language codes (thanks to Marcus Mönnig).
- Added language code handling to the subtitling descriptor in 'libsi' (thanks to
  Pekka Virtanen).
- Moved several menu item classes from menu.c to menuitems.[hc] to make them
  available for plugins.
- The epg2html.pl script now handles '|' in description texts.
- The new setup option "OSD/Use small font" can be used to control the use of
  the small font (see MANUAL for details).
- Swapped osd.[hc] and osdbase.[hc] to have the virtual OSD base class named cOsd.
  Plugins may need to adjust their #include statements.
- Colors are now given as AARRGGBB instead of AABBGGRR. The values are mapped to
  the driver's (wrong) sequence in dvbosd.c (this should really be fixed in the
  driver, together with the endian problem).
- The new OSD setup parameters "Left" and "Top" can be used to define the top left
  corner of the OSD.
- The OSD size parameters are now in pixel (as opposed to formerly characters).
  When reading a 'setup.conf' file from an older version of VDR, the OSDwidth
  and OSDheight values will be converted to pixel automatically.
- The OSD is now fully device independent. See the comments in VDR/osd.h and the
  description in PLUGINS.html for information on how a plugin can implement an OSD
  display on arbitrary hardware.
- The OSD (actually its cBitmap class) can now handle XPM files. There are several
  XPM files in the VDR/symbols directory which can be used by skins (some of these
  have been taken from the "elchi" patch). See VDR/skinsttng.c for examples on how
  to use these.
- Due to the changes in the OSD handling the DEBUG_OSD option for a textual OSD
  has been dropped. There will be a plugin that implements a skin with this
  functionality later.
- The entire OSD display can now be implemented via "skins". See VDR/skins.[hc],
  VDR/skinclassic.[hc], VDR/skinsttng.[hc] and PLUGINS.html for information on how
  a plugin can implement its own skin. By default VDR comes with a "Classic" skin
  that implements the OSD display known from previous versions, and the new skin
  named "ST:TNG Panels", which is also the default skin now. The actual skin can
  be selected through "Setup/OSD/Skin".
- The colors used in a skin can now be configured using "themes". See PLUGINS.html
  for information on how a skin can make use of themes, and man vdr(5) for the
  structure of a theme file. The actual theme to use can be selected through
  "Setup/OSD/Theme".
- Added Croatian language texts (thanks to Drazen Dupor).
  NOTE: there is apparently a problem with the newly introduced iso8859-2 font,
  because as soon as Setup/OSD/Language is set to Croatian (currently the last one
  in the list) everything freezes and the vdr processes have to be killed with -9
  and the driver needs to be reloaded. Maybe somebody else can find out what's
  going wrong here...
- Added missing NULL checks when accessing sectionHandler in device.c (thanks to
  Pekka Virtanen).
- Fixed setting the time from the DVB data stream (thanks to Helmut Auer for
  pointing out a frequency/transponder handling mixup). This now also takes the
  actual source (sat, cable etc.) into account. Please go into "Setup/EPG" and
  set the "Set system time" and "Use time from transponder" parameters accordingly
  (this is necessary even if you have already set them before!).
2004-05-16 18:00:00 +02:00
Klaus Schmidinger
1a8a081629 Version 1.1.15
- Completely switched to the new CVS HEAD version of the linux-dvb driver.
  The NEWSTRUCT compile time switch is now obsolete. The required driver is now
  the CVS HEAD version dated 2002-11-01 or later.
- Adjusted the INSTALL file to the 1.1.x version.
- Only accepting key presses from the current remote control when learning (thanks to
  Oliver Endriss).
- Fixed the EPG scanner, which broke 'Transfer Mode' as soon as it kicked in
  (thanks to Oliver Endriss for reporting this one).
- Fixed handling audio tracks in cDvbDevice.
- Updated channels.conf.terr (thanks to Uwe Scheffler).
- Fixed displaying the group separators in the channel display (thanks to Martin
  Hammerschmid for pointing out this one).
- The Makefile now includes the file Make.config (if present in the VDR source
  directory), which allows the user to overwrite several settings with individual
  values (suggested by Andreas Schultz). The VDR distribution archive does not
  contain this file in order to not overwrite a user defined file. There is a
  Make.config.template which contains the default values of the macros the user
  can overwrite.
- Since there have been changes to the 'newplugin' script authors of plugins
  may want to newly create their plugins' Makefiles with the new version of this
  script, and adapt them to their individual needs (make sure you don't overwrite
  your existing plugin directory - make a backup copy first!).
- Fixed reading EPG data via the SVDRP command PUTE (it changed the current
  service ID).
- Fixed closing all dup'ed file descriptors in cPipe.
- Implemented a plugin interface for additional audio processing (see PLUGINS.html
  under "Dolby Digital").
  The functionality of the '-a' command line option has been reactivated.
  Since the author doesn't have any Dolby Digital equipment this may or may not
  work as expected. There may still be some places where a call to cAudios::Clear()
  or cAudios::Mute() is necessary. Those with Dolby Digital equipment should please
  take a look at this and maybe send patches.
  Replaying Dolby Digital in ways other than through VDR's '-a' option will have to
  be implemented as plugins. Those who have written patches for VDR version 1.0.x
  should convert their work into the proper plugins for version 1.1.x.
  Note to authors of cPlayer derived plugins: please read the modified comments
  in device.h regarding the member functions cDevice::Clear(), cDevice::Mute() and
  cDevice::PlayAudio(). Derived classes must call these base class member functions
  to make sure all registered cAudio objects are properly handled. Also note that
  the return type of cDevice::PlayAudio() has been changed to 'void', since this
  function always has to accept the entire data block immediately and there is
  nothing that could be reasonably done in case an error occurs in one of the
  cAudio objects.
- Now checking the driver's DVB_API_VERSION in dvbdevice.h. Since VDR now requires
  a driver dated 2002-11-01 or later the MIN_DVB_DRIVER_VERSION_FOR_TIMESHIFT and
  DVB_DRIVER_VERSION stuff has been replaced with DO_REC_AND_PLAY_ON_PRIMARY_DEVICE,
  which can be used to disable simultaneous recording and replaying on the primary
  DVB device in case there are problems with this.
2002-11-03 18:00:00 +01:00
Klaus Schmidinger
cd7ccd64fd Version 1.1.13
- Added cDevice::DeviceNumber() to get the number of a device, not counting any
  gaps that might be in the index count.
- Fixed fetching the current/next information to handle cases where the duration
  of an event is set wrongly and would last beyond the start time of the next
  event.
- Adapted type names to the new HEAD version of the driver (which the previous
  NEWSTRUCT branch has been merged into). Note that to use this driver version
  you still need to add NEWSTRUCT=1 to the make call when building VDR. You
  need a HEAD version of the LinuxDVB driver dated 2002-10-11 or later to compile
  VDR with NEWSTRUCT=1.
- Fixed radio channels in channels.conf.cable (thanks to Robert Schiele and Uwe
  Scheffler).
- Fixed switching the video format in the Setup/DVB menu (thanks to Uwe Scheffler
  for reporting this one).
- Reactivated full handling of second audio PID (even in 'Transfer Mode').
- Fixed a crash when closing down with remote control plugins (thanks to Oliver
  Endriss helping to debug this one).
- Commands in the file 'commands.conf' can now have a '?' at the end of their
  title, which will result in a confirmation prompt before executing the
  command.
- Changed a few leftover 'new char[...]' to MALLOC(char, ...).
- If a command executed from the "Commands" menu doesn't return any output, the
  OSD will now be closed automatically.
- The SVDRP command PUTE now triggers an immediate write of the 'epg.data' file
  (suggested by Gerhard Steiner).
- The new configuration file 'reccmds.conf' can be used to define commands that
  shall be executed from the "Recordings" menu; see MANUAL and 'man vdr(5)' for
  details (suggested by Gerhard Steiner).
2002-10-13 18:00:00 +02:00
Klaus Schmidinger
ed643353b1 Version 1.1.7
- Adapted VDR to the NEWSTRUCT driver. To use the new driver, compile VDR with
  'make NEWSTRUCT=1' (thanks to Holger Wächtler for some valuable advice).
  By default it currently still uses the old driver.
- Added some missing #includes (thanks to Martin Hammerschmid).
- Changed the log error message "can't record MPEG1!" to "error in data stream!",
  since the mentioning of MPEG1 has irritated many people.
- Consistently using malloc/free and new/delete (thanks to Andreas Schultz).
- Temporarily made cDevice::ProvidesCa() virtual (Andreas Schultz needs this
  in his DXR3 plugin).
- cDevice no longer exposes a file handle to cPlayer. A derived cPlayer class
  can now call DevicePoll() to see whether the replay device is ready for
  further data. A derived cDevice class must implement Poll() and shall
  check if any of its file handles is ready for data.
- Implemented several replay modes to allow players that play only audio (thanks
  to Stefan Huelswitt).
- Improved cCondVar::Wait() and implemented cCondVar::TimedWait() (thanks to
  Stefan Huelswitt).
- VDR no longer gives up if there is no DVB device. It continues to work if
  there is at least one device, either a DVB device found by the core VDR code
  itself, or a device implemented by a plugin.
2002-08-16 18:00:00 +02:00
Klaus Schmidinger
a4112a96a6 Version 1.1.5
- Added direct access to the index data of cPalette (needed for displaying SPUs,
  thanks to Andreas Schultz).
- The status monitor function cStatus::Replaying() now gets a 'cControl *' argument instead
  of a 'cDvbPlayerControl *' in order to allow additional players to call this function.
  cPlayer and cControl have been given the functions GetIndex() and GetReplayMode() to
  allow access to the player's status.
- Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs).
- Changed the symantics of the Name parameter in cStatus::Recording() and
  cStatus::Replaying(). It is no longer the full directory name of the recording,
  but rather just the basic name. This has been changed to allow players that can't
  provide a name to simply use a string that describes the player type (like, e.g.,
  "DVD").
- Fixed a hangup when switching to the next file during replay.
- Fixed a possible race condition in the cDvbPlayer (thanks to Andreas Schultz
  for pointing out this one).
- Disabled channels on Transponder 12070 in 'channels.conf', which apparently no longer transmits.
2002-07-21 18:00:00 +02:00
Klaus Schmidinger
54d069c95c Version 1.1.4
- Added Hungarian language texts (thanks to Istvan Koenigsberger and Guido Josten).
- Activated cutting.
- Activated 'Transfer Mode'.
- Moved handling of the Menu key entirely into vdr.c.
- Switched VDR's own player to the new cPlayer/cControl structures.
- Switched handling 'Transfer Mode' to the new cPlayer/cControl structures.
- The following limitations apply to this version:
  + The '-a' option (for Dolby Digital audio) doesn't work yet.
  + Switching between different language tracks doesn't work yet.
2002-06-23 18:00:00 +02:00
Klaus Schmidinger
f06d2c27fc Version 1.1.3
- Improved the VDR Makefile to avoid a warning if the '.dependencies' file does
  not exist, and also using $(MAKE) to call recursive makes.
- Changed the name of the 'package' target in the plugin Makefiles to 'dist'
  (following the suggestions in the "GNU Make" manual). If you already have started
  a plugin project, you may want to change this in your Makefile accordingly.
- Improved the plugin Makefile to avoid a warning if the '.dependencies' file does
  not exist, and also using $(shell...) to get the version numbers. If you already have
  started a plugin project, you may want to change this in your Makefile accordingly.
- Fixed some function headers to make them compile with gcc 3.x (thanks to
  Gregoire Favre).
- Fixed the cutting mechanism to make it re-sync in case a frame is larger than the
  buffer (thanks to Sven Grothklags).
- Added an error message if the directory specified in the '-L' option can't be
  accessed (suggested by Stefan Huelswitt).
- Rearranged OSD class names to make 'cOsd' available for the main OSD interface.
- Completely moved OSD handling out of the cDvbApi class, into the new cOsd.
- Implemented cStatus to allow plugins to set up a status monitor.
  See PLUGINS.html for details.
- Moved the cEITScanner out of dvbapi.h/.c, into the new eitscan.h/.c.
- Added Swedish language texts (thanks to Tomas Prybil).
- Fixed parsing 'E' records in epg2html.pl (thanks to Matthias Fechner for pointing
  out this one).
- Removed compiler option '-m486' to make it work on non-Intel platforms. If you
  have already started a plugin project, you may want to make sure you remove this
  option from your existing Makefile.
- Completely rearranged the recording and replay functions to make them available
  to plugins.
- Replay is now done in a single thread (no more syncing between input and output
  thread necessary).
- It is now possible to record several channels on the same transponder with "budget
  cards". VDR automatically attaches a recording timer to a card that already
  records on the appropriate transponder. How many parallel recordings can actually
  be done depends on the computer's performance. Currently any number of recordings
  gets attached to a card, so you should carefully plan your timers to not exceed
  the limit. On a K6-II/450 it was possible to record three channels from transponder
  12480 with a single WinTV NOVA-S.
- Timers that record two successive shows on the same channel may now overlap and
  will use the same DVB card. During the time where both timers record the data
  is simply saved to both files.
- The following limitations apply to this version:
  + Transfer mode doesn't work yet.
  + The '-a' option (for Dolby Digital audio) doesn't work yet.
  + Switching between different language tracks doesn't work yet.
  + Cutting doesn't work yet.
2002-06-16 18:00:00 +02:00