<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vdr-patch-lnbsharing, branch vdr-1.7.12</title>
<subtitle>VDR LNB Sharing patch
</subtitle>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/'/>
<entry>
<title>Version 1.7.12</title>
<updated>2010-01-31T14:42:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>Klaus (dot) Schmidinger (at) tvdr (dot) de</email>
</author>
<published>2010-01-31T14:42:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=09a17d56e2a3f975a0467e8da4ca26c946b6ccf7'/>
<id>09a17d56e2a3f975a0467e8da4ca26c946b6ccf7</id>
<content type='text'>
- Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group".
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- The "Edit timer" menu can now set the folder for the recording from a list of
  folders stored in "folders.conf".
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- If svdrphosts.conf contains only the address of the local host, the SVDRP port
  is opened only for the local host (thanks to Manuel Reimer).
- Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR
  in 'make install' (thanks to Martin Dauskardt).
- Added plain text error messages to log entries from cOsd::SetAreas() (suggested
  by Rolf Ahrenberg).
- cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved
  cDvbSpuBitmap::getMinBpp() (thanks to Matthieu Castet and Johann Friedrichs).
- The new setup option "Miscellaneous/Channels wrap" controls whether the current
  channel wraps around the beginning or end of the channel list when zapping (thanks
  to Matti LehtimÃ¤ki).
- Fixed determining the frame duration on channels where the PTS deltas jitter by
  +/-1 around 1800.
- The PCR pid in generated PMTs is now set to the channel's PCR pid again.
- Fixed determining the frame duration on channels where the PTS deltas jitter by
  +/-1 around 3600.
- The PCR pid is now recorded for channels where this is different from the video
  PID. To facilitate this, the interfaces of cTransfer, cTransferControl, cRecorder
  and cReceiver have been modified, so that the PIDs are no longer given in separate
  parameters, but rather the whole channel is handed down for processing. The old
  constructor of cReceiver is still available, but it is recommended to plugin authors
  that they switch to the new interface as soon as possible.
  When replaying such a recording, the PCR packets are sent to PlayTsVideo()
- The files "commands.conf" and "reccmd.conf" can now contain nested lists of
  commands. See vdr.5 for information about the new file format.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group".
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- The "Edit timer" menu can now set the folder for the recording from a list of
  folders stored in "folders.conf".
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- If svdrphosts.conf contains only the address of the local host, the SVDRP port
  is opened only for the local host (thanks to Manuel Reimer).
- Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR
  in 'make install' (thanks to Martin Dauskardt).
- Added plain text error messages to log entries from cOsd::SetAreas() (suggested
  by Rolf Ahrenberg).
- cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved
  cDvbSpuBitmap::getMinBpp() (thanks to Matthieu Castet and Johann Friedrichs).
- The new setup option "Miscellaneous/Channels wrap" controls whether the current
  channel wraps around the beginning or end of the channel list when zapping (thanks
  to Matti LehtimÃ¤ki).
- Fixed determining the frame duration on channels where the PTS deltas jitter by
  +/-1 around 1800.
- The PCR pid in generated PMTs is now set to the channel's PCR pid again.
- Fixed determining the frame duration on channels where the PTS deltas jitter by
  +/-1 around 3600.
- The PCR pid is now recorded for channels where this is different from the video
  PID. To facilitate this, the interfaces of cTransfer, cTransferControl, cRecorder
  and cReceiver have been modified, so that the PIDs are no longer given in separate
  parameters, but rather the whole channel is handed down for processing. The old
  constructor of cReceiver is still available, but it is recommended to plugin authors
  that they switch to the new interface as soon as possible.
  When replaying such a recording, the PCR packets are sent to PlayTsVideo()
- The files "commands.conf" and "reccmd.conf" can now contain nested lists of
  commands. See vdr.5 for information about the new file format.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.11</title>
<updated>2010-01-06T12:34:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>Klaus (dot) Schmidinger (at) tvdr (dot) de</email>
</author>
<published>2010-01-06T12:34:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=939081e274d0a9868e5ba9a7951666ad508afb96'/>
<id>939081e274d0a9868e5ba9a7951666ad508afb96</id>
<content type='text'>
- Fixed resetting the file size when regenerating the index file.
- The new function cDevice::PatPmtParser() can be used in derived devices to access
  the PAT/PMT of the currently replayed material.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- The PCR pid in generated PMTs is now set to 0x1FFF ("no PCR pid") in
  cPatPmtGenerator::GeneratePmt(), because VDR doesn't record the PCR pid.
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- The 'sky' plugin is no longer part of the VDR source.
- Improved SPU handling on devices with limited OSD capabilities (thanks to
  Matthieu Castet).
- Several code modifications to avoid compiler warnings (thanks to Winfried KÃ¶hler).
- Added stream type 11172 AUDIO to cPatPmtParser::ParsePmt() (thanks to Johann
  Friedrichs).
- Removed debug output of '-' from cTransfer::Receive().
- Added defines for large files to the 'newplugin' script (reported by Udo Richter).
- Removed the workaround for short channel names of "Kabel Deutschland", because
  apparently they now have their data according to the DVB standard (thanks to
  Johann Friedrichs).
- Some fixes to dvbspu.[hc] (thanks to Johann Friedrichs).
- Fixed a busy loop when moving editing marks (thanks to Johann Friedrichs).
- Updated sources.conf (thanks to Derek Kelly).
- Modified cCharSetConv so that it can be used to convert from "whatever VDR uses"
  to a given code (thanks to Joachim Wilke).
- Channel names containing commas are now handled correctly in channels.conf.
  If a channel's short name contains a comma, it is replaced with a '.'.
- cDevice now logs the device number when a new device is created.
- Fixed handling STREAMTYPE_11172_AUDIO in cPatPmtParser::ParsePmt().
- cParsePatPmt now has functions to retrieve the audio, dolby and subtitle pids.
- cPatFilter::Process() now only stores CA descriptors for video and audio pids
  (thanks to Francesco Saverio Schiavarelli for reporting a problem with channels
  that have some encrypted components that VDR doesn't use).
- cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas
  Regel).
- Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel).
- cPatPmtParser now also stores the audio stream types.
- The support for full featured DVB cards of the TT/FuSi design has been moved
  into the new plugin 'dvbsddevice'. On systems that use such a card as their
  primary device, this plugin now needs to be loaded when running VDR in order
  to view live or recorded video. If the plugin is not loaded, the card will
  be treated like a budget DVB card, and there will be no OSD or viewing
  capability.
