<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vdr-patch-lnbsharing/HISTORY, branch vdr-1.5.0</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.5.0</title>
<updated>2007-01-07T17:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2007-01-07T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=66ab78a40f5b57e20142a33484e32c785a0c4017'/>
<id>66ab78a40f5b57e20142a33484e32c785a0c4017</id>
<content type='text'>
- The CAM handling has been refactored. Instead of a cCiHandler per device there
  is now an abstract cCiAdapter and a cCamSlot. This allows each slot to be
  accessed individually.
- The general 15 seconds workaround time before opening the CAM menu has been
  removed. If the CAM menu doesn't open within a timeout, the enter menu command
  is now sent again.
- If a CAM is reset or pulled and reinserted, it now automatically starts
  decrypting the current channel again.
- The Setup/CAM menu now dynamically refreshes its items and displays whether
  a CAM is present or ready. The 'Reset' function no longer leaves the menu.
- The CAM menu will now be openend when pressing the Ok key on a slot entry.
- The CAM menu now stays within the current menu context and doesn't close and
  reopen the menu every time an option is selected.
- When an encrypted channel is switched to for the first time, VDR now checks
  explicitly whether a CAM can actually decrypt that channel. If there is more
  than one CAM in the system that claims to be able to decrypt the channel,
  they are all tried in turn.
  To make this possible, an encrypted channel needs to be received in Transfer
  Mode when it is switched to for the first time, so that VDR can determine
  whether the TS packets are actually decrypted. Once a channel is known to
  be decrypted by a particular CAM, the next time it is switched to it will
  be shown in normal live viewing mode.
- A cDevice now automatically detaches all cReceiver objects that receive PIDs
  that can't be decrypted with the current CAM. A plugin that attaches a cReceiver
  to a device should therefore watch the receiver's IsAttached() function to
  see if it is still attached to the device.
- The cReceiver constructor no longer takes an 'int Ca' as its first parameter,
  but rather a 'tChannelID ChannelID'. This is necessary for the device to be
  able to determine which CAM a particular channel can be decrypted with. If the
  channel is known to be unencrypted, or a plugin doesn't want to provide the
  channel id for other reasons, an invalid tChannelID() can be given.
- The cThread::Start() function now waits until a previous incarnation of this
  thread has actually stopped. Before this it could happen that a thread's
  Cancel(-1) function was called and immediately after that it was started again,
  but the Start() function still found it to be 'active'.
- The parameter NeedsDetachReceivers in cDevice::GetDevice(const cChannel *Channel, ...)
  has been removed. A call to this function will automatically detach all receivers
  from the device if it returns a non-NULL pointer.
- The cTimeMs class now accepts an initial timeout value in its constructor.
- A CAM is now explicitly instructed to stop decrypting when switching away from
  an encrypted channel.
- If the CAM in use can decrypt several channels at the same time, VDR can
  now make use if this capability. Whether or not a CAM can decrypt more
  than one channel is determined by sending it an initial empty QUERY command
  and testing whether it replies to it.
- Ca values in the range 0...F in channels.conf can still be used to assign a channel
  to a particular device, but this will no longer work with encrypted channels because
  without valid CA ids VDR can't decide which CAM slot to use. However, since VDR now
  automatically determines which CAM can decrypt which channel, setting fixed
  channel/device relations should no longer be necessary.
  IF AN ENCRYPTED CHANNEL CAN'T BE DECRYPTED AND YOU HAVE A CA VALUE IN THE RANGE
  0...F FOR THAT CHANNEL, SET IT TO 0 (FTA) AND TUNE TO THE CHANNEL AGAIN.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The CAM handling has been refactored. Instead of a cCiHandler per device there
  is now an abstract cCiAdapter and a cCamSlot. This allows each slot to be
  accessed individually.
- The general 15 seconds workaround time before opening the CAM menu has been
  removed. If the CAM menu doesn't open within a timeout, the enter menu command
  is now sent again.
- If a CAM is reset or pulled and reinserted, it now automatically starts
  decrypting the current channel again.
- The Setup/CAM menu now dynamically refreshes its items and displays whether
  a CAM is present or ready. The 'Reset' function no longer leaves the menu.
- The CAM menu will now be openend when pressing the Ok key on a slot entry.
- The CAM menu now stays within the current menu context and doesn't close and
  reopen the menu every time an option is selected.