- Fixed handling the "CA PMT" generation (revised a change not mentioned in version
  1.7.9's changes, which caused a malfunction with Conax and Viaccess CAMs).
- Fixed stopping subtitle display when switching the primary device (thanks to
  Anssi Hannula).
  IMPORTANT NOTE TO PLUGIN AUTHORS: a plugin that implements a derived cDevice
  class that can replay video must now call the MakePrimaryDevice() function of
  its base class.
- Fixed compiler warnings "format not a string literal and no format arguments"
  in some syslog calls (thanks to Rolf Ahrenberg).
- The new command line options --edit and --genindex can be used to edit a
  recording or generate its index without actually starting the entire VDR
  (based on a patch from Helmut Auer).
- Improved the description of the transponder parameters in vdr.5 (thanks to
  Winfried KÃ¶hler).
- Avoiding setting the video stream type to 2 if the vpid is 0 (problem reported
  by Arthur Konovalov).
- Implemented handling the "Content Descriptor" (based on a patch from Rolf
  Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the textual
  representation of the content descriptors as "genre". The epg.data file stores
  the genre using the tag character 'G'.
- Implemented handling the "Parental Rating Descriptor" (based on a patch from Rolf
  Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the parental
  rating (if given) in their event displays. The epg.data file stores
  the parental rating using the tag character 'R'.
  IMPORTANT NOTE: if VDR doesn't display a parental rating, this does not
  necessarily mean that the given programme is suitable for all audiences!
- Rearranged cEvent members to minimize memory waste.
- After a CLRE command, no further EPG processing is now done for 10 seconds,
  so that data sent with subsequent PUTE commands doesn't interfere with data
  from the broadcasters (suggested by Helmut Auer).
- Added support for DVB cards with multiple fontends. Note that this only
  works for DVB cards where each frontend can be used independently of all
  the others on the same adapter.
- Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to
  Anssi Hannula).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed resetting the file size when regenerating the index file.
- The new function cDevice::PatPmtParser() can be used in derived devices to access
  the PAT/PMT of the currently replayed material.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- The PCR pid in generated PMTs is now set to 0x1FFF ("no PCR pid") in
  cPatPmtGenerator::GeneratePmt(), because VDR doesn't record the PCR pid.
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- The 'sky' plugin is no longer part of the VDR source.
- Improved SPU handling on devices with limited OSD capabilities (thanks to
  Matthieu Castet).
- Several code modifications to avoid compiler warnings (thanks to Winfried KÃ¶hler).
- Added stream type 11172 AUDIO to cPatPmtParser::ParsePmt() (thanks to Johann
  Friedrichs).
- Removed debug output of '-' from cTransfer::Receive().
- Added defines for large files to the 'newplugin' script (reported by Udo Richter).
- Removed the workaround for short channel names of "Kabel Deutschland", because
  apparently they now have their data according to the DVB standard (thanks to
  Johann Friedrichs).
- Some fixes to dvbspu.[hc] (thanks to Johann Friedrichs).
- Fixed a busy loop when moving editing marks (thanks to Johann Friedrichs).
- Updated sources.conf (thanks to Derek Kelly).
- Modified cCharSetConv so that it can be used to convert from "whatever VDR uses"
  to a given code (thanks to Joachim Wilke).
- Channel names containing commas are now handled correctly in channels.conf.
  If a channel's short name contains a comma, it is replaced with a '.'.
- cDevice now logs the device number when a new device is created.
- Fixed handling STREAMTYPE_11172_AUDIO in cPatPmtParser::ParsePmt().
- cParsePatPmt now has functions to retrieve the audio, dolby and subtitle pids.
- cPatFilter::Process() now only stores CA descriptors for video and audio pids
  (thanks to Francesco Saverio Schiavarelli for reporting a problem with channels
  that have some encrypted components that VDR doesn't use).
- cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas
  Regel).
- Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel).
- cPatPmtParser now also stores the audio stream types.
- The support for full featured DVB cards of the TT/FuSi design has been moved
  into the new plugin 'dvbsddevice'. On systems that use such a card as their
  primary device, this plugin now needs to be loaded when running VDR in order
  to view live or recorded video. If the plugin is not loaded, the card will
  be treated like a budget DVB card, and there will be no OSD or viewing
  capability.
- Fixed handling the "CA PMT" generation (revised a change not mentioned in version
  1.7.9's changes, which caused a malfunction with Conax and Viaccess CAMs).
- Fixed stopping subtitle display when switching the primary device (thanks to
  Anssi Hannula).
  IMPORTANT NOTE TO PLUGIN AUTHORS: a plugin that implements a derived cDevice
  class that can replay video must now call the MakePrimaryDevice() function of
  its base class.
- Fixed compiler warnings "format not a string literal and no format arguments"
  in some syslog calls (thanks to Rolf Ahrenberg).
- The new command line options --edit and --genindex can be used to edit a
  recording or generate its index without actually starting the entire VDR
  (based on a patch from Helmut Auer).
- Improved the description of the transponder parameters in vdr.5 (thanks to
  Winfried KÃ¶hler).
- Avoiding setting the video stream type to 2 if the vpid is 0 (problem reported
  by Arthur Konovalov).
- Implemented handling the "Content Descriptor" (based on a patch from Rolf
  Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the textual
  representation of the content descriptors as "genre". The epg.data file stores
  the genre using the tag character 'G'.
- Implemented handling the "Parental Rating Descriptor" (based on a patch from Rolf
  Ahrenberg). The 'classic', 'sttng' and 'curses' skins display the parental
  rating (if given) in their event displays. The epg.data file stores
  the parental rating using the tag character 'R'.
  IMPORTANT NOTE: if VDR doesn't display a parental rating, this does not
  necessarily mean that the given programme is suitable for all audiences!
- Rearranged cEvent members to minimize memory waste.
- After a CLRE command, no further EPG processing is now done for 10 seconds,
  so that data sent with subsequent PUTE commands doesn't interfere with data
  from the broadcasters (suggested by Helmut Auer).
- Added support for DVB cards with multiple fontends. Note that this only
  works for DVB cards where each frontend can be used independently of all
  the others on the same adapter.
- Fixed plugin arguments corruption with glibc 2.11 on x86_64 (thanks to
  Anssi Hannula).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.10</title>
<updated>2009-11-22T14:58:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>Klaus (dot) Schmidinger (at) tvdr (dot) de</email>
</author>
<published>2009-11-22T14:58:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=ea01358b3bca9d55402ba632c95cdd6458abfdb3'/>
<id>ea01358b3bca9d55402ba632c95cdd6458abfdb3</id>
<content type='text'>
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed wrong bracketing in cChannel::SubtitlingType() etc.
  (thanks to Rolf Ahrenberg).
- Fixed not logging changes for channels that have no number
  (reported by Timothy D. Lenz).
- Changed the project's URLs and email to tvdr.de.
- Added Lithuanian language translations (thanks to Valdemaras Pipiras).
- Updated Chinese language texts (thanks to Nan Feng).
- Only checking DVB_API_VERSION to be &gt;=5 in order to stay compileable in case
  the DVB API version number is increased (the API claims to always be backward
  compatible).
- Fixed saving terminal settings when running in background (thanks to Manuel
  Reimer).
- Fixed cFrameDetector::Analyze() to handle video streams where the frame type
  is not detectable from the first TS packet of a frame.
- Fixed writing the PCR pid into the PMT in cPatPmtGenerator::GeneratePmt()
  (reported by Rene van den Braken).
- Added Slovakian language texts (thanks to Milan Hrala).
- Fixed EntriesOnSameFileSystem() to avoid using f_fsid, which may be 0 (thanks
  to Frank Schmirler).
- Fixed starting a recording at an I-frame.
- Fixed generating the index for recordings from channels that put a whole
  GOP into one payload unit.
- The index file for TS recordings is now regenerated on-the-fly if a
  recording is replayed that has no index. This can also be used to
  re-create a broken index file by manually deleting the index file and then
  replaying the recording (at least until the index file has been generated).
- The cRingBufferLinear::Read() function now returns -1 and sets errno to
  EAGAIN if the buffer is already full.
- Fixed handling DVB subtitles for PES recordings (thanks to Rolf Ahrenberg).
- Added the audio id to the call of PlayAudio() in cDevice::PlayTsAudio()
  (thanks to Andreas Schaefers).
- Fixed references to old *.vdr file names in MANUAL (reported by Arthur Konovalov).
- Reverted "Removed limitation to PAL resolution from SPU handling" because it
  cause nothing but trouble. Besides, the core VDR doesn't use this, anyway.
- Fixed the default value for "Pause key handling" in the MANUAL (reported by
  Diego Pierotto).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed wrong bracketing in cChannel::SubtitlingType() etc.
  (thanks to Rolf Ahrenberg).
- Fixed not logging changes for channels that have no number
  (reported by Timothy D. Lenz).
- Changed the project's URLs and email to tvdr.de.
- Added Lithuanian language translations (thanks to Valdemaras Pipiras).
- Updated Chinese language texts (thanks to Nan Feng).
- Only checking DVB_API_VERSION to be &gt;=5 in order to stay compileable in case
  the DVB API version number is increased (the API claims to always be backward
  compatible).
- Fixed saving terminal settings when running in background (thanks to Manuel
  Reimer).
- Fixed cFrameDetector::Analyze() to handle video streams where the frame type
  is not detectable from the first TS packet of a frame.
- Fixed writing the PCR pid into the PMT in cPatPmtGenerator::GeneratePmt()
  (reported by Rene van den Braken).
- Added Slovakian language texts (thanks to Milan Hrala).
- Fixed EntriesOnSameFileSystem() to avoid using f_fsid, which may be 0 (thanks
  to Frank Schmirler).
- Fixed starting a recording at an I-frame.
- Fixed generating the index for recordings from channels that put a whole
  GOP into one payload unit.
- The index file for TS recordings is now regenerated on-the-fly if a
  recording is replayed that has no index. This can also be used to
  re-create a broken index file by manually deleting the index file and then
  replaying the recording (at least until the index file has been generated).
- The cRingBufferLinear::Read() function now returns -1 and sets errno to
  EAGAIN if the buffer is already full.
- Fixed handling DVB subtitles for PES recordings (thanks to Rolf Ahrenberg).
- Added the audio id to the call of PlayAudio() in cDevice::PlayTsAudio()
  (thanks to Andreas Schaefers).
- Fixed references to old *.vdr file names in MANUAL (reported by Arthur Konovalov).
- Reverted "Removed limitation to PAL resolution from SPU handling" because it
  cause nothing but trouble. Besides, the core VDR doesn't use this, anyway.
- Fixed the default value for "Pause key handling" in the MANUAL (reported by
  Diego Pierotto).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.9</title>
<updated>2009-08-23T14:04:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-08-23T14:04:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=06bf4c453e22a9bf03f5ec46f7b45593e2cb326c'/>
<id>06bf4c453e22a9bf03f5ec46f7b45593e2cb326c</id>
<content type='text'>
- Fixed storing the current OSD size in case the device has
  changed it in its setup menu (reported by Reinhard Nissl).
- Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the
  buffer has been accepted by the device (reported by Udo Richter).
- Changed the EIT filter setup to save a few handles on devices that do hardware
  filtering.
- Fixed deleting expired timers if they have the VPS flag set, but the event they
  are assigned to doesn't have a VPS tag.
- Fixed handling file name length on VFAT systems in case they
  contain UTF-8 characters (thanks to Rolf Ahrenberg).
- Fixed generating CaPmts in case audio and video are encrypted using different
  ECM pids.
- Updated vdr.1 to use the new file names in recording directories.
- Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4
  (thanks to Matthias Schwarzott).
- Increased the value of MAXFRAMESIZE to better suit HD recordings (thanks to
  Reinhard Nissl).
- Implemented full handling of subtitling descriptors (thanks to Mikko Tuumanen).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed storing the current OSD size in case the device has
  changed it in its setup menu (reported by Reinhard Nissl).
- Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the
  buffer has been accepted by the device (reported by Udo Richter).
- Changed the EIT filter setup to save a few handles on devices that do hardware
  filtering.
- Fixed deleting expired timers if they have the VPS flag set, but the event they
  are assigned to doesn't have a VPS tag.
- Fixed handling file name length on VFAT systems in case they
  contain UTF-8 characters (thanks to Rolf Ahrenberg).
- Fixed generating CaPmts in case audio and video are encrypted using different
  ECM pids.
- Updated vdr.1 to use the new file names in recording directories.
- Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4
  (thanks to Matthias Schwarzott).
- Increased the value of MAXFRAMESIZE to better suit HD recordings (thanks to
  Reinhard Nissl).
- Implemented full handling of subtitling descriptors (thanks to Mikko Tuumanen).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.8</title>
<updated>2009-06-14T11:49:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-06-14T11:49:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=ab6f2ccf424896a80b6e2fdf9ab9313ea4b7f316'/>
<id>ab6f2ccf424896a80b6e2fdf9ab9313ea4b7f316</id>
<content type='text'>
- The name of the function cDevice::GetVideoSize() wasn't very well chosen
  for its purpose of defining the optimum size of the OSD for the current
  output device. Therefore a new function named cDevice::GetOsdSize() has
  been introduced (suggested by Rolf Ahrenberg). Plugin authors should
  implement this function in classes derived from cDevice, if they are able
  to replay video. cDevice::GetVideoSize() still exists and should return the
  actual size of the video material that is currently replayed. Note that
  because of the many possible aspect ratios for video material, the type
  of the Aspect parameter of GetVideoSize() has been changed to 'double',
  and the Aspect parameter in both functions is named differently, because
  it returns different values (suggested by Reinhard Nissl).
  Thanks to Oliver Endriss for his input on calculating the Aspect factor in
  GetOsdSize().
- Fixed the way the OSD size is determined on full featured DVB cards (thanks
  to Oliver Endriss).
- Increased MAXOSDHEIGHT to 1200 (suggested by Nicolas Huillard).
- Removed limitation to PAL resolution from SPU handling.
- Checking fd_video in cDvbDevice::GetVideoSize() to avoid error messages on
  systems with no real primary replay device (reported by Martin Neuditschko).
- Added a note to cTsToPes::GetPes() about having to call it repeatedly, once
  it has returned a non-NULL value.
- Added MPEG 1 handling to remux.c (thanks to Ales Jurik).
- Fixed use of time_t in cEIT::cEIT() (thanks to Tobias Bratfisch).
- Added missing update of lastOsdSizeUpdate.
- EIT events are now only processed if a plausible system time is available, to
  avoid wrong handling of PDC descriptors (thanks to Tobias Bratfisch).
- Removed unused 'synced' member from cTsToPes (reported by Christoph Haubrich).
- Added a note to cTsToPes about all TS packets having to belong to the same PID,
  and that for video data GetPes() may only be called if the next TS packet that
  will be given to PutTs() has the "payload start" flag set (suggested by Christoph
  Haubrich).
- Added a note about the meaning of PERCENTAGEDELTA in cRingBuffer::UpdatePercentage()
  (thanks to Rolf Ahrenberg).
- The new setup option "Recording/Pause key handling" can be used to define
  what happens if the Pause key on the remote control is pressed during
  live tv (thanks to Timo Eskola).
- Added a note about cFont::GetFont() not being thread-safe.
- Fixed generating PAT/PMT version numbers in case the PIDs change during
  recording (reported by Reinhard Nissl).
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
- Fixed a memory leak when reaching the end of a recording during replay (reported
  by Reinhard Nissl).
- Fixed calling close(-1) in cUnbufferedFile::Close() (reported by Reinhard Nissl).
- Added a workaround for the broken linux-dvb driver header files (based on a patch
  from Tobias Grimm).
- Fixed handling the length of DiSEqC command sequences (reported by Reinhard Nissl).
- Fixed cOsdMenu::Display() in case the menu size has changed (thanks to
  Reinhard Nissl).
- Added some missing 'const' keywords to avoid compilation errors with gcc 4.4
  (thanks to Ville SkyttÃ¤ and Ludwig Nussel).
- Modified cSVDRP::CmdGRAB() to avoid writing into const data (reported by
  Ludwig Nussel).
- Fixed calculating menu colum widths in case the font has a size other than the
  default size (reported by Reinhard Nissl).
- Added a plausibility check for the OSD percentage parameters
  to avoid problems in case the values are stored in the setup.conf
  file in a  wrong way.
- Fixed variable types in cIndexFile (reported by Udo Richter).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The name of the function cDevice::GetVideoSize() wasn't very well chosen
  for its purpose of defining the optimum size of the OSD for the current
  output device. Therefore a new function named cDevice::GetOsdSize() has
  been introduced (suggested by Rolf Ahrenberg). Plugin authors should
  implement this function in classes derived from cDevice, if they are able
  to replay video. cDevice::GetVideoSize() still exists and should return the
  actual size of the video material that is currently replayed. Note that
  because of the many possible aspect ratios for video material, the type
  of the Aspect parameter of GetVideoSize() has been changed to 'double',
  and the Aspect parameter in both functions is named differently, because
  it returns different values (suggested by Reinhard Nissl).
  Thanks to Oliver Endriss for his input on calculating the Aspect factor in
  GetOsdSize().
- Fixed the way the OSD size is determined on full featured DVB cards (thanks
  to Oliver Endriss).
- Increased MAXOSDHEIGHT to 1200 (suggested by Nicolas Huillard).
- Removed limitation to PAL resolution from SPU handling.
- Checking fd_video in cDvbDevice::GetVideoSize() to avoid error messages on
  systems with no real primary replay device (reported by Martin Neuditschko).
- Added a note to cTsToPes::GetPes() about having to call it repeatedly, once
  it has returned a non-NULL value.
- Added MPEG 1 handling to remux.c (thanks to Ales Jurik).
- Fixed use of time_t in cEIT::cEIT() (thanks to Tobias Bratfisch).
- Added missing update of lastOsdSizeUpdate.
- EIT events are now only processed if a plausible system time is available, to
  avoid wrong handling of PDC descriptors (thanks to Tobias Bratfisch).
- Removed unused 'synced' member from cTsToPes (reported by Christoph Haubrich).
- Added a note to cTsToPes about all TS packets having to belong to the same PID,
  and that for video data GetPes() may only be called if the next TS packet that
  will be given to PutTs() has the "payload start" flag set (suggested by Christoph
  Haubrich).
- Added a note about the meaning of PERCENTAGEDELTA in cRingBuffer::UpdatePercentage()
  (thanks to Rolf Ahrenberg).
- The new setup option "Recording/Pause key handling" can be used to define
  what happens if the Pause key on the remote control is pressed during
  live tv (thanks to Timo Eskola).
- Added a note about cFont::GetFont() not being thread-safe.
- Fixed generating PAT/PMT version numbers in case the PIDs change during
  recording (reported by Reinhard Nissl).
- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
- Fixed a memory leak when reaching the end of a recording during replay (reported
  by Reinhard Nissl).
- Fixed calling close(-1) in cUnbufferedFile::Close() (reported by Reinhard Nissl).
- Added a workaround for the broken linux-dvb driver header files (based on a patch
  from Tobias Grimm).
- Fixed handling the length of DiSEqC command sequences (reported by Reinhard Nissl).
- Fixed cOsdMenu::Display() in case the menu size has changed (thanks to
  Reinhard Nissl).
- Added some missing 'const' keywords to avoid compilation errors with gcc 4.4
  (thanks to Ville SkyttÃ¤ and Ludwig Nussel).
- Modified cSVDRP::CmdGRAB() to avoid writing into const data (reported by
  Ludwig Nussel).
- Fixed calculating menu colum widths in case the font has a size other than the
  default size (reported by Reinhard Nissl).
- Added a plausibility check for the OSD percentage parameters
  to avoid problems in case the values are stored in the setup.conf
  file in a  wrong way.
- Fixed variable types in cIndexFile (reported by Udo Richter).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.7</title>
<updated>2009-05-03T15:15:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-05-03T15:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=991eda006700f1703bcec528c1ff178a4cab9048'/>
<id>991eda006700f1703bcec528c1ff178a4cab9048</id>
<content type='text'>
- The new function cDevice::GetVideoSize() returns the size and aspect ratio
  of the video material currently displayed. This function is used to determine
  the proper size of the OSD. Plugin authors should implement this function in
  classes derived from cDevice, if they are able to replay video.
- The OSD and font sizes are now defined in percent of the actual video display
  size. The maximum OSD size has been raised to 1920x1080, to allow full
  screen OSD on HD systems.
- The OSD size is now automatically adjusted to the actual video display
  (provided the output device implements the GetVideoSize() function).
- cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to
  Oliver Endriss for reporting broken index generation after a buffer overflow).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The new function cDevice::GetVideoSize() returns the size and aspect ratio
  of the video material currently displayed. This function is used to determine
  the proper size of the OSD. Plugin authors should implement this function in
  classes derived from cDevice, if they are able to replay video.
- The OSD and font sizes are now defined in percent of the actual video display
  size. The maximum OSD size has been raised to 1920x1080, to allow full
  screen OSD on HD systems.
- The OSD size is now automatically adjusted to the actual video display
  (provided the output device implements the GetVideoSize() function).
- cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to
  Oliver Endriss for reporting broken index generation after a buffer overflow).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.6</title>
<updated>2009-04-26T10:19:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-04-26T10:19:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=733a2becc44a02daf10b97d24b8a9c8b00de3964'/>
<id>733a2becc44a02daf10b97d24b8a9c8b00de3964</id>
<content type='text'>
- cDevice::PlayTs() now syncs on the TS packet sync bytes.
- Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets.
- No longer resetting the patPmtParser in cDevice::PlayTs(), because this
  caused the selected audio and subtitle tracks to fall back to the default.
- The SVDRP command PUTE now supports reading the EPG data from a given file
  (thanks to Helmut Auer).
- Added cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread
  (thanks to Rolf Ahrenberg).
- Fixed the MEGABYTE() macro to make it correctly handle parameters resulting in
  values larger than 2GB.
- Added cDevice::NumProvidedSystems() to PLUGINS.html (was missing since it had
  been implemented).
- Fixed distortions when switching to the next file during replay.
- Fixed detecting the frame rate for streams with PTS distances of 1800, which
  apparently split one frame over two payload units.
- Added missing 'const' to cRecording::FramesPerSecond() (thanks to Joachim Wilke).
- Any TS packets in the first "frame" after a cut in an edited recording that don't
  belong to a payload unit that started in that frame now get their TEI flag set,
  so that a decoder will ignore them together with any PES data collected for that
  PID so far (thanks to Oliver Endriss for reporting chirping sound disturbences at
  editing points in TS recordings).
- cDvbPlayer::Empty() subtracts 1 from readIndex, because Action() will first
  increment it.
- Only storing non-zero Pts values in ptsIndex.
- Added a note to the INSTALL file about using subdirectories to split a large
  disk into separate areas for VDR's video data and other stuff (suggested by
  Udo Richter).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- cDevice::PlayTs() now syncs on the TS packet sync bytes.
- Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets.
- No longer resetting the patPmtParser in cDevice::PlayTs(), because this
  caused the selected audio and subtitle tracks to fall back to the default.
- The SVDRP command PUTE now supports reading the EPG data from a given file
  (thanks to Helmut Auer).
- Added cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread
  (thanks to Rolf Ahrenberg).
- Fixed the MEGABYTE() macro to make it correctly handle parameters resulting in
  values larger than 2GB.
- Added cDevice::NumProvidedSystems() to PLUGINS.html (was missing since it had
  been implemented).
- Fixed distortions when switching to the next file during replay.
- Fixed detecting the frame rate for streams with PTS distances of 1800, which
  apparently split one frame over two payload units.
- Added missing 'const' to cRecording::FramesPerSecond() (thanks to Joachim Wilke).
- Any TS packets in the first "frame" after a cut in an edited recording that don't
  belong to a payload unit that started in that frame now get their TEI flag set,
  so that a decoder will ignore them together with any PES data collected for that
  PID so far (thanks to Oliver Endriss for reporting chirping sound disturbences at
  editing points in TS recordings).
- cDvbPlayer::Empty() subtracts 1 from readIndex, because Action() will first
  increment it.
- Only storing non-zero Pts values in ptsIndex.
- Added a note to the INSTALL file about using subdirectories to split a large
  disk into separate areas for VDR's video data and other stuff (suggested by
  Udo Richter).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.5</title>