- When an encrypted channel is switched to for the first time, VDR now checks
  explicitly whether a CAM can actually decrypt that channel. If there is more
  than one CAM in the system that claims to be able to decrypt the channel,
  they are all tried in turn.
  To make this possible, an encrypted channel needs to be received in Transfer
  Mode when it is switched to for the first time, so that VDR can determine
  whether the TS packets are actually decrypted. Once a channel is known to
  be decrypted by a particular CAM, the next time it is switched to it will
  be shown in normal live viewing mode.
- A cDevice now automatically detaches all cReceiver objects that receive PIDs
  that can't be decrypted with the current CAM. A plugin that attaches a cReceiver
  to a device should therefore watch the receiver's IsAttached() function to
  see if it is still attached to the device.
- The cReceiver constructor no longer takes an 'int Ca' as its first parameter,
  but rather a 'tChannelID ChannelID'. This is necessary for the device to be
  able to determine which CAM a particular channel can be decrypted with. If the
  channel is known to be unencrypted, or a plugin doesn't want to provide the
  channel id for other reasons, an invalid tChannelID() can be given.
- The cThread::Start() function now waits until a previous incarnation of this
  thread has actually stopped. Before this it could happen that a thread's
  Cancel(-1) function was called and immediately after that it was started again,
  but the Start() function still found it to be 'active'.
- The parameter NeedsDetachReceivers in cDevice::GetDevice(const cChannel *Channel, ...)
  has been removed. A call to this function will automatically detach all receivers
  from the device if it returns a non-NULL pointer.
- The cTimeMs class now accepts an initial timeout value in its constructor.
- A CAM is now explicitly instructed to stop decrypting when switching away from
  an encrypted channel.
- If the CAM in use can decrypt several channels at the same time, VDR can
  now make use if this capability. Whether or not a CAM can decrypt more
  than one channel is determined by sending it an initial empty QUERY command
  and testing whether it replies to it.
- Ca values in the range 0...F in channels.conf can still be used to assign a channel
  to a particular device, but this will no longer work with encrypted channels because
  without valid CA ids VDR can't decide which CAM slot to use. However, since VDR now
  automatically determines which CAM can decrypt which channel, setting fixed
  channel/device relations should no longer be necessary.
  IF AN ENCRYPTED CHANNEL CAN'T BE DECRYPTED AND YOU HAVE A CA VALUE IN THE RANGE
  0...F FOR THAT CHANNEL, SET IT TO 0 (FTA) AND TUNE TO THE CHANNEL AGAIN.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.5</title>
<updated>2007-01-07T17:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2007-01-07T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=a2096f3beb9f7bf3ba600cf66555628fc899720e'/>
<id>a2096f3beb9f7bf3ba600cf66555628fc899720e</id>
<content type='text'>
- Official release.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Official release.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.4-3</title>
<updated>2007-01-05T17:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2007-01-05T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=6d4eb0df37c2669176677abeeb664da58f945d5f'/>
<id>6d4eb0df37c2669176677abeeb664da58f945d5f</id>
<content type='text'>
- Fixed a possible segfault if VDR gets terminated while a message is displayed
  (thanks to Udo Richter).
- Fixed the INSTALL section on retrying shutdown later (reported by Udo Richter).
- When entering text via the numeric keys, the characters are now checked against
  the allowed characters (thanks to Frank Schmirler).
- Added a missing break statement in cCiHandler::OpenSession().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed a possible segfault if VDR gets terminated while a message is displayed
  (thanks to Udo Richter).
- Fixed the INSTALL section on retrying shutdown later (reported by Udo Richter).
- When entering text via the numeric keys, the characters are now checked against
  the allowed characters (thanks to Frank Schmirler).
- Added a missing break statement in cCiHandler::OpenSession().
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.4-2</title>
<updated>2006-12-03T17:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-12-03T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=20e2335d3e1f6fa6ec6ffcc73117b438858ed52c'/>
<id>20e2335d3e1f6fa6ec6ffcc73117b438858ed52c</id>
<content type='text'>
- Added '#include &lt;stdint.h&gt;' to font.h (reported by Peter Pinnau).
- Added a compatibility define for 'uint64' to tools.h, so that existing
  plugins don't need to be modified immediately (reported by Suur Karu).
  This will be removed in version 1.5.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Added '#include &lt;stdint.h&gt;' to font.h (reported by Peter Pinnau).
- Added a compatibility define for 'uint64' to tools.h, so that existing
  plugins don't need to be modified immediately (reported by Suur Karu).
  This will be removed in version 1.5.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.4-1</title>