<updated>2009-04-12T09:39:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-04-12T20:29:35+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=1aadb31fb355550bb415ed971322a9bcb80f9325'/>
<id>1aadb31fb355550bb415ed971322a9bcb80f9325</id>
<content type='text'>
- Fixed a hangup when replaying a TS recording with subtitles activated (reported
  by Timo Helkio).
- Fixed handling the 'new' indicator in the recordings menu for TS recordings
  (thanks to Derek Kelly).
- Added cap_sys_nice to the capabilities that are not dropped (thanks to Rolf
  Ahrenberg).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Added cRecordingInfo::GetEvent() (thanks to Marcel Unbehaun).
- Improved synchronizing the progress display, trick modes and subtitle display
  to the actual audio/video. This now works independent of any buffer sizes the
  output device might use.
  + The cBackTrace class has been replaced with cPtsIndex, which keeps track
    of the PTS timestamps of recently played frames.
  + cDevice::GetSTC() is now required to deliver the STC even in trick modes.
    It is sufficient if it returns the PTS of the most recently presented
    audio/video frame.
  + The full-featured DVB cards need an improved firmware in order to return
    proper STC values in trick modes (thanks to Oliver Endriss for enhancing the
    av7110 firmware).
- Adapted cFrameDetector::Analyze() to HD NTSC broadcasts that split frames over
  several payload units (thanks to Derek Kelly for reporting this and helping in
  testing).
- Modified cFrameDetector::Analyze() to make it process whole frames at once, so
  that file I/O overhead is minimized during recording (reported by GÃ¼nter
  Niedermeier).
- Added command line help for the '-i' option.
- Fixed cDvbPlayer::NextFile() to handle files larger than 2GB (thanks to Jose
  Alberto Reguero).
- Improved replay at the begin and end of a recording. The very first and very last
  frame is now sent to the output device repeatedly until GetSTC() reports that it
  has been played. cDvbPlayer::Action() no longer calls DeviceFlush() (thanks to
  Reinhard Nissl for making sure vdr-xine no longer needs this).
- Added missing '[]' to the delete operator in cMenuEditStrItem::~cMenuEditStrItem().
- Added missing virtual destructor to cPalette.
- Now freeing configDirectory before setting it to a new value in
  cPlugin::SetConfigDirectory().
- Fixed a crash when jumping to an editing mark in an audio recording.
- Fixed the 'VideoOnly' condition in the PlayPes() and PlayTs() calls in
  cDvbPlayer::Action() (thanks to Reinhard Nissl).
- cDevice::PlayTs() now plays as many TS packets as possible in one call.
- Making sure any floating point numbers written use a decimal point (thanks to
  Oliver Endriss for pointing out a problem with the F record in the info file of
  a recording).