<updated>2006-12-03T17:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-12-03T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=287cd613a1d5d08fb56e107460473132d23e3ca0'/>
<id>287cd613a1d5d08fb56e107460473132d23e3ca0</id>
<content type='text'>
- Some improvements to the man pages (thanks to Ville Skyttä).
- Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter).
- Made the getskyepg.pl script of the 'sky' plugin send a user agent message to
  the server, according to the rules at http://bleb.org/tv/data/listings.
  If your version of 'wget' doesn't support the -U option to set the user agent,
  use the new option -U of getskyepg.pl to have the information added to the URL
  as a query string.
- The getskyepg.pl script now replaces "&amp;amp;" with "&amp;".
- Fixed a possible crash in remux.c on 64-bit machines (thanks to Reinhard Nissl).
- Fixed a typo in the change to the "Use small font" setup option in version 1.3.47
  in the HISTORY and CONTRIBUTORS file (reported by Andreas Brugger).
- Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas
  Brugger). This required the APIVERSION to be increased, so plugins will have to
  be recompiled.
- Now calling cPluginManager::Active() only if VDR is really trying to shut down,
  and waiting for 5 minutes before calling it again (thanks to Jörg Wendel for
  reporting that cPlugin::Active() was called too often, and to Udo Richter for
  some hints on how to improve this).
- Replaced 'unsigned long' with 'uint32_t' and 'uint64' with 'uint64_t' to
  avoid problems on 64-bit machines.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Some improvements to the man pages (thanks to Ville Skyttä).
- Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter).
- Made the getskyepg.pl script of the 'sky' plugin send a user agent message to
  the server, according to the rules at http://bleb.org/tv/data/listings.
  If your version of 'wget' doesn't support the -U option to set the user agent,
  use the new option -U of getskyepg.pl to have the information added to the URL
  as a query string.
- The getskyepg.pl script now replaces "&amp;amp;" with "&amp;".
- Fixed a possible crash in remux.c on 64-bit machines (thanks to Reinhard Nissl).
- Fixed a typo in the change to the "Use small font" setup option in version 1.3.47
  in the HISTORY and CONTRIBUTORS file (reported by Andreas Brugger).
- Added a missing 'const' to cRecordingInfo::ChannelID() (reported by Andreas
  Brugger). This required the APIVERSION to be increased, so plugins will have to
  be recompiled.
- Now calling cPluginManager::Active() only if VDR is really trying to shut down,
  and waiting for 5 minutes before calling it again (thanks to Jörg Wendel for
  reporting that cPlugin::Active() was called too often, and to Udo Richter for
  some hints on how to improve this).
- Replaced 'unsigned long' with 'uint32_t' and 'uint64' with 'uint64_t' to
  avoid problems on 64-bit machines.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.4</title>
<updated>2006-11-04T17:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-11-04T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=bc67a03157def5c4d8d0f3c7b38351f2aeb397ee'/>
<id>bc67a03157def5c4d8d0f3c7b38351f2aeb397ee</id>
<content type='text'>
- Fixed displaying the replay mode symbol in case of "Multi speed mode" (reported
  by Marco Schlüßler).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed displaying the replay mode symbol in case of "Multi speed mode" (reported
  by Marco Schlüßler).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.3-4</title>
<updated>2006-10-29T16:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-10-29T16:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=d45b4aba734515e7f6b007eae4360874059a5a2c'/>
<id>d45b4aba734515e7f6b007eae4360874059a5a2c</id>
<content type='text'>
- Fixed deleting EPG events that have a running status of "pausing" or higher.
- Fixed handling NITs with more than one delivery system descriptor tag for the
  same transponder.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed deleting EPG events that have a running status of "pausing" or higher.
- Fixed handling NITs with more than one delivery system descriptor tag for the
  same transponder.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.3-3</title>
<updated>2006-10-22T16:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-10-22T16:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=f99e13afb489f75749f4f8d978759d104a2983f2'/>
<id>f99e13afb489f75749f4f8d978759d104a2983f2</id>
<content type='text'>
- Fixed setting audio track descriptions after a replay has been stopped (reported
  by Ulf Kiener, thanks to Marco Schlüßler for pointing out what caused the problem).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed setting audio track descriptions after a replay has been stopped (reported
  by Ulf Kiener, thanks to Marco Schlüßler for pointing out what caused the problem).
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.3-2</title>
<updated>2006-10-15T16:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-10-15T16:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=9ef312f888aae6167bf210d0d1bb8fcb9b787584'/>
<id>9ef312f888aae6167bf210d0d1bb8fcb9b787584</id>
<content type='text'>
- Fixed clearing an event's Title, ShortText and Description in case the data comes
  from an external source.