- Fixed detecting the frame rate for radio recordings.
- Added missing AUDIO_PAUSE/AUDIO_CONTINUE calls to cDvbDevice (thanks to Oliver
  Endriss).
- No longer writing the video type into channels.conf if VPID is 0 (thanks to
  Oliver Endriss for reporting this).
- Improved efficiency of cEIT::cEIT() (thanks to Tobias Bratfisch).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed a hangup when replaying a TS recording with subtitles activated (reported
  by Timo Helkio).
- Fixed handling the 'new' indicator in the recordings menu for TS recordings
  (thanks to Derek Kelly).
- Added cap_sys_nice to the capabilities that are not dropped (thanks to Rolf
  Ahrenberg).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Added cRecordingInfo::GetEvent() (thanks to Marcel Unbehaun).
- Improved synchronizing the progress display, trick modes and subtitle display
  to the actual audio/video. This now works independent of any buffer sizes the
  output device might use.
  + The cBackTrace class has been replaced with cPtsIndex, which keeps track
    of the PTS timestamps of recently played frames.
  + cDevice::GetSTC() is now required to deliver the STC even in trick modes.
    It is sufficient if it returns the PTS of the most recently presented
    audio/video frame.
  + The full-featured DVB cards need an improved firmware in order to return
    proper STC values in trick modes (thanks to Oliver Endriss for enhancing the
    av7110 firmware).
- Adapted cFrameDetector::Analyze() to HD NTSC broadcasts that split frames over
  several payload units (thanks to Derek Kelly for reporting this and helping in
  testing).
- Modified cFrameDetector::Analyze() to make it process whole frames at once, so
  that file I/O overhead is minimized during recording (reported by GÃ¼nter
  Niedermeier).
- Added command line help for the '-i' option.
- Fixed cDvbPlayer::NextFile() to handle files larger than 2GB (thanks to Jose
  Alberto Reguero).
- Improved replay at the begin and end of a recording. The very first and very last
  frame is now sent to the output device repeatedly until GetSTC() reports that it
  has been played. cDvbPlayer::Action() no longer calls DeviceFlush() (thanks to
  Reinhard Nissl for making sure vdr-xine no longer needs this).
- Added missing '[]' to the delete operator in cMenuEditStrItem::~cMenuEditStrItem().
- Added missing virtual destructor to cPalette.
- Now freeing configDirectory before setting it to a new value in
  cPlugin::SetConfigDirectory().
- Fixed a crash when jumping to an editing mark in an audio recording.
- Fixed the 'VideoOnly' condition in the PlayPes() and PlayTs() calls in
  cDvbPlayer::Action() (thanks to Reinhard Nissl).
- cDevice::PlayTs() now plays as many TS packets as possible in one call.
- Making sure any floating point numbers written use a decimal point (thanks to
  Oliver Endriss for pointing out a problem with the F record in the info file of
  a recording).
- Fixed detecting the frame rate for radio recordings.
- Added missing AUDIO_PAUSE/AUDIO_CONTINUE calls to cDvbDevice (thanks to Oliver
  Endriss).
- No longer writing the video type into channels.conf if VPID is 0 (thanks to
  Oliver Endriss for reporting this).
- Improved efficiency of cEIT::cEIT() (thanks to Tobias Bratfisch).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.4</title>
<updated>2009-01-25T12:13:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-01-25T12:13:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=084e16c057ab195a76c2117c631a2fe10a904238'/>
<id>084e16c057ab195a76c2117c631a2fe10a904238</id>
<content type='text'>
- Removed the '#define FE_CAN_2ND_GEN_MODULATION', since it was wrong and the
  flag is now in the driver, anyway.
- The full-featured DVB cards are now given the TS data directly for replay
  (thanks to Oliver Endriss for enhancing the av7110 driver to make it replay
  TS data). The patch from ftp://ftp.cadsoft.de/vdr/Developer/av7110_ts_replay__1.diff
  implements this change in the driver.
  The patch av7110_v4ldvb_api5_audiobuf_test_1.diff mentioned in version 1.7.2
  is still necessary to avoid audio and video glitches on some channels.
- Added a typecast in cUnbufferedFile::Write() to avoid an error message when
  compiling on 64 bit systems.
- Added some missing 'const' statements to cBitmap (thanks to Andreas Regel).
- Fixed returning complete PES packets in cTsToPes::GetPes() (thanks to Reinhard
  Nissl).
- Added a missing Detach() in cTransfer::Activate() (thanks to Marco Schlüßler).
- Added clearing the TS buffers in cDevice::Detach() (thanks to Marco Schlüßler).
- Fixed incrementing the continuity counter in cPatPmtGenerator::GetPmt() (thanks
  to Johann Friedrichs).
- Fixed removing deleted recordings in case there is a problem. Once a recording
  caused a problem with removing, no others were removed any more and an ongoing
  recording could fill up the disk and cause other recordings to be deleted
  automatically (reported by Reinhard Nissl).
- Added "DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
  to Make.config.template (thanks to Johann Friedrichs for pointing this out).
  Plugin authors should add this line to their Makefile or Make.config if they use
  file access functions that need special versions for 64 bit offsets.
- The new command line option -i can be used to set an "instance id", which will
  be used to distinguish recordings of the same broadcast made by different instances
  of VDR (suggested by Frank Schmirler). This replaces the use of the "resume id"
  that was introduced in version 1.7.3.
- Added checking mutexCurrentAudioTrack to cDevice::PlayTs() (thanks to Reinhard
  Nissl for pointing this out).
- Fixed handling the pointer field in cPatPmtParser::ParsePmt() (thanks to Frank
  Schmirler - sorry I swapped two lines when adopting the original patch).
- Checking the remaining packet length after processing the pointer field in
  cPatPmtParser::ParsePat() and cPatPmtParser::ParsePmt() (suggested by Frank
  Schmirler).
- Checking the pointer field in cPatPmtParser::ParsePmt() only in 'payload start'
  packets (suggested by Frank Schmirler).
- Changed cPatPmtGenerator to make sure the PMT pid doesn't collide with any of
  the actual pids of the channel.
- Fixed cDevice::PlayTsAudio() and made cDevice::PlayTsVideo() return 0 if
  PlayVideo() didn't play anything.
- Added an 'int' typecast to calculations involving FramesPerSecond() to avoid
  compiler warnings (reported by Winfried Koehler).
- Fixed detecting frames for pure audio recordings.
- Fixed editing PES recordings. The frame type in the index.vdr file generated for
  the edited PES recording is set to 1 for I-frames and 2 for all others (P- and
  B-frames). The exact frame type doesn't matter for VDR, it only needs to know if
  it's an I-frame or not.
- The PAT/PMT is now only processed if its version changes (reported by Reinhard
  Nissl).
- Fixed handling the maximum video file size (reported by Udo Richter).
- Improved fast-forward/-rewind for audio recordings. The actual data is now sent
  to the output device, so that it can be replayed and thus cause the proper delay.
  For pure audio recordings the audio is no longer muted in fast-forward/-rewind
  mode, so that some orientation regarding the position within the recording is
  possible. There may still be some offset in the replay position displayed by the
  progress indicator when switching from fast-forward/-rewind to play mode, as well
  as in the current position during normal play mode. This is due to the various
  buffers between the player and the output device and will be addressed later.
  Note the new function cDevice::IsPlayingVideo(), which is used to inform the
  player whether there is video data in the currently replayed stream. If a derived
  cDevice class reimplements PlayTs() or PlayPes(), it also needs to make sure this
  new function works as expected.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Removed the '#define FE_CAN_2ND_GEN_MODULATION', since it was wrong and the
  flag is now in the driver, anyway.
- The full-featured DVB cards are now given the TS data directly for replay
  (thanks to Oliver Endriss for enhancing the av7110 driver to make it replay
  TS data). The patch from ftp://ftp.cadsoft.de/vdr/Developer/av7110_ts_replay__1.diff
  implements this change in the driver.
  The patch av7110_v4ldvb_api5_audiobuf_test_1.diff mentioned in version 1.7.2
  is still necessary to avoid audio and video glitches on some channels.
- Added a typecast in cUnbufferedFile::Write() to avoid an error message when
  compiling on 64 bit systems.
- Added some missing 'const' statements to cBitmap (thanks to Andreas Regel).
- Fixed returning complete PES packets in cTsToPes::GetPes() (thanks to Reinhard
  Nissl).
- Added a missing Detach() in cTransfer::Activate() (thanks to Marco Schlüßler).
- Added clearing the TS buffers in cDevice::Detach() (thanks to Marco Schlüßler).
- Fixed incrementing the continuity counter in cPatPmtGenerator::GetPmt() (thanks
  to Johann Friedrichs).
- Fixed removing deleted recordings in case there is a problem. Once a recording
  caused a problem with removing, no others were removed any more and an ongoing
  recording could fill up the disk and cause other recordings to be deleted
  automatically (reported by Reinhard Nissl).
- Added "DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
  to Make.config.template (thanks to Johann Friedrichs for pointing this out).
  Plugin authors should add this line to their Makefile or Make.config if they use
  file access functions that need special versions for 64 bit offsets.
- The new command line option -i can be used to set an "instance id", which will
  be used to distinguish recordings of the same broadcast made by different instances
  of VDR (suggested by Frank Schmirler). This replaces the use of the "resume id"
  that was introduced in version 1.7.3.
- Added checking mutexCurrentAudioTrack to cDevice::PlayTs() (thanks to Reinhard
  Nissl for pointing this out).
- Fixed handling the pointer field in cPatPmtParser::ParsePmt() (thanks to Frank
  Schmirler - sorry I swapped two lines when adopting the original patch).
- Checking the remaining packet length after processing the pointer field in
  cPatPmtParser::ParsePat() and cPatPmtParser::ParsePmt() (suggested by Frank
  Schmirler).
- Checking the pointer field in cPatPmtParser::ParsePmt() only in 'payload start'
  packets (suggested by Frank Schmirler).
- Changed cPatPmtGenerator to make sure the PMT pid doesn't collide with any of
  the actual pids of the channel.
- Fixed cDevice::PlayTsAudio() and made cDevice::PlayTsVideo() return 0 if
  PlayVideo() didn't play anything.
- Added an 'int' typecast to calculations involving FramesPerSecond() to avoid
  compiler warnings (reported by Winfried Koehler).
- Fixed detecting frames for pure audio recordings.
- Fixed editing PES recordings. The frame type in the index.vdr file generated for
  the edited PES recording is set to 1 for I-frames and 2 for all others (P- and
  B-frames). The exact frame type doesn't matter for VDR, it only needs to know if
  it's an I-frame or not.
- The PAT/PMT is now only processed if its version changes (reported by Reinhard
  Nissl).
- Fixed handling the maximum video file size (reported by Udo Richter).
- Improved fast-forward/-rewind for audio recordings. The actual data is now sent
  to the output device, so that it can be replayed and thus cause the proper delay.
  For pure audio recordings the audio is no longer muted in fast-forward/-rewind
  mode, so that some orientation regarding the position within the recording is
  possible. There may still be some offset in the replay position displayed by the
  progress indicator when switching from fast-forward/-rewind to play mode, as well
  as in the current position during normal play mode. This is due to the various
  buffers between the player and the output device and will be addressed later.
  Note the new function cDevice::IsPlayingVideo(), which is used to inform the
  player whether there is video data in the currently replayed stream. If a derived
  cDevice class reimplements PlayTs() or PlayPes(), it also needs to make sure this
  new function works as expected.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.7.3</title>
<updated>2009-01-06T19:31:53+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2009-01-06T19:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=c2966475942fcb9d4b8d41dbf026ff57630a1ad6'/>
<id>c2966475942fcb9d4b8d41dbf026ff57630a1ad6</id>
<content type='text'>
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Fixed handling the 'pointer field' in generating and parsing PAT/PMT (thanks to
  Frank Schmirler).
- Fixed handling modulation types for DVB-S transponders when processing the NIT.
- Changed cDvbDevice::GrabImage() to use V4L2 (thanks to Marco Schlüßler).
- Added a poll to cDvbDevice::PlayVideo() and cDvbDevice::PlayAudio() to avoid
  excessive CPU load (this is just a makeshift solution until the FF DVB cards
  can play TS directly).