- Updated the Hungarian language texts (thanks to Guido Josten).
- Fixed a possible crash if cPluginManager::GetPlugin() is called with a NULL
  pointer (thanks to Petri Hintukainen).
- Fixed displaying the error log message in case an unknown plugin was requested
  in a key macro (thanks to Petri Hintukainen).
- Keys from expanded key macros are now put into the front of the key queue to
  avoid problems if the queue is not empty at that time (based on a patch from
  Petri Hintukainen).
- cKeyMacro now has an explicit counter for the number of keys it contains.
- cRemote::PutMacro() now sets a lock while it expands the macro (thanks to
  Petri Hintukainen).
- Fixed handling plugins from cRemote::PutMacro() and cRemote::CallPlugin()
  (based on a patch from Petri Hintukainen).
- Increased the size of the key queue to avoid problems with long key macros.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fixed clearing an event's Title, ShortText and Description in case the data comes
  from an external source.
- Updated the Hungarian language texts (thanks to Guido Josten).
- Fixed a possible crash if cPluginManager::GetPlugin() is called with a NULL
  pointer (thanks to Petri Hintukainen).
- Fixed displaying the error log message in case an unknown plugin was requested
  in a key macro (thanks to Petri Hintukainen).
- Keys from expanded key macros are now put into the front of the key queue to
  avoid problems if the queue is not empty at that time (based on a patch from
  Petri Hintukainen).
- cKeyMacro now has an explicit counter for the number of keys it contains.
- cRemote::PutMacro() now sets a lock while it expands the macro (thanks to
  Petri Hintukainen).
- Fixed handling plugins from cRemote::PutMacro() and cRemote::CallPlugin()
  (based on a patch from Petri Hintukainen).
- Increased the size of the key queue to avoid problems with long key macros.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version 1.4.3-1</title>
<updated>2006-10-08T16:00:00+00:00</updated>
<author>
<name>Klaus Schmidinger</name>
<email>kls (at) cadsoft (dot) de</email>
</author>
<published>2006-10-08T16:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/vdr-patch-lnbsharing/commit/?id=948c370a29a21ac1fc9531f7e92d99e24734dcf4'/>
<id>948c370a29a21ac1fc9531f7e92d99e24734dcf4</id>
<content type='text'>
- The function cThread::Cancel() now only sets 'running' to false and does not
  actually kill the thread if the special value -1 is given (suggested by Udo Richter).
- Changed the I18nNormalizeLanguageCode() check to also allow blanks (and all other
  printable characters) in the language codes (thanks to Boguslaw Juza for reporting
  that there are stations that use blanks in these codes). Blanks are replaced with
  underlines, so that all parts of VDR that rely on language codes to be one word
  (without blanks) work as expected.
- Now clearing an event's Title, ShortText and Description if there is no
  ShortEventDescriptor or ExtendedEventDescriptor, respectively (thanks to Boguslaw
  Juza for reporting that events without an ExtendedEventDescriptor may get
  duplicate information in their ShortText through the EPG bugfixes in case they
  are received again).
- Fixed handling video directory updates in case an other process has touched the
  .update file after the last NeedsUpdate() check (thanks to Petri Hintukainen).
- Fixed handling language codes and descriptions of recorded audio tracks on channels
  with multiple tracks where not all of them appear in the event data (reported by
  Boguslaw Juza).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The function cThread::Cancel() now only sets 'running' to false and does not
  actually kill the thread if the special value -1 is given (suggested by Udo Richter).
- Changed the I18nNormalizeLanguageCode() check to also allow blanks (and all other
  printable characters) in the language codes (thanks to Boguslaw Juza for reporting
  that there are stations that use blanks in these codes). Blanks are replaced with
  underlines, so that all parts of VDR that rely on language codes to be one word
  (without blanks) work as expected.
- Now clearing an event's Title, ShortText and Description if there is no
  ShortEventDescriptor or ExtendedEventDescriptor, respectively (thanks to Boguslaw
  Juza for reporting that events without an ExtendedEventDescriptor may get
  duplicate information in their ShortText through the EPG bugfixes in case they
  are received again).
- Fixed handling video directory updates in case an other process has touched the
  .update file after the last NeedsUpdate() check (thanks to Petri Hintukainen).
- Fixed handling language codes and descriptions of recorded audio tracks on channels
  with multiple tracks where not all of them appear in the event data (reported by
  Boguslaw Juza).
</pre>
</div>
</content>
</entry>
</feed>