- The recording format is now Transport Stream. Existing recordings in PES format
  can still be replayed and edited, but new recordings are done in TS.
  All code for recording in PES has been removed.
  The following changes were made to switch to TS recording format:
  + The index file format has been changed to support file sizes of up to 1TB
    (previously 2GB), and up to 65535 separate files per recording (previously
    255).
  + The recording file names are now of the form 00001.ts (previously 001.vdr).
  + The frame rate is now detected by looking at two subsequent PTS values.
    The "frame duration" (in multiples of 1/90000) is stored in the info.vdr
    file using the new tag F (thanks to Artur Skawina for helping to get the
    IndexToHMSF() calculation right).
  + Several functions now have an additional parameter FramesPerSecond.
  + Several functions now have an additional parameter IsPesRecording.
  + The functionality of cFileWriter was moved into cRecorder, and cRemux is
    now obsolete. This also avoids one level of data copying while recording.
  + cRemux, cRingBufferLinearPes, cTS2PES and all c*Repacker classes have been
    removed.
  + A PAT/PMT is inserted before every independent frame, so that no extra
    measures need to be taken when editing a recording.
  + The directory name for a recording has been changed from
    YYYY-MM-DD-hh[.:]mm.pr.lt.rec (pr=priority, lt=lifetime) to
    YYYY-MM-DD-hh.mm.ch-ri.rec (ch=channel, ri=resumeId).
    Priority and Lifetime are now stored in the info.vdr file with the new
    tags P and L (if no such file exists, the maximum values are assumed by
    default, which avoids inadvertently deleting a recording if disk space
    is low). No longer storing Priority and Lifetime in the directory name
    avoids starting a new recording if one of these is changed in the timer
    and the recording is re-started for some reason.
    Instead of Priority and Lifetime, the directory name now contains the
    channel number from which the recording was made, and the "resume id" of
    this instance of VDR. This avoids problems if several VDR instances record
    the same show on different channels, or even on the same channel.
    The '-' between channel number and resumeId prevents older versions of
    VDR from "seeing" these recordings, which makes sure they won't even try
    to replay them, or remove them in case the disk runs full.
  + The semantics of PlayTs*() have been changed. These functions are now
    required to return the given Length (which is TS_SIZE) if they have
    processed the TS packet.
  + The files "index", "info", "marks" and "resume" within a TS recording
    directory are now created without the ".vdr" extension.
  + The "resume" file is no longer a binary file, but contains tagged lines
    to be able to store additional information, like the selected audio or
    subtitle track.
  + cDevice::StillPicture() will now be called with either TS or PES data.
  + cDvbPlayer::Goto() no longer appends a "sequence end code" to the data.
    If the output device needs this, it has to take care of it by itself.
- Fixed cPatPmtParser::ParsePmt() to reset vpid and vtype when switching from
  a video to an audio channel (thanks to Reinhard Nissl).
- cDvbDevice now uses the FE_CAN_2G_MODULATION flag to determine whether a device
  can handle DVB-S2. The #define is still there to allow people with older drivers
  who don't need DVB-S2 to use this version without pathcing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Fixed handling the 'pointer field' in generating and parsing PAT/PMT (thanks to
  Frank Schmirler).
- Fixed handling modulation types for DVB-S transponders when processing the NIT.
- Changed cDvbDevice::GrabImage() to use V4L2 (thanks to Marco Schlüßler).
- Added a poll to cDvbDevice::PlayVideo() and cDvbDevice::PlayAudio() to avoid
  excessive CPU load (this is just a makeshift solution until the FF DVB cards
  can play TS directly).
- The recording format is now Transport Stream. Existing recordings in PES format
  can still be replayed and edited, but new recordings are done in TS.
  All code for recording in PES has been removed.
  The following changes were made to switch to TS recording format:
  + The index file format has been changed to support file sizes of up to 1TB
    (previously 2GB), and up to 65535 separate files per recording (previously
    255).
  + The recording file names are now of the form 00001.ts (previously 001.vdr).
  + The frame rate is now detected by looking at two subsequent PTS values.
    The "frame duration" (in multiples of 1/90000) is stored in the info.vdr
    file using the new tag F (thanks to Artur Skawina for helping to get the
    IndexToHMSF() calculation right).
  + Several functions now have an additional parameter FramesPerSecond.
  + Several functions now have an additional parameter IsPesRecording.
  + The functionality of cFileWriter was moved into cRecorder, and cRemux is
    now obsolete. This also avoids one level of data copying while recording.
  + cRemux, cRingBufferLinearPes, cTS2PES and all c*Repacker classes have been
    removed.
  + A PAT/PMT is inserted before every independent frame, so that no extra
    measures need to be taken when editing a recording.
  + The directory name for a recording has been changed from
    YYYY-MM-DD-hh[.:]mm.pr.lt.rec (pr=priority, lt=lifetime) to
    YYYY-MM-DD-hh.mm.ch-ri.rec (ch=channel, ri=resumeId).
    Priority and Lifetime are now stored in the info.vdr file with the new
    tags P and L (if no such file exists, the maximum values are assumed by
    default, which avoids inadvertently deleting a recording if disk space
    is low). No longer storing Priority and Lifetime in the directory name
    avoids starting a new recording if one of these is changed in the timer
    and the recording is re-started for some reason.
    Instead of Priority and Lifetime, the directory name now contains the
    channel number from which the recording was made, and the "resume id" of
    this instance of VDR. This avoids problems if several VDR instances record
    the same show on different channels, or even on the same channel.
    The '-' between channel number and resumeId prevents older versions of
    VDR from "seeing" these recordings, which makes sure they won't even try
    to replay them, or remove them in case the disk runs full.
  + The semantics of PlayTs*() have been changed. These functions are now
    required to return the given Length (which is TS_SIZE) if they have
    processed the TS packet.
  + The files "index", "info", "marks" and "resume" within a TS recording
    directory are now created without the ".vdr" extension.
  + The "resume" file is no longer a binary file, but contains tagged lines
    to be able to store additional information, like the selected audio or
    subtitle track.
  + cDevice::StillPicture() will now be called with either TS or PES data.
  + cDvbPlayer::Goto() no longer appends a "sequence end code" to the data.
    If the output device needs this, it has to take care of it by itself.
- Fixed cPatPmtParser::ParsePmt() to reset vpid and vtype when switching from
  a video to an audio channel (thanks to Reinhard Nissl).
- cDvbDevice now uses the FE_CAN_2G_MODULATION flag to determine whether a device
  can handle DVB-S2. The #define is still there to allow people with older drivers
  who don't need DVB-S2 to use this version without pathcing.
</pre>
</div>
</content>
</entry>
</feed>
