[vdr] 04/06: Imported Upstream version 2.1.10

Tobias Grimm tiber-guest at moszumanska.debian.org
Thu Feb 12 17:53:52 UTC 2015


This is an automated email from the git hooks/post-receive script.

tiber-guest pushed a commit to branch master
in repository vdr.

commit d6b2fdf752823979318276a5865f80e6f3222bc7
Author: etobi <git at e-tobi.net>
Date:   Thu Feb 12 18:33:51 2015 +0100

    Imported Upstream version 2.1.10
---
 CONTRIBUTORS                          |  19 ++++-
 HISTORY                               |  49 ++++++++++-
 INSTALL                               |   2 +-
 MANUAL                                |  17 ++++
 Make.config.template                  |   5 +-
 Makefile                              |   7 +-
 PLUGINS/src/dvbhddevice/HISTORY       |   4 +
 PLUGINS/src/dvbhddevice/dvbhddevice.c |   2 +-
 PLUGINS/src/dvbhddevice/hdffosd.c     |   4 +-
 PLUGINS/src/dvbhddevice/po/it_IT.po   |   7 +-
 UPDATE-2.2.0                          |  33 +++++++-
 config.c                              |  11 ++-
 config.h                              |  13 +--
 libsi/Makefile                        |   3 +-
 libsi/si.c                            |  15 +++-
 libsi/si.h                            |   5 +-
 menu.c                                |  23 ++++--
 menuitems.c                           |   4 +-
 osd.c                                 |  62 ++++++++------
 osd.h                                 |  14 ++--
 po/ar.po                              |  11 ++-
 po/ca_ES.po                           |  11 ++-
 po/cs_CZ.po                           |  11 ++-
 po/da_DK.po                           |  11 ++-
 po/de_DE.po                           |  15 +++-
 po/el_GR.po                           |  11 ++-
 po/es_ES.po                           |  11 ++-
 po/et_EE.po                           |  45 ++++++-----
 po/fi_FI.po                           |  13 ++-
 po/fr_FR.po                           | 148 ++++++++++++++++++----------------
 po/hr_HR.po                           |  11 ++-
 po/hu_HU.po                           |  14 +++-
 po/it_IT.po                           |  35 +++++---
 po/lt_LT.po                           |  19 +++--
 po/mk_MK.po                           | 115 ++++++++++++++------------
 po/nl_NL.po                           | 120 ++++++++++++++-------------
 po/nn_NO.po                           |  11 ++-
 po/pl_PL.po                           |  11 ++-
 po/pt_PT.po                           |  11 ++-
 po/ro_RO.po                           |  15 +++-
 po/ru_RU.po                           |  11 ++-
 po/sk_SK.po                           |  11 ++-
 po/sl_SI.po                           |  11 ++-
 po/sr_RS.po                           |  11 ++-
 po/sv_SE.po                           |  11 ++-
 po/tr_TR.po                           |  11 ++-
 po/uk_UA.po                           |  21 +++--
 po/zh_CN.po                           |  11 ++-
 vdr.1                                 |   7 +-
 vdr.c                                 |  25 +++++-
 50 files changed, 767 insertions(+), 311 deletions(-)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 49fbcee..1a29554 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -787,9 +787,10 @@ Peter Seyringer <e9425234 at student.tuwien.ac.at>
 Stefan Schluenss <dxr3_osd at schluenss.de>
  for reporting a bug where PID handles were not closed correctly
 
-R�gis Bossut <rbossut at auchan.com>
+R�gis Bossut <famille.bossut at wanadoo.fr>
  for pointing out that with some providers the channels can only be distinguished
  through the RID
+ for translating OSD texts to the French language
 
 Andreas Kool <akool at akool.de>
  for his help in keeping 'channels.conf.cable' up to date
@@ -1703,6 +1704,7 @@ Martin Dauskardt <md001 at gmx.de>
  cDevice::TrickSpeed()
  for renaming 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR
  in 'make install'
+ for suggesting to add "#REMOTE=LIRC" to Make.config.template
 
 Maynard Cedric <maynard.cedric at wanadoo.fr>
  for reporting a problem in handling the color button texts in cMenuEditStrItem
@@ -2961,6 +2963,7 @@ Christopher Reimer <vdr at creimer.net>
  for reverting the change from version 1.5.7 that made all logging go to LOG_ERR
  for reporting a possible crash in the OSD demo
  for adding support for systemd
+ for suggesting to replace VDR_CHARSET_OVERRIDE with a command line option
 
 Stefan Huskamp <coca_cola1 at gmx.de>
  for suggesting to make entering characters via the number keys
@@ -3181,6 +3184,8 @@ S
  ci.c to no longer compile with older versions of gcc
  for suggesting to make the "Select folder" menu add the folder names of all existing
  recordings to any names that have been predefined in "folders.conf"
+ for adding an empty target to the Makefile to make sure the sub-make for libsi is
+ always called
 
 Peter M�nster <pmlists at free.fr>
  for fixing 'make install' to not overwrite existing configuration files
@@ -3230,6 +3235,7 @@ Matthias Senzel <matthias.senzel at t-online.de>
  for fixing the German translation of "Binary skip timeout (s)"
  for reporting a bug in switching channels in the Schedule menu after going through
  various Now and Schedule menus for different channels
+ for the "jumpingseconds" patch
 
 Marek Nazarko <mnazarko at gmail.com>
  for translating OSD texts to the Polish language
@@ -3303,6 +3309,8 @@ Thomas Reufer <thomas at reufer.ch>
  for adding cOsdProvider::OsdSizeChanged()
  for suggesting to change the German translations if the texts related to "binary
  skipping"
+ for suggesting to change the return value of cOsd::RenderPixmaps() from cPixmapMemory
+ to cPixmap
 
 Eike Sauer <EikeSauer at t-online.de>
  for reporting a problem with channels that need more than 5 TS packets for detecting
@@ -3363,5 +3371,14 @@ Martin Schirrmacher <schirrmie at gmail.com>
 Mario Fenneis <admin at mediastreambox.at>
  for translating OSD texts to the Hungarian language
 
+Clemens Brauers <vdr at admin-cb.de>
+ for modifying runvdr.template to improve compatibility with the "bash" and "dash" shells
+
 Stefan Herdler <herdler at gmx.de>
  for fixing cMarks::GetNextBegin() and cMarks::GetNextEnd()
+
+Tobias Faust <tobias.faust at gmx.de>
+ for the original "jumpingseconds" patch
+
+Erik Oomen <oomen.e at gmail.com>
+ for translating OSD texts to the Dutch language
diff --git a/HISTORY b/HISTORY
index ed9f24c..62406e8 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8497,7 +8497,8 @@ Video Disk Recorder Revision History
 - Updated the Italian OSD texts (thanks to Diego Pierotto).
 - Fixed the German translations of "latitude" and "longitude" (they were swapped).
 - Updated the Hungarian OSD texts (thanks to Mario Fenneis).
-- Modified runvdr.template to improve compatibility with the "bash" and "dash" shells.
+- Modified runvdr.template to improve compatibility with the "bash" and "dash" shells
+  (thanks to Clemens Brauers).
 - Changed the German translations if the texts related to "binary skipping" (based
   on a suggestion by Thomas Reufer).
 - Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
@@ -8521,3 +8522,49 @@ Video Disk Recorder Revision History
   that it is initialized to 'true' and will only be set to 'false' if the entire
   copy process has been successful (problem reported by Christoph Haubrich).
 - Added the UPDATE-2.2.0 file.
+
+2015-02-11: Version 2.1.10
+
+- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
+- Updated the Macedonian OSD texts (thanks to Dimitar Petrovski).
+- Updated the Romanian OSD texts (thanks to Lucian Muresan).
+- Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk).
+- Added "#REMOTE=LIRC" to Make.config.template (suggested by Martin Dauskardt).
+- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
+- Increased the width of the left text column in the Setup menus to avoid cutting
+  off German texts.
+- Added an empty target to the Makefile to make sure the sub-make for libsi is always
+  called (thanks to S�ren Moch).
+- Updated the Italian OSD texts (thanks to Diego Pierotto and Nino Gerbino).
+- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
+- The new options "Setup/Replay/Skip distance with Green/Yellow keys" and
+  "Setup/Replay/Skip distance with Green/Yellow keys in repeat" can be used to
+  configure the number of seconds to skip when pressing these keys once or pressing
+  and holding them (based on a patch from Matthias Senzel, originally from Tobias
+  Faust).
+- The new option "Setup/Replay/Use Prev/Next keys for adaptive skipping" can be used
+  to change the behavior of these keys during replay. They normally jump between
+  editing marks, but with this option set to 'yes' they will do adaptive skipping.
+- The new command line option --chartab can be used to set the default character
+  table to use for strings in the DVB data stream that don't begin with a proper
+  character table indicator (suggested by Christopher Reimer). The old mechanism
+  of using the environment variable VDR_CHARSET_OVERRIDE still works, but is now
+  deprecated and may be removed in a future version. The value given in the --chartab
+  option takes precedence over that in VDR_CHARSET_OVERRIDE.
+- cOsd::RenderPixmaps() now returns a pointer to cPixmap instead of cPixmapMemory
+  (suggested by Thomas Reufer). This is necessary to allow plugins with derived
+  cPixmap implementations to use this function. Plugins that use this function
+  with cPixmapMemory now need to add a dynamic cast to the call, as in
+
+    cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps()));
+
+  They also need to call DestroyPixmap(pm) instead of "delete pm" to properly release
+  the resulting pixmap after use.
+  The dvbhddevice plugin has been modified accordingly.
+- A cPixmap with a negative layer no longer marks any portion of the OSD's view port
+  as "dirty" when drawing on it. This may improve performance when drawing on a
+  hidden pixmap, because it avoids unnecessary refreshes of the OSD.
+- Added a missing initialization of "panning" to the constructor of cPixmapMemory.
+- Updated the Dutch OSD texts (thanks to Erik Oomen).
+- Updated the French OSD texts (thanks to R�gis Bossut).
+- Fixed the German translation of "Zap timeout".
diff --git a/INSTALL b/INSTALL
index 07581b5..8dcef75 100644
--- a/INSTALL
+++ b/INSTALL
@@ -141,7 +141,7 @@ According to "ETSI EN 300 468" the default character set fo SI data is
 ISO6937. But unfortunately some broadcasters actually use ISO-8859-9 or
 other encodings, but fail to correctly announce that.
 Users who want to set the default character set to something different can
-do this by setting the environment variable VDR_CHARSET_OVERRIDE to something
+do this by using the command line option --chartab with something
 like ISO-8859-9.
 
 Start script with automatic restart in case of hangups:
diff --git a/MANUAL b/MANUAL
index b0b7fa5..a04a63f 100644
--- a/MANUAL
+++ b/MANUAL
@@ -1026,6 +1026,23 @@ Version 2.0
                          halved if the direction actually changes. That way, even if
                          you missed the target point, you can still back up to it.
 
+  Use Prev/Next keys for adaptive skipping = no
+                         Normally the Prev/Next keys jump between editing marks (or
+                         the beginning/end of the recording). You can set this option
+                         to 'yes' if you want to use these keys for adaptive skipping
+                         instead.
+
+  Skip distance with Green/Yellow keys (s) = 60
+                         Defines the number of seconds to skip in either direction
+                         when pressing the "Green" or "Yellow" key, respectively.
+                         The valid range is 5...600.
+
+  Skip distance with Green/Yellow keys in repeat (s) = 60
+                         Defines the number of seconds to skip in either direction
+                         when pressing and holding the "Green" or "Yellow" key,
+                         respectively.
+                         The valid range is 5...600.
+
   Resume ID = 0          Defines an additional ID that can be used in a multi user
                          environment, so that every user has his/her own resume
                          files for each recording. The valid range is 0...99, with
diff --git a/Make.config.template b/Make.config.template
index 523926b..8768f3b 100644
--- a/Make.config.template
+++ b/Make.config.template
@@ -6,7 +6,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: Make.config.template 3.3 2015/02/02 09:07:07 kls Exp $
+# $Id: Make.config.template 3.4 2015/02/09 09:58:45 kls Exp $
 
 ### The C compiler and options:
 
@@ -69,6 +69,9 @@ endif
 ### The remote control:
 LIRC_DEVICE = /var/run/lirc/lircd
 
+### Define if you always want to use LIRC, independent of the --lirc option:
+#REMOTE=LIRC
+
 ### Define if you don't want keyboard remote control:
 #NO_KBD = 1
 
diff --git a/Makefile b/Makefile
index a69fb4e..9722036 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: Makefile 3.5 2015/02/02 14:47:24 kls Exp $
+# $Id: Makefile 3.6 2015/02/09 12:28:24 kls Exp $
 
 .DELETE_ON_ERROR:
 
@@ -139,8 +139,9 @@ vdr: $(OBJS) $(SILIB)
 
 # The libsi library:
 
-$(SILIB):
-	$(MAKE) --no-print-directory -C $(LSIDIR) CXXFLAGS="$(CXXFLAGS)" DEFINES="$(CDEFINES)" all
+$(SILIB): make-libsi
+	@$(MAKE) --no-print-directory -C $(LSIDIR) CXXFLAGS="$(CXXFLAGS)" DEFINES="$(CDEFINES)" all
+make-libsi: # empty rule makes sure the sub-make for libsi is always called
 
 # pkg-config file:
 
diff --git a/PLUGINS/src/dvbhddevice/HISTORY b/PLUGINS/src/dvbhddevice/HISTORY
index b26b0c4..cd7f5da 100644
--- a/PLUGINS/src/dvbhddevice/HISTORY
+++ b/PLUGINS/src/dvbhddevice/HISTORY
@@ -98,3 +98,7 @@ VDR Plugin 'dvbhddevice' Revision History
 
 - The function cDevice::GetVideoSystem() has been deprecated.
 - Removed old-style video format setting functions.
+
+2015-02-11: Version 2.1.7
+
+- Adapted to the new return value of cOsd::RenderPixmaps().
diff --git a/PLUGINS/src/dvbhddevice/dvbhddevice.c b/PLUGINS/src/dvbhddevice/dvbhddevice.c
index 045b0a9..1e5da44 100644
--- a/PLUGINS/src/dvbhddevice/dvbhddevice.c
+++ b/PLUGINS/src/dvbhddevice/dvbhddevice.c
@@ -10,7 +10,7 @@
 #include "menu.h"
 #include "setup.h"
 
-static const char *VERSION        = "2.1.6";
+static const char *VERSION        = "2.1.7";
 static const char *DESCRIPTION    = trNOOP("HD Full Featured DVB device");
 static const char *MAINMENUENTRY  = "dvbhddevice";
 
diff --git a/PLUGINS/src/dvbhddevice/hdffosd.c b/PLUGINS/src/dvbhddevice/hdffosd.c
index 47a5ab0..3ce28bf 100644
--- a/PLUGINS/src/dvbhddevice/hdffosd.c
+++ b/PLUGINS/src/dvbhddevice/hdffosd.c
@@ -681,7 +681,7 @@ void cHdffOsdRaw::Flush(void)
                 return;
         }
         LOCK_PIXMAPS;
-        while (cPixmapMemory *pm = RenderPixmaps())
+        while (cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps()))
         {
             int w = pm->ViewPort().Width();
             int h = pm->ViewPort().Height();
@@ -736,7 +736,7 @@ void cHdffOsdRaw::Flush(void)
                         HDFF_COLOR_TYPE_ARGB4444, HDFF_INVALID_HANDLE);
                 }
             }
-            delete pm;
+            DestroyPixmap(pm);
             render = true;
         }
         if (buffer)
diff --git a/PLUGINS/src/dvbhddevice/po/it_IT.po b/PLUGINS/src/dvbhddevice/po/it_IT.po
index cfb4b1b..a636d93 100644
--- a/PLUGINS/src/dvbhddevice/po/it_IT.po
+++ b/PLUGINS/src/dvbhddevice/po/it_IT.po
@@ -9,16 +9,15 @@ msgstr ""
 "Project-Id-Version: vdr-dvbhddevice 0.0.4\n"
 "Report-Msgid-Bugs-To: <see README>\n"
 "POT-Creation-Date: 2014-09-21 14:01+0200\n"
-"PO-Revision-Date: 2013-09-19 00:00+0100\n"
+"PO-Revision-Date: 2015-02-08 19:48+0100\n"
 "Last-Translator: Diego Pierotto <vdr-italian at tiscali.it>\n"
 "Language-Team:  <see README>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Italian\n"
-"X-Poedit-Country: ITALY\n"
 "X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: Poedit 1.5.4\n"
 
 msgid "HD Full Featured DVB device"
 msgstr "Scheda DVB HD Full Featured"
@@ -126,7 +125,7 @@ msgid "Allow True Color OSD"
 msgstr "Permetti OSD True Color"
 
 msgid "True Color format"
-msgstr ""
+msgstr "Formato True Color"
 
 msgid "Hide mainmenu entry"
 msgstr "Nascondi voce menu principale"
diff --git a/UPDATE-2.2.0 b/UPDATE-2.2.0
index fe516bd..566da1f 100644
--- a/UPDATE-2.2.0
+++ b/UPDATE-2.2.0
@@ -127,6 +127,15 @@ Plugins:
 - Added cOsdProvider::OsdSizeChanged(), which plugins that implement an output device
   can call to signal a change in the OSD that requires a redraw of the currently
   displayed object.
+- cOsd::RenderPixmaps() now returns a pointer to cPixmap instead of cPixmapMemory
+  This is necessary to allow plugins with derived cPixmap implementations to use this
+  function. Plugins that use this function with cPixmapMemory now need to add
+  a dynamic cast to the call, as in
+
+    cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps()));
+
+  They also need to call DestroyPixmap(pm) instead of "delete pm" to properly release
+  the resulting pixmap after use.
 
 Skins:
 
@@ -220,6 +229,15 @@ OSD:
   is unexpected at this point. You can still navigate to
   the last replayed recording (if any) by pressing Ok repeatedly in the Recordings
   menu.
+- cOsd::RenderPixmaps() now returns a pointer to cPixmap instead of cPixmapMemory
+  This is necessary to allow plugins with derived cPixmap implementations to use this
+  function. Plugins that use this function with cPixmapMemory now need to add
+  a dynamic cast to the call, as in
+
+    cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps()));
+
+  They also need to call DestroyPixmap(pm) instead of "delete pm" to properly release
+  the resulting pixmap after use.
 
 Channels:
 
@@ -329,6 +347,13 @@ Replay:
   to make adaptive skipping only halve the skip distance when the direction changes.
   That way you can reach the desired point in a recording even if you make one too
   many skips in a certain direction (see MANUAL for details).
+- The new options "Setup/Replay/Skip distance with Green/Yellow keys" and
+  "Setup/Replay/Skip distance with Green/Yellow keys in repeat" can be used to
+  configure the number of seconds to skip when pressing these keys once or pressing
+  and holding them.
+- The new option "Setup/Replay/Use Prev/Next keys for adaptive skipping" can be used
+  to change the behavior of these keys during replay. They normally jump between
+  editing marks, but with this option set to 'yes' they will do adaptive skipping.
 
 SVDRP:
 
@@ -378,7 +403,7 @@ Misc:
   "Mo.Di.Mi.Do.Fr.Sa.So.".
 - Added the channel name to log messages that reference a channel.
 - Added ARGSDIR to the ONEDIR section of Make.config.template.
-- Added SDNOTIFY, NO_KBD and BIDI to Make.config.template.
+- Added SDNOTIFY, NO_KBD, BIDI and REMOTE to Make.config.template.
 - Modified runvdr.template to improve compatibility with the "bash" and "dash" shells.
 - Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
   two separate positions.
@@ -386,3 +411,9 @@ Misc:
   functions is now exacly as described in the header file. Editing marks that are
   placed at exactly the same offset in a recording are now preserved in the cutting
   process.
+- The new command line option --chartab can be used to set the default character
+  table to use for strings in the DVB data stream that don't begin with a proper
+  character table indicator. The old mechanism of using the environment variable
+  VDR_CHARSET_OVERRIDE still works, but is now deprecated and may be removed in a
+  future version. The value given in the --chartab option takes precedence over
+  that in VDR_CHARSET_OVERRIDE.
diff --git a/config.c b/config.c
index 37f9058..9c6b71e 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.c 3.8 2015/02/06 10:10:22 kls Exp $
+ * $Id: config.c 3.10 2015/02/10 12:24:13 kls Exp $
  */
 
 #include "config.h"
@@ -476,6 +476,9 @@ cSetup::cSetup(void)
   AdaptiveSkipInitial = 120;
   AdaptiveSkipTimeout = 3;
   AdaptiveSkipAlternate = 0;
+  AdaptiveSkipPrevNext = 0;
+  SkipSeconds = 60;
+  SkipSecondsRepeat = 60;
   ResumeID = 0;
   CurrentChannel = -1;
   CurrentVolume = MAXVOLUME;
@@ -695,6 +698,9 @@ bool cSetup::Parse(const char *Name, const char *Value)
   else if (!strcasecmp(Name, "AdaptiveSkipInitial")) AdaptiveSkipInitial= atoi(Value);
   else if (!strcasecmp(Name, "AdaptiveSkipTimeout")) AdaptiveSkipTimeout= atoi(Value);
   else if (!strcasecmp(Name, "AdaptiveSkipAlternate")) AdaptiveSkipAlternate = atoi(Value);
+  else if (!strcasecmp(Name, "AdaptiveSkipPrevNext")) AdaptiveSkipPrevNext = atoi(Value);
+  else if (!strcasecmp(Name, "SkipSeconds"))         SkipSeconds        = atoi(Value);
+  else if (!strcasecmp(Name, "SkipSecondsRepeat"))   SkipSecondsRepeat  = atoi(Value);
   else if (!strcasecmp(Name, "ResumeID"))            ResumeID           = atoi(Value);
   else if (!strcasecmp(Name, "CurrentChannel"))      CurrentChannel     = atoi(Value);
   else if (!strcasecmp(Name, "CurrentVolume"))       CurrentVolume      = atoi(Value);
@@ -818,6 +824,9 @@ bool cSetup::Save(void)
   Store("AdaptiveSkipInitial",AdaptiveSkipInitial);
   Store("AdaptiveSkipTimeout",AdaptiveSkipTimeout);
   Store("AdaptiveSkipAlternate", AdaptiveSkipAlternate);
+  Store("AdaptiveSkipPrevNext", AdaptiveSkipPrevNext);
+  Store("SkipSeconds",        SkipSeconds);
+  Store("SkipSecondsRepeat",  SkipSecondsRepeat);
   Store("ResumeID",           ResumeID);
   Store("CurrentChannel",     CurrentChannel);
   Store("CurrentVolume",      CurrentVolume);
diff --git a/config.h b/config.h
index 5a81fd0..7220d96 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.h 3.17 2015/02/06 09:53:50 kls Exp $
+ * $Id: config.h 3.20 2015/02/10 14:29:27 kls Exp $
  */
 
 #ifndef __CONFIG_H
@@ -22,13 +22,13 @@
 
 // VDR's own version number:
 
-#define VDRVERSION  "2.1.9"
-#define VDRVERSNUM   20109  // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION  "2.1.10"
+#define VDRVERSNUM   20110  // Version * 10000 + Major * 100 + Minor
 
 // The plugin API's version number:
 
-#define APIVERSION  "2.1.9"
-#define APIVERSNUM   20109  // Version * 10000 + Major * 100 + Minor
+#define APIVERSION  "2.1.10"
+#define APIVERSNUM   20110  // Version * 10000 + Major * 100 + Minor
 
 // When loading plugins, VDR searches them by their APIVERSION, which
 // may be smaller than VDRVERSION in case there have been no changes to
@@ -340,6 +340,9 @@ public:
   int AdaptiveSkipInitial;
   int AdaptiveSkipTimeout;
   int AdaptiveSkipAlternate;
+  int AdaptiveSkipPrevNext;
+  int SkipSeconds;
+  int SkipSecondsRepeat;
   int ResumeID;
   int CurrentChannel;
   int CurrentVolume;
diff --git a/libsi/Makefile b/libsi/Makefile
index 2219af6..2221673 100644
--- a/libsi/Makefile
+++ b/libsi/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a libsi
 #
-# $Id: Makefile 3.0 2012/12/18 13:35:54 kls Exp $
+# $Id: Makefile 3.1 2015/02/11 10:24:54 kls Exp $
 
 ### The archiver options:
 
@@ -32,6 +32,7 @@ $(DEPFILE): Makefile
 ### Targets:
 
 all: libsi.a
+	@:
 
 libsi.a : $(OBJS)
 	$(AR) $(ARFLAGS) $@ $(OBJS)
diff --git a/libsi/si.c b/libsi/si.c
index 3d5169f..e51770a 100644
--- a/libsi/si.c
+++ b/libsi/si.c
@@ -6,7 +6,7 @@
  *   the Free Software Foundation; either version 2 of the License, or     *
  *   (at your option) any later version.                                   *
  *                                                                         *
- *   $Id: si.c 3.2 2015/02/01 14:55:27 kls Exp $
+ *   $Id: si.c 3.3 2015/02/10 13:42:41 kls Exp $
  *                                                                         *
  ***************************************************************************/
 
@@ -319,6 +319,14 @@ bool systemCharacterTableIsSingleByte(void)
   return SystemCharacterTableIsSingleByte;
 }
 
+static char *OverrideCharacterTable = NULL;
+
+void SetOverrideCharacterTable(const char *CharacterTable)
+{
+  free(OverrideCharacterTable);
+  OverrideCharacterTable = CharacterTable ? strdup(CharacterTable) : NULL;
+}
+
 bool SetSystemCharacterTable(const char *CharacterTable) {
    if (CharacterTable) {
       for (unsigned int i = 0; i < NumEntries(CharacterTables1); i++) {
@@ -348,9 +356,8 @@ const char *getCharacterTable(const unsigned char *&buffer, int &length, bool *i
    // Workaround for broadcaster stupidity: according to
    // "ETSI EN 300 468" the default character set is ISO6937. But unfortunately some
    // broadcasters actually use ISO-8859-9, but fail to correctly announce that.
-   static const char *CharsetOverride = getenv("VDR_CHARSET_OVERRIDE");
-   if (CharsetOverride)
-      cs = CharsetOverride;
+   if (OverrideCharacterTable)
+      cs = OverrideCharacterTable;
    if (isSingleByte)
       *isSingleByte = false;
    if (length <= 0)
diff --git a/libsi/si.h b/libsi/si.h
index 7c6f0e3..e70de68 100644
--- a/libsi/si.h
+++ b/libsi/si.h
@@ -6,7 +6,7 @@
  *   the Free Software Foundation; either version 2 of the License, or     *
  *   (at your option) any later version.                                   *
  *                                                                         *
- *   $Id: si.h 3.3 2015/02/01 14:55:27 kls Exp $
+ *   $Id: si.h 3.4 2015/02/10 13:54:28 kls Exp $
  *                                                                         *
  ***************************************************************************/
 
@@ -522,6 +522,9 @@ protected:
    void decodeText(char *buffer, char *shortVersion, int sizeBuffer, int sizeShortVersion);
 };
 
+// Set the character table to use for strings that do not begin with a character
+// table indicator. Call with NULL to turn this off.
+void SetOverrideCharacterTable(const char *CharacterTable);
 // Call this function to set the system character table. CharacterTable is a string
 // like "iso8859-15" or "utf-8" (case insensitive).
 // Returns true if the character table was recognized.
diff --git a/menu.c b/menu.c
index 6906cc6..ae61c64 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: menu.c 3.46 2015/02/07 15:56:26 kls Exp $
+ * $Id: menu.c 3.48 2015/02/10 12:37:06 kls Exp $
  */
 
 #include "menu.h"
@@ -3730,6 +3730,9 @@ cMenuSetupReplay::cMenuSetupReplay(void)
   Add(new cMenuEditIntItem( tr("Setup.Replay$Initial duration for adaptive skipping (s)"), &data.AdaptiveSkipInitial, 10, 600));
   Add(new cMenuEditIntItem( tr("Setup.Replay$Reset timeout for adaptive skipping (s)"), &data.AdaptiveSkipTimeout, 0, 10));
   Add(new cMenuEditBoolItem(tr("Setup.Replay$Alternate behavior for adaptive skipping"), &data.AdaptiveSkipAlternate));
+  Add(new cMenuEditBoolItem(tr("Setup.Replay$Use Prev/Next keys for adaptive skipping"), &data.AdaptiveSkipPrevNext));
+  Add(new cMenuEditIntItem( tr("Setup.Replay$Skip distance with Green/Yellow keys (s)"), &data.SkipSeconds, 5, 600));
+  Add(new cMenuEditIntItem( tr("Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"), &data.SkipSecondsRepeat, 5, 600));
   Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
 }
 
@@ -5583,9 +5586,11 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
     case kRight:   Forward(); break;
     case kRed:     TimeSearch(); break;
     case kGreen|k_Repeat:
-    case kGreen:   SkipSeconds(-60); break;
+                   SkipSeconds(-Setup.SkipSecondsRepeat); break;
+    case kGreen:   SkipSeconds(-Setup.SkipSeconds); break;
     case kYellow|k_Repeat:
-    case kYellow:  SkipSeconds( 60); break;
+                   SkipSeconds(Setup.SkipSecondsRepeat); break;
+    case kYellow:  SkipSeconds(Setup.SkipSeconds); break;
     case kStop:
     case kBlue:    Hide();
                    Stop();
@@ -5596,11 +5601,19 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
         // Editing:
         case kMarkToggle:      MarkToggle(); break;
         case kPrev|k_Repeat:
-        case kPrev:
+        case kPrev:            if (Setup.AdaptiveSkipPrevNext) {
+                                  MarkMove(-adaptiveSkipper.GetValue(RAWKEY(Key)), false);
+                                  break;
+                                  }
+                               // fall through...
         case kMarkJumpBack|k_Repeat:
         case kMarkJumpBack:    MarkJump(false); break;
         case kNext|k_Repeat:
-        case kNext:
+        case kNext:            if (Setup.AdaptiveSkipPrevNext) {
+                                  MarkMove(+adaptiveSkipper.GetValue(RAWKEY(Key)), false);
+                                  break;
+                                  }
+                               // fall through...
         case kMarkJumpForward|k_Repeat:
         case kMarkJumpForward: MarkJump(true); break;
         case kMarkMoveBack|k_Repeat:
diff --git a/menuitems.c b/menuitems.c
index a7f8283..d0a068d 100644
--- a/menuitems.c
+++ b/menuitems.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: menuitems.c 3.2 2013/11/03 14:48:21 kls Exp $
+ * $Id: menuitems.c 3.3 2015/02/09 11:53:10 kls Exp $
  */
 
 #include "menuitems.h"
@@ -1168,7 +1168,7 @@ eOSState cMenuEditMapItem::ProcessKey(eKeys Key)
 // --- cMenuSetupPage --------------------------------------------------------
 
 cMenuSetupPage::cMenuSetupPage(void)
-:cOsdMenu("", 33)
+:cOsdMenu("", 36)
 {
   SetMenuCategory(mcSetup);
   plugin = NULL;
diff --git a/osd.c b/osd.c
index d31ee8a..a475488 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: osd.c 3.4 2015/01/15 11:20:56 kls Exp $
+ * $Id: osd.c 3.5 2015/02/11 09:48:02 kls Exp $
  */
 
 #include "osd.h"
@@ -984,12 +984,13 @@ cPixmap::cPixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort)
 
 void cPixmap::MarkViewPortDirty(const cRect &Rect)
 {
-  dirtyViewPort.Combine(Rect.Intersected(viewPort));
+  if (layer >= 0)
+     dirtyViewPort.Combine(Rect.Intersected(viewPort));
 }
 
 void cPixmap::MarkViewPortDirty(const cPoint &Point)
 {
-  if (viewPort.Contains(Point))
+  if (layer >= 0 && viewPort.Contains(Point))
      dirtyViewPort.Combine(Point);
 }
 
@@ -1025,11 +1026,18 @@ void cPixmap::SetLayer(int Layer)
      esyslog("ERROR: pixmap layer %d limited to %d", Layer, MAXPIXMAPLAYERS - 1);
      Layer = MAXPIXMAPLAYERS - 1;
      }
-  if (Layer != layer) {
-     if (Layer > 0 || layer > 0)
-        MarkViewPortDirty(viewPort);
+  // The sequence here is important, because the view port is only marked as dirty
+  // if the layer is >= 0:
+  if (layer >= 0) {
+     MarkViewPortDirty(viewPort); // the pixmap is visible and may or may not become invisible
+     layer = Layer;
+     }
+  else if (Layer >= 0) {
      layer = Layer;
+     MarkViewPortDirty(viewPort); // the pixmap was invisible and has become visible
      }
+  else
+     layer = Layer; // the pixmap was invisible and remains so
   Unlock();
 }
 
@@ -1141,6 +1149,7 @@ cPixmapMemory::cPixmapMemory(int Layer, const cRect &ViewPort, const cRect &Draw
 :cPixmap(Layer, ViewPort, DrawPort)
 {
   data = MALLOC(tColor, this->DrawPort().Width() * this->DrawPort().Height());
+  panning = false;
 }
 
 cPixmapMemory::~cPixmapMemory()
@@ -1714,7 +1723,8 @@ void cOsd::DestroyPixmap(cPixmap *Pixmap)
      LOCK_PIXMAPS;
      for (int i = 1; i < pixmaps.Size(); i++) { // begin at 1 - don't let the background pixmap be destroyed!
          if (pixmaps[i] == Pixmap) {
-            pixmaps[0]->MarkViewPortDirty(Pixmap->ViewPort());
+            if (Pixmap->Layer() >= 0)
+               pixmaps[0]->MarkViewPortDirty(Pixmap->ViewPort());
             delete Pixmap;
             pixmaps[i] = NULL;
             return;
@@ -1737,9 +1747,9 @@ cPixmap *cOsd::AddPixmap(cPixmap *Pixmap)
   return Pixmap;
 }
 
-cPixmapMemory *cOsd::RenderPixmaps(void)
+cPixmap *cOsd::RenderPixmaps(void)
 {
-  cPixmapMemory *Pixmap = NULL;
+  cPixmap *Pixmap = NULL;
   if (isTrueColor) {
      LOCK_PIXMAPS;
      // Collect overlapping dirty rectangles:
@@ -1762,25 +1772,27 @@ cPixmapMemory *cOsd::RenderPixmaps(void)
         d.Combine(OldDirty);
         OldDirty = NewDirty;
 #endif
-        Pixmap = new cPixmapMemory(0, d);
-        Pixmap->Clear();
-        // Render the individual pixmaps into the resulting pixmap:
-        for (int Layer = 0; Layer < MAXPIXMAPLAYERS; Layer++) {
-            for (int i = 0; i < pixmaps.Size(); i++) {
-                if (cPixmap *pm = pixmaps[i]) {
-                   if (pm->Layer() == Layer)
-                   Pixmap->DrawPixmap(pm, d);
+        Pixmap = CreatePixmap(-1, d);
+        if (Pixmap) {
+           Pixmap->Clear();
+           // Render the individual pixmaps into the resulting pixmap:
+           for (int Layer = 0; Layer < MAXPIXMAPLAYERS; Layer++) {
+               for (int i = 0; i < pixmaps.Size(); i++) {
+                   if (cPixmap *pm = pixmaps[i]) {
+                      if (pm->Layer() == Layer)
+                         Pixmap->DrawPixmap(pm, d);
+                      }
                    }
-                }
-            }
+               }
 #ifdef DebugDirty
-        cPixmapMemory DirtyIndicator(7, NewDirty);
-        static tColor DirtyIndicatorColors[] = { 0x7FFFFF00, 0x7F00FFFF };
-        static int DirtyIndicatorIndex = 0;
-        DirtyIndicator.Fill(DirtyIndicatorColors[DirtyIndicatorIndex]);
-        DirtyIndicatorIndex = 1 - DirtyIndicatorIndex;
-        Pixmap->Render(&DirtyIndicator, DirtyIndicator.DrawPort(), DirtyIndicator.ViewPort().Point().Shifted(-Pixmap->ViewPort().Point()));
+           cPixmapMemory DirtyIndicator(7, NewDirty);
+           static tColor DirtyIndicatorColors[] = { 0x7FFFFF00, 0x7F00FFFF };
+           static int DirtyIndicatorIndex = 0;
+           DirtyIndicator.Fill(DirtyIndicatorColors[DirtyIndicatorIndex]);
+           DirtyIndicatorIndex = 1 - DirtyIndicatorIndex;
+           Pixmap->Render(&DirtyIndicator, DirtyIndicator.DrawPort(), DirtyIndicator.ViewPort().Point().Shifted(-Pixmap->ViewPort().Point()));
 #endif
+           }
         }
      }
   return Pixmap;
diff --git a/osd.h b/osd.h
index e5864c4..9ef32ac 100644
--- a/osd.h
+++ b/osd.h
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: osd.h 3.5 2015/01/15 11:23:52 kls Exp $
+ * $Id: osd.h 3.6 2015/02/11 09:48:02 kls Exp $
  */
 
 #ifndef __OSD_H
@@ -763,12 +763,13 @@ protected:
        ///< the pixmap could not be added to the list.
        ///< A derived class that implements its own cPixmap class must call AddPixmap()
        ///< in order to add a newly created pixmap to the OSD's list of pixmaps.
-  cPixmapMemory *RenderPixmaps(void);
+  cPixmap *RenderPixmaps(void);
        ///< Renders the dirty part of all pixmaps into a resulting pixmap that
        ///< shall be displayed on the OSD. The returned pixmap's view port is
        ///< set to the location of the rectangle on the OSD that needs to be
        ///< refreshed; its draw port's origin is at (0, 0), and it has the same
        ///< size as the view port.
+       ///< Only pixmaps with a non-negative layer value are rendered.
        ///< If there are several non-overlapping dirty rectangles from different pixmaps,
        ///< they are returned separately in order to avoid re-rendering large parts
        ///< of the OSD that haven't changed at all. The caller must therefore call
@@ -778,7 +779,7 @@ protected:
        ///< by putting a LOCK_PIXMAPS into the scope of the operation).
        ///< If there are no dirty pixmaps, or if this is not a true color OSD,
        ///< this function returns NULL.
-       ///< The caller must delete the returned pixmap after use.
+       ///< The caller must call DestroyPixmap() for the returned pixmap after use.
 public:
   virtual ~cOsd();
        ///< Shuts down the OSD.
@@ -930,13 +931,16 @@ public:
        ///< pixmaps, the Flush() function should basically do something like this:
        ///<
        ///<  LOCK_PIXMAPS;
-       ///<  while (cPixmapMemory *pm = RenderPixmaps()) {
+       ///<  while (cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps())) {
        ///<        int w = pm->ViewPort().Width();
        ///<        int h = pm->ViewPort().Height();
        ///<        int d = w * sizeof(tColor);
        ///<        MyOsdDrawPixmap(Left() + pm->ViewPort().X(), Top() + pm->ViewPort().Y(), pm->Data(), w, h, h * d);
-       ///<        delete pm;
+       ///<        DestroyPixmap(pm);
        ///<        }
+       ///<
+       ///< If a plugin uses a derived cPixmap implementation, it needs to use that
+       ///< type instead of cPixmapMemory.
   };
 
 #define MAXOSDIMAGES 64
diff --git a/po/ar.po b/po/ar.po
index fa142f3..bc85041 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2008-10-16 11:16-0400\n"
 "Last-Translator: Osama Alrawab <alrawab at hotmail.com>\n"
 "Language-Team: Arabic <ar at li.org>\n"
@@ -1257,6 +1257,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "رقم المواصلة"
 
diff --git a/po/ca_ES.po b/po/ca_ES.po
index 3802c00..5be0a2e 100644
--- a/po/ca_ES.po
+++ b/po/ca_ES.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2008-03-02 19:02+0100\n"
 "Last-Translator: Luca Olivetti <luca at ventoso.org>\n"
 "Language-Team: Catalan <vdr at linuxtv.org>\n"
@@ -1256,6 +1256,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID de Continuar"
 
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index 31ff8fc..ff153da 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2010-05-06 11:00+0200\n"
 "Last-Translator: Aleš Juřík <ajurik at quick.cz>\n"
 "Language-Team: Czech <vdr at linuxtv.org>\n"
@@ -1256,6 +1256,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID obnovení"
 
diff --git a/po/da_DK.po b/po/da_DK.po
index 2471f22..382704e 100644
--- a/po/da_DK.po
+++ b/po/da_DK.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2007-08-12 14:17+0200\n"
 "Last-Translator: Mogens Elneff <mogens at elneff.dk>\n"
 "Language-Team: Danish <vdr at linuxtv.org>\n"
@@ -1253,6 +1253,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "Genoptagelses ID"
 
diff --git a/po/de_DE.po b/po/de_DE.po
index 46cf5c4..fb7a0af 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2010-01-16 16:46+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
+"PO-Revision-Date: 2015-02-10 13:45+0100\n"
 "Last-Translator: Klaus Schmidinger <vdr at tvdr.de>\n"
 "Language-Team: German <vdr at linuxtv.org>\n"
 "Language: de\n"
@@ -1253,6 +1253,15 @@ msgstr "Zeitlimit beim Halbieren der Sprungweite (s)"
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr "Sprungweite nur bei Richtungswechsel halbieren"
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr "Zur�ck/Vorw�rts-Tasten halbieren Sprungweite"
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr "Sprungweite mit Taste Gr�n/Gelb (s)"
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr "Sprungweite mit Taste Gr�n/Gelb bei Wiederh. (s)"
+
 msgid "Setup.Replay$Resume ID"
 msgstr "Wiedergabe-ID"
 
@@ -1269,7 +1278,7 @@ msgid "Setup.Miscellaneous$SVDRP timeout (s)"
 msgstr "SVDRP trennen bei Inaktivit�t (s)"
 
 msgid "Setup.Miscellaneous$Zap timeout (s)"
-msgstr "Mindestzeit f�r Kanalhistorie (s)"
+msgstr "Mindestzeit f�r vorherigen Kanal (s)"
 
 msgid "Setup.Miscellaneous$Channel entry timeout (ms)"
 msgstr "Zeitlimit f�r Kanaleingabe (ms)"
diff --git a/po/el_GR.po b/po/el_GR.po
index 560135e..6e3552e 100644
--- a/po/el_GR.po
+++ b/po/el_GR.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2007-08-12 14:17+0200\n"
 "Last-Translator: Dimitrios Dimitrakos <mail at dimitrios.de>\n"
 "Language-Team: Greek <vdr at linuxtv.org>\n"
@@ -1253,6 +1253,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID ������������"
 
diff --git a/po/es_ES.po b/po/es_ES.po
index b88eb56..e6b488a 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2008-03-02 19:02+0100\n"
 "Last-Translator: Luca Olivetti <luca at ventoso.org>\n"
 "Language-Team: Spanish <vdr at linuxtv.org>\n"
@@ -1254,6 +1254,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID de continuaci�n"
 
diff --git a/po/et_EE.po b/po/et_EE.po
index f5ad778..5caeb50 100644
--- a/po/et_EE.po
+++ b/po/et_EE.po
@@ -1,13 +1,13 @@
 # VDR language source file.
 # Copyright (C) 2013 Klaus Schmidinger <vdr at tvdr.de>
 # This file is distributed under the same license as the VDR package.
-# Arthur Konovalov <artlov at gmail.com>, 2004-2013
+# Arthur Konovalov <artlov at gmail.com>, 2004-2013, 2015
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2007-08-12 14:17+0200\n"
 "Last-Translator: Arthur Konovalov <artlov at gmail.com>\n"
 "Language-Team: Estonian <vdr at linuxtv.org>\n"
@@ -483,7 +483,7 @@ msgid "Key$Channels"
 msgstr "Kanalid"
 
 msgid "Key$Timers"
-msgstr "Taimer"
+msgstr "Taimerid"
 
 msgid "Key$Recordings"
 msgstr "Salvestused"
@@ -676,7 +676,7 @@ msgid "Select folder"
 msgstr "Kausta valik"
 
 msgid "Timers"
-msgstr "Taimer"
+msgstr "Taimerid"
 
 msgid "Button$On/Off"
 msgstr "On/Off"
@@ -700,7 +700,7 @@ msgid "Button$Record"
 msgstr "Salvestada"
 
 msgid "Button$Switch"
-msgstr "Valida"
+msgstr "Vali"
 
 msgid "What's on now?"
 msgstr "Hetkel eetris"
@@ -794,10 +794,10 @@ msgid "Edited version already exists - overwrite?"
 msgstr "Redigeeritud versioon juba olemas - kirjutada üle?"
 
 msgid "Error while queueing recording for cutting!"
-msgstr "Salvestuse lõikamiseks lisamine ebaõnnestus!"
+msgstr "Salvestuse lisamine lõikamiseks ebaõnnestus!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Nimetada salvestuse nimi kaustaks?"
 
 msgid "Delete editing marks for this recording?"
 msgstr "Kustutada selle salvestuse markerid?"
@@ -839,7 +839,7 @@ msgid "Recording commands"
 msgstr "Salvestuse käsud"
 
 msgid "never"
-msgstr "ei"
+msgstr "ealeski"
 
 msgid "skin dependent"
 msgstr "kestast sõltuv"
@@ -878,7 +878,7 @@ msgid "Setup.OSD$Use small font"
 msgstr "Väikese fondi kasutus"
 
 msgid "Setup.OSD$Anti-alias"
-msgstr "Fondi silumine"
+msgstr "Fondi sakitõrje"
 
 msgid "Setup.OSD$Default font"
 msgstr "Vaikefont"
@@ -1018,7 +1018,7 @@ msgid "Setup.DVB$Primary DVB interface"
 msgstr "Esmane DVB seade"
 
 msgid "Setup.DVB$Standard compliance"
-msgstr "Standardivastavavus"
+msgstr "Standardivastavus"
 
 msgid "Setup.DVB$Video format"
 msgstr "TV külgsuhe"
@@ -1100,7 +1100,7 @@ msgid "East"
 msgstr "itta (E)"
 
 msgid "Setup.LNB$Max. positioner swing (degrees)"
-msgstr "Positsioneerija max pöördeulatus (°)"
+msgstr "Positsioneerija pöördeulatus (°)"
 
 msgid "Setup.LNB$Positioner speed (degrees/s)"
 msgstr "Positsioneerija kiirus (°/s)"
@@ -1179,7 +1179,7 @@ msgid "Setup.Recording$Default lifetime (d)"
 msgstr "Salvestuse eluiga (päevi)"
 
 msgid "Setup.Recording$Pause key handling"
-msgstr "Pausi klahvi käsitsemine"
+msgstr "Pausi klahvi käsitlemine"
 
 msgid "Setup.Recording$Pause priority"
 msgstr "Pausi prioriteet"
@@ -1221,7 +1221,7 @@ msgid "Replay"
 msgstr "Taasesitus"
 
 msgid "Setup.Replay$Multi speed mode"
-msgstr "Mitme kiiruse režiim"
+msgstr "Mitmikkiiruse režiim"
 
 msgid "Setup.Replay$Show replay mode"
 msgstr "Korduse režiimi kuvamine"
@@ -1245,12 +1245,21 @@ msgid "Setup.Replay$Pause replay at last mark"
 msgstr "Paus viimasel markeril"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Adaptiivse hüppe kestuse algväärtus (s)"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Adaptiivse hüppe lähtestamise viide (s)"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
+msgstr "Adaptiivse hüppe vaheldumine käitumine"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
 msgstr ""
 
 msgid "Setup.Replay$Resume ID"
@@ -1365,10 +1374,10 @@ msgid "No free DVB device to record!"
 msgstr "Puudub vaba DVB seade salvestamiseks!"
 
 msgid "Pausing live video..."
-msgstr "Otseülekande peatamine..."
+msgstr "Otseedastuse peatamine..."
 
 msgid "Delete timeshift recording?"
-msgstr "Kustutada ajanihke salvestus?"
+msgstr "Kustutada ajanihke salvestust?"
 
 #. TRANSLATORS: note the trailing blank!
 msgid "Jump: "
@@ -1378,7 +1387,7 @@ msgid "No editing marks defined!"
 msgstr "Redigeerimise markerid puuduvad!"
 
 msgid "No editing sequences defined!"
-msgstr "Redigeerimise järjestus puudub!"
+msgstr "Redigeerimise järjestus määramata!"
 
 msgid "Can't start editing process!"
 msgstr "Redigeerimise start ebaõnnestus!"
diff --git a/po/fi_FI.po b/po/fi_FI.po
index f7f81c5..7cf860a 100644
--- a/po/fi_FI.po
+++ b/po/fi_FI.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2007-08-15 15:52+0200\n"
 "Last-Translator: Matti Lehtimäki <matti.lehtimaki at gmail.com>\n"
 "Language-Team: Finnish <vdr at linuxtv.org>\n"
@@ -801,7 +801,7 @@ msgid "Error while queueing recording for cutting!"
 msgstr "Tallenteen lisääminen leikkausjonoon epäonnistui!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Nimeä tallenne kansion mukaan?"
 
 msgid "Delete editing marks for this recording?"
 msgstr "Poistetaanko muokkausmerkinnät tallenteelta?"
@@ -1257,6 +1257,15 @@ msgstr "Mukautuvan hypyn nollausviive (s)"
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr "Käytä vaihtoehtoista mukautuvaa hyppyä"
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "Tallenteen paluutunniste"
 
diff --git a/po/fr_FR.po b/po/fr_FR.po
index f529a9c..a5a34ad 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -12,14 +12,15 @@
 # Bernard Jaulin <bernard.jaulin at gmail.com>, 2013
 # Peter Münster <pmlists at free.fr>, 2013
 # Dominique Plu <dplu at free.fr>, 2013
+# Régis Bossut <famille.bossut at wanadoo.fr>, 2015
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2013-02-24 12:56+0100\n"
-"Last-Translator: Dominique Plu <dplu at free.fr>\n"
+"POT-Creation-Date: 2015-02-11 11:02+0100\n"
+"PO-Revision-Date: 2015-02-10 17:16+0100\n"
+"Last-Translator: Régis Bossut <famille.bossut at wanadoo.fr>\n"
 "Language-Team: French <vdr at linuxtv.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
@@ -30,7 +31,7 @@ msgid "*** Invalid Channel ***"
 msgstr "*** Chaîne invalide ! ***"
 
 msgid "CAM activated!"
-msgstr ""
+msgstr "CAM activée !"
 
 msgid "Channel not available!"
 msgstr "Chaîne non disponible !"
@@ -90,13 +91,13 @@ msgid "StreamId"
 msgstr "StreamId"
 
 msgid "Pilot"
-msgstr ""
+msgstr "Pilote"
 
 msgid "T2SystemId"
-msgstr ""
+msgstr "ID système T2"
 
 msgid "SISO/MISO"
-msgstr ""
+msgstr "SISO/MISO"
 
 msgid "Starting EPG scan"
 msgstr "Mise à jour du guide des programmes"
@@ -340,7 +341,7 @@ msgstr "Direct"
 
 #, c-format
 msgid "ParentalRating$from %d"
-msgstr "À partir de %d"
+msgstr "à partir de %d ans"
 
 msgid "No title"
 msgstr "Sans titre"
@@ -354,7 +355,7 @@ msgid "LanguageCode$eng"
 msgstr "fra"
 
 msgid "Phase 1: Detecting RC code type"
-msgstr "Phase 1: Détection du type de télécommande"
+msgstr "Phase 1 : Détection du type de télécommande"
 
 msgid "Press any key on the RC unit"
 msgstr "Appuyer sur une touche de la télécommande"
@@ -366,7 +367,7 @@ msgid "Do not press any key..."
 msgstr "N'appuyer sur aucune touche..."
 
 msgid "Phase 2: Learning specific key codes"
-msgstr "Phase 2: Apprentissage des touches"
+msgstr "Phase 2 : Apprentissage des touches"
 
 #, c-format
 msgid "Press key for '%s'"
@@ -391,7 +392,7 @@ msgid "Learning Remote Control Keys"
 msgstr "Apprentissage des touches de la télécommande"
 
 msgid "Phase 3: Saving key codes"
-msgstr "Phase 3: Sauvegarde des touches"
+msgstr "Phase 3 : Sauvegarde des touches"
 
 msgid "Press 'Up' to save, 'Down' to cancel"
 msgstr "Appuyer sur 'Haut' pour sauvegarder, 'Bas' pour annuler"
@@ -538,7 +539,7 @@ msgid "Free To Air"
 msgstr "En clair"
 
 msgid "encrypted"
-msgstr "Crypté"
+msgstr "crypté"
 
 msgid "Edit channel"
 msgstr "Modifier la chaîne"
@@ -586,13 +587,13 @@ msgid "Sid"
 msgstr "Sid"
 
 msgid "Nid"
-msgstr ""
+msgstr "Nid"
 
 msgid "Tid"
-msgstr ""
+msgstr "Tid"
 
 msgid "Channel settings are not unique!"
-msgstr "Cette chaîne n'est pas unique !"
+msgstr "Les paramètres de cette chaîne ne sont pas uniques !"
 
 msgid "Channels"
 msgstr "Chaînes"
@@ -622,7 +623,7 @@ msgid "New folder"
 msgstr "Nouveau dossier"
 
 msgid "Sub folder"
-msgstr "Sous dossier"
+msgstr "Sous-dossier"
 
 msgid "Folder name already exists!"
 msgstr "Ce nom de dossier existe déjà !"
@@ -635,7 +636,7 @@ msgid "Button$Open"
 msgstr "Ouvrir"
 
 msgid "Delete folder and all sub folders?"
-msgstr "Supprimer le dossier et tous les sous dossiers ?"
+msgstr "Supprimer le dossier et tous les sous-dossiers ?"
 
 msgid "Delete folder?"
 msgstr "Supprimer le dossier ?"
@@ -689,7 +690,7 @@ msgid "Timers"
 msgstr "Programmations"
 
 msgid "Button$On/Off"
-msgstr "Marche/Arr"
+msgstr "Marche/Arrêt"
 
 msgid "Button$Info"
 msgstr "Info"
@@ -736,13 +737,13 @@ msgstr "Programme - %s"
 
 #, c-format
 msgid "This event - %s"
-msgstr "Cet événement - %s"
+msgstr "Cet évènement - %s"
 
 msgid "This event - all channels"
-msgstr "Cet événement - toutes les chaînes"
+msgstr "Cet évènement - toutes les chaînes"
 
 msgid "All events - all channels"
-msgstr "Tous les événements - toutes les chaînes"
+msgstr "Tous les évènements - toutes les chaînes"
 
 #, c-format
 msgid "Please enter %d digits!"
@@ -752,74 +753,74 @@ msgid "CAM not responding!"
 msgstr "Pas de réponse du CAM"
 
 msgid "Edit path"
-msgstr ""
+msgstr "Éditer le chemin"
 
 msgid "Folder"
-msgstr ""
+msgstr "Dossier"
 
 msgid "This folder is currently in use - no changes are possible!"
-msgstr ""
+msgstr "Ce dossier est en cours d'utilisation - pas de modification possible !"
 
 #, c-format
 msgid "Move entire folder containing %d recordings?"
-msgstr ""
+msgstr "Déplacer tout le dossier contenant %d enregistrements ?"
 
 msgid "Error while moving folder!"
-msgstr ""
+msgstr "Erreur lors du déplacement du dossier !"
 
 msgid "Edit recording"
-msgstr ""
+msgstr "Éditer l'enregistrement"
 
 msgid "This recording is currently in use - no changes are possible!"
-msgstr ""
+msgstr "Cet enregistrement est en cours d'utilisation - pas de modification possible !"
 
 msgid "Button$Cancel cutting"
-msgstr ""
+msgstr "Annuler la coupe"
 
 msgid "Button$Stop cutting"
-msgstr ""
+msgstr "Arrêter la coupe"
 
 msgid "Button$Cancel moving"
-msgstr ""
+msgstr "Annuler le déplacement"
 
 msgid "Button$Stop moving"
-msgstr ""
+msgstr "Arrêter le déplacement"
 
 msgid "Button$Cancel copying"
-msgstr ""
+msgstr "Annuler la copie"
 
 msgid "Button$Stop copying"
-msgstr ""
+msgstr "Arrêter la copie"
 
 msgid "Button$Cut"
-msgstr ""
+msgstr "Couper"
 
 msgid "Button$Delete marks"
-msgstr ""
+msgstr "Supprimer les marqueurs"
 
 msgid "Recording vanished!"
-msgstr ""
+msgstr "Enregistrement disparu !"
 
 msgid "Edited version already exists - overwrite?"
-msgstr ""
+msgstr "La version éditée existe déjà - écraser ?"
 
 msgid "Error while queueing recording for cutting!"
-msgstr ""
+msgstr "Erreur lors de la mise en file d'attente pour la coupe !"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Modifier le nom du dossier des enregistrements ?"
 
 msgid "Delete editing marks for this recording?"
-msgstr ""
+msgstr "Supprimer les marqueurs d'édition de cet enregistrement ?"
 
 msgid "Error while deleting editing marks!"
-msgstr ""
+msgstr "Erreur pendant la suppression des marqueurs d'édition !"
 
 msgid "Error while changing priority/lifetime!"
-msgstr ""
+msgstr "Erreur pendant le changement de priorité et/ou durée de vie !"
 
 msgid "Error while changing folder/name!"
-msgstr ""
+msgstr "Erreur pendant le changement de dossier et/ou nom !"
 
 msgid "Recording info"
 msgstr "Infos sur l'enregistrement"
@@ -1089,31 +1090,31 @@ msgid "Setup.LNB$own"
 msgstr "Propriétaire"
 
 msgid "Setup.LNB$Use dish positioner"
-msgstr ""
+msgstr "Utiliser le positionneur de parabole"
 
 msgid "Setup.LNB$Site latitude (degrees)"
-msgstr ""
+msgstr "Latitude du site (°)"
 
 msgid "South"
-msgstr ""
+msgstr "Sud"
 
 msgid "North"
-msgstr ""
+msgstr "Nord"
 
 msgid "Setup.LNB$Site longitude (degrees)"
-msgstr ""
+msgstr "Longitude du site (°)"
 
 msgid "West"
-msgstr ""
+msgstr "Ouest"
 
 msgid "East"
-msgstr ""
+msgstr "Est"
 
 msgid "Setup.LNB$Max. positioner swing (degrees)"
-msgstr ""
+msgstr "Course max. du positionneur (°)"
 
 msgid "Setup.LNB$Positioner speed (degrees/s)"
-msgstr ""
+msgstr "Vitesse du positionneur (°/s)"
 
 msgid "CAM reset"
 msgstr "CAM réinitialisé"
@@ -1126,16 +1127,16 @@ msgstr "CAM prêt"
 
 #. TRANSLATORS: note the leading blank!
 msgid " (activating)"
-msgstr ""
+msgstr " (activation en cours)"
 
 msgid "CAM"
 msgstr "CAM"
 
 msgid "Button$Cancel activation"
-msgstr ""
+msgstr "Annuler l'activation"
 
 msgid "Button$Activate"
-msgstr ""
+msgstr "Activer"
 
 msgid "Button$Menu"
 msgstr "Menu"
@@ -1150,7 +1151,7 @@ msgid "Can't open CAM menu!"
 msgstr "Impossible d'ouvrir le menu CAM !"
 
 msgid "Can't activate CAM!"
-msgstr ""
+msgstr "Impossible d'activer le CAM !"
 
 msgid "CAM is in use - really reset?"
 msgstr "CAM en cours d'utilisation - confirmer réinitialisation ?"
@@ -1243,25 +1244,34 @@ msgid "Setup.Replay$Progress display time (s)"
 msgstr "Afficher la barre de progression (s)"
 
 msgid "Setup.Replay$Pause replay when setting mark"
-msgstr "Arrêt lecture si ajout marqueur"
+msgstr "Arrêt lecture pendant ajout marqueur"
 
 msgid "Setup.Replay$Pause replay when jumping to a mark"
-msgstr ""
+msgstr "Arrêt lecture après saut vers un marqueur"
 
 msgid "Setup.Replay$Skip edited parts"
-msgstr ""
+msgstr "Sauter les parties éditées"
 
 msgid "Setup.Replay$Pause replay at last mark"
-msgstr ""
+msgstr "Arrêt lecture au dernier marqueur"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Durée initiale pour le saut adaptatif (s)"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Timeout du reset pour le saut adaptatif (s)"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
-msgstr ""
+msgstr "Réduire le saut adaptatif uniquement si changement de sens"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr "Utiliser les touches Préc./Suiv. pour le saut adaptatif"
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr "Distance de saut pour les touches Verte/Jaune (s)"
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr "Distance de saut pour les touches Verte/Jaune en répétition (s)"
 
 msgid "Setup.Replay$Resume ID"
 msgstr "ID de reprise"
@@ -1270,7 +1280,7 @@ msgid "Miscellaneous"
 msgstr "Divers"
 
 msgid "Setup.Miscellaneous$Min. event timeout (min)"
-msgstr "Temps mini entre événements (min)"
+msgstr "Temps mini entre évènements (min)"
 
 msgid "Setup.Miscellaneous$Min. user inactivity (min)"
 msgstr "Inactivité de l'utilisateur (min)"
@@ -1300,10 +1310,10 @@ msgid "Setup.Miscellaneous$Initial volume"
 msgstr "Volume initial"
 
 msgid "Setup.Miscellaneous$Volume steps"
-msgstr ""
+msgstr "Pas du changement de volume"
 
 msgid "Setup.Miscellaneous$Volume linearize"
-msgstr ""
+msgstr "Correction de la courbe"
 
 msgid "Setup.Miscellaneous$Channels wrap"
 msgstr "Affichage circulaire des chaînes"
@@ -1385,7 +1395,7 @@ msgid "Jump: "
 msgstr "Accès direct : "
 
 msgid "No editing marks defined!"
-msgstr "Pas de marques d'édition définies !"
+msgstr "Pas de marqueurs d'édition définis !"
 
 msgid "No editing sequences defined!"
 msgstr "Aucune séquence d'édition définie !"
@@ -1491,7 +1501,7 @@ msgstr "LECTURE"
 
 #, c-format
 msgid "Moving dish to %.1f..."
-msgstr ""
+msgstr "Orientation de la parabole vers %.1f..."
 
 msgid "ST:TNG Panels"
 msgstr "Consoles ST:TNG"
diff --git a/po/hr_HR.po b/po/hr_HR.po
index d648da6..1eb9e2b 100644
--- a/po/hr_HR.po
+++ b/po/hr_HR.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2008-03-17 19:00+0100\n"
 "Last-Translator: Adrian Caval <anrxc at sysphere.org>\n"
 "Language-Team: Croatian <vdr at linuxtv.org>\n"
@@ -1255,6 +1255,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID nastavka"
 
diff --git a/po/hu_HU.po b/po/hu_HU.po
index 9267ec2..0ddceec 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-01-30 13:14+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2015-02-03 11:35+0200\n"
 "Last-Translator: István Füley <ifuley at tigercomp.ro>\n"
 "Language-Team: Hungarian <vdr at linuxtv.org>\n"
@@ -801,6 +801,9 @@ msgstr "A szerkesztett változat már létezik - felülírjam?"
 msgid "Error while queueing recording for cutting!"
 msgstr "Hiba a felvétel vágásra előkészítése közben!"
 
+msgid "Rename recording to folder name?"
+msgstr ""
+
 msgid "Delete editing marks for this recording?"
 msgstr "Töröljem a felvétel vágópontjait?"
 
@@ -1255,6 +1258,15 @@ msgstr "Felezett ugrás időkorláta (mp)"
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr "Felezett ugrás csak irányváltoztatásnál"
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "Lejátszás azonosító"
 
diff --git a/po/it_IT.po b/po/it_IT.po
index 0c3a834..c2c50db 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -11,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2015-02-05 00:09+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
+"PO-Revision-Date: 2015-02-09 20:26+0100\n"
 "Last-Translator: Diego Pierotto <vdr-italian at tiscali.it>\n"
 "Language-Team: Italian <vdr at linuxtv.org>\n"
 "Language: it\n"
@@ -32,7 +32,7 @@ msgid "Channel not available!"
 msgstr "Canale non disponibile!"
 
 msgid "Can't start Transfer Mode!"
-msgstr "Impossibile avviare mod. trasferimento!"
+msgstr "Impossibile avviare modalità trasferimento!"
 
 msgid "off"
 msgstr "off"
@@ -803,7 +803,7 @@ msgid "Error while queueing recording for cutting!"
 msgstr "Errore durante l'accodamento della registrazione per il taglio!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Rinominare registrazione come nome cartella?"
 
 msgid "Delete editing marks for this recording?"
 msgstr "Eliminare i marcatori di modifica della registrazione?"
@@ -1155,7 +1155,7 @@ msgid "Can't reset CAM!"
 msgstr "Impossibile reimpostare il modulo CAM!"
 
 msgid "do not pause live video"
-msgstr "non pausare video dal vivo"
+msgstr "non mettere in pausa il video dal vivo"
 
 msgid "confirm pause live video"
 msgstr "conferma pausa video dal vivo"
@@ -1203,13 +1203,13 @@ msgid "Setup.Recording$VPS margin (s)"
 msgstr "Margine VPS (s)"
 
 msgid "Setup.Recording$Mark instant recording"
-msgstr "Segna reg. immediata"
+msgstr "Segna registrazione immediata"
 
 msgid "Setup.Recording$Name instant recording"
-msgstr "Nome reg. immediata"
+msgstr "Nome registrazione immediata"
 
 msgid "Setup.Recording$Instant rec. time (min)"
-msgstr "Durata reg. immediata (min)"
+msgstr "Durata registrazione immediata (min)"
 
 msgid "Setup.Recording$present event"
 msgstr "evento attuale"
@@ -1251,12 +1251,21 @@ msgid "Setup.Replay$Pause replay at last mark"
 msgstr "Pausa riproduzione all'ultimo marcatore"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Durata iniziale per spostamenti adattivi (s)"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Reimposta scadenza per spostamenti adattivi (s)"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
+msgstr "Comportamento alternativo per spostamenti adattivi"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
 msgstr ""
 
 msgid "Setup.Replay$Resume ID"
@@ -1471,10 +1480,10 @@ msgid "DISK"
 msgstr "DISCO"
 
 msgid "LOAD"
-msgstr "CARICA"
+msgstr "USO"
 
 msgid "TIMERS"
-msgstr "TIMER"
+msgstr "TIMERS"
 
 msgid "DEVICES"
 msgstr "SCHEDE"
@@ -1487,7 +1496,7 @@ msgstr "RIPRODUCI"
 
 #, c-format
 msgid "Moving dish to %.1f..."
-msgstr "Muovi antenna verso %.1f..."
+msgstr "Spostamento antenna verso %.1f..."
 
 msgid "ST:TNG Panels"
 msgstr "Consolle ST:TNG"
diff --git a/po/lt_LT.po b/po/lt_LT.po
index 4526d4c..af5a5f3 100644
--- a/po/lt_LT.po
+++ b/po/lt_LT.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2010-10-30 11:55+0200\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
+"PO-Revision-Date: 2015-02-09 17:08+0100\n"
 "Last-Translator: Valdemaras Pipiras <varas at ambernet.lt>\n"
 "Language-Team: Lithuanian <vdr at linuxtv.org>\n"
 "Language: lt\n"
@@ -797,7 +797,7 @@ msgid "Error while queueing recording for cutting!"
 msgstr "Klaida sustatant įrašus į karpymo eilę!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Priskirti įrašui katalogo pavadinimą?"
 
 msgid "Delete editing marks for this recording?"
 msgstr "Ar tikrai ištrinti šio įrašo koregavimo žymes?"
@@ -1245,12 +1245,21 @@ msgid "Setup.Replay$Pause replay at last mark"
 msgstr "Setup.Replay$Pristabdyti pakartojimą pasiekus paskutinę žymę"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Setup.Replay$Adaptyvaus peršokimo trukmė (s)"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Setup.Replay$Adaptyvaus peršokimo perkrovimo užlaikymas(s)"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
+msgstr "Setup.Replay$Adaptyvaus peršokimo galima elgsena"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
 msgstr ""
 
 msgid "Setup.Replay$Resume ID"
diff --git a/po/mk_MK.po b/po/mk_MK.po
index 388f3e9..dd740f2 100644
--- a/po/mk_MK.po
+++ b/po/mk_MK.po
@@ -1,14 +1,14 @@
 # VDR language source file.
 # Copyright (C) 2013 Klaus Schmidinger <vdr at tvdr.de>
 # This file is distributed under the same license as the VDR package.
-# Dimitar Petrovski <dimeptr at gmail.com>, 2009, 2012, 2013
+# Dimitar Petrovski <dimeptr at gmail.com>, 2009, 2012, 2013, 2015
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2012-11-19 15:18+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
+"PO-Revision-Date: 2015-02-08 15:18+0100\n"
 "Last-Translator: Dimitar Petrovski <dimeptr at gmail.com>\n"
 "Language-Team: Macedonian <en at li.org>\n"
 "Language: mk\n"
@@ -21,7 +21,7 @@ msgid "*** Invalid Channel ***"
 msgstr "*** Невалиден Канал ***"
 
 msgid "CAM activated!"
-msgstr ""
+msgstr "CAM активиран!"
 
 msgid "Channel not available!"
 msgstr "Каналот е недостапен!"
@@ -81,13 +81,13 @@ msgid "StreamId"
 msgstr "StreamId"
 
 msgid "Pilot"
-msgstr ""
+msgstr "Пилот"
 
 msgid "T2SystemId"
-msgstr ""
+msgstr "Т2СистемИд"
 
 msgid "SISO/MISO"
-msgstr ""
+msgstr "СИСО/МИСО"
 
 msgid "Starting EPG scan"
 msgstr "Започнувам скенирање на EPG"
@@ -577,10 +577,10 @@ msgid "Sid"
 msgstr "Sid"
 
 msgid "Nid"
-msgstr ""
+msgstr "Nid"
 
 msgid "Tid"
-msgstr ""
+msgstr "Tid"
 
 msgid "Channel settings are not unique!"
 msgstr "Уредбите на каналот не се уникатни!"
@@ -743,74 +743,74 @@ msgid "CAM not responding!"
 msgstr "CAM не одговара!"
 
 msgid "Edit path"
-msgstr ""
+msgstr "Уреди патека"
 
 msgid "Folder"
-msgstr ""
+msgstr "Папка"
 
 msgid "This folder is currently in use - no changes are possible!"
-msgstr ""
+msgstr "Оваа папка е моментално во употреба - промени не се возможни!"
 
 #, c-format
 msgid "Move entire folder containing %d recordings?"
-msgstr ""
+msgstr "Помести цела папка со %d снимки?"
 
 msgid "Error while moving folder!"
-msgstr ""
+msgstr "Грешка при поместување папка!"
 
 msgid "Edit recording"
-msgstr ""
+msgstr "Уреди снимка"
 
 msgid "This recording is currently in use - no changes are possible!"
-msgstr ""
+msgstr "Оваа снимка е моментално во употреба - промени не се возможни!"
 
 msgid "Button$Cancel cutting"
-msgstr ""
+msgstr "Откажи сечење"
 
 msgid "Button$Stop cutting"
-msgstr ""
+msgstr "Запри сечење"
 
 msgid "Button$Cancel moving"
-msgstr ""
+msgstr "Откажи преместување"
 
 msgid "Button$Stop moving"
-msgstr ""
+msgstr "Запри преместување"
 
 msgid "Button$Cancel copying"
-msgstr ""
+msgstr "Откажи копирање"
 
 msgid "Button$Stop copying"
-msgstr ""
+msgstr "Запри копирање"
 
 msgid "Button$Cut"
-msgstr ""
+msgstr "Сечи"
 
 msgid "Button$Delete marks"
-msgstr ""
+msgstr "Избриши ознаки"
 
 msgid "Recording vanished!"
-msgstr ""
+msgstr "Снимката исчезна!"
 
 msgid "Edited version already exists - overwrite?"
-msgstr ""
+msgstr "Уредена верзија веќе постои - пребриши?"
 
 msgid "Error while queueing recording for cutting!"
-msgstr ""
+msgstr "Грешка при редење на снимка за сечење!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Преименувај ја снимката како името на папката?"
 
 msgid "Delete editing marks for this recording?"
-msgstr ""
+msgstr "Бриши ознаки за уредување за оваа снимка?"
 
 msgid "Error while deleting editing marks!"
-msgstr ""
+msgstr "Грешка при бришење на ознака за уредување!"
 
 msgid "Error while changing priority/lifetime!"
-msgstr ""
+msgstr "Грешка при промена на приоритет/траење!"
 
 msgid "Error while changing folder/name!"
-msgstr ""
+msgstr "Грешка при промена на папка/име!"
 
 msgid "Recording info"
 msgstr "Детали на снимката"
@@ -1080,31 +1080,31 @@ msgid "Setup.LNB$own"
 msgstr "свој"
 
 msgid "Setup.LNB$Use dish positioner"
-msgstr ""
+msgstr "Користи позиционер за чинија"
 
 msgid "Setup.LNB$Site latitude (degrees)"
-msgstr ""
+msgstr "Латидута на локацијата (степени)"
 
 msgid "South"
-msgstr ""
+msgstr "Југ"
 
 msgid "North"
-msgstr ""
+msgstr "Север"
 
 msgid "Setup.LNB$Site longitude (degrees)"
-msgstr ""
+msgstr "Лонгитуда на локацијата (степени)"
 
 msgid "West"
-msgstr ""
+msgstr "Запад"
 
 msgid "East"
-msgstr ""
+msgstr "Исток"
 
 msgid "Setup.LNB$Max. positioner swing (degrees)"
-msgstr ""
+msgstr "Максимален од на позиционерот (степени)"
 
 msgid "Setup.LNB$Positioner speed (degrees/s)"
-msgstr ""
+msgstr "Брзина на позиционерот (степени/сек)"
 
 msgid "CAM reset"
 msgstr "Рестартирај CAM"
@@ -1117,16 +1117,16 @@ msgstr "CAM спремен"
 
 #. TRANSLATORS: note the leading blank!
 msgid " (activating)"
-msgstr ""
+msgstr " (активирање)"
 
 msgid "CAM"
 msgstr "CAM"
 
 msgid "Button$Cancel activation"
-msgstr ""
+msgstr "Откажи активација"
 
 msgid "Button$Activate"
-msgstr ""
+msgstr "Активирај"
 
 msgid "Button$Menu"
 msgstr "Мени"
@@ -1141,7 +1141,7 @@ msgid "Can't open CAM menu!"
 msgstr "Неуспешно отварање на CAM менито!"
 
 msgid "Can't activate CAM!"
-msgstr ""
+msgstr "Неуспешно активирање на CAM!"
 
 msgid "CAM is in use - really reset?"
 msgstr "CAM е во употреба - рестартирај?"
@@ -1237,21 +1237,30 @@ msgid "Setup.Replay$Pause replay when setting mark"
 msgstr "Паузирај репродукција кога се внесува ознака"
 
 msgid "Setup.Replay$Pause replay when jumping to a mark"
-msgstr ""
+msgstr "Паузирај репродукција кога се скока до ознака"
 
 msgid "Setup.Replay$Skip edited parts"
-msgstr ""
+msgstr "Прескокни ги уредуваните делови"
 
 msgid "Setup.Replay$Pause replay at last mark"
-msgstr ""
+msgstr "Паузирај репродукција на последанта ознака"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Почетно траење на адаптабилно скокање (сек)"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Време на ресетирање за адаптабилно скокање (сек)"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
+msgstr "Алтернативно однесување за адаптабилно скокање"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
 msgstr ""
 
 msgid "Setup.Replay$Resume ID"
@@ -1291,10 +1300,10 @@ msgid "Setup.Miscellaneous$Initial volume"
 msgstr "Почетна јачина на звук"
 
 msgid "Setup.Miscellaneous$Volume steps"
-msgstr ""
+msgstr "Чекори на јачина на звук"
 
 msgid "Setup.Miscellaneous$Volume linearize"
-msgstr ""
+msgstr "Линеаризациај на јачина на звук"
 
 msgid "Setup.Miscellaneous$Channels wrap"
 msgstr "Премотување канали"
@@ -1482,7 +1491,7 @@ msgstr "ПУШТИ"
 
 #, c-format
 msgid "Moving dish to %.1f..."
-msgstr ""
+msgstr "Движење на чинијата кон %.1f..."
 
 msgid "ST:TNG Panels"
 msgstr "ST:TNG Панели"
diff --git a/po/nl_NL.po b/po/nl_NL.po
index c5c5287..c8d0811 100644
--- a/po/nl_NL.po
+++ b/po/nl_NL.po
@@ -7,14 +7,15 @@
 # Carel Willemse <carel at nekanali.nl>, 2008, 2013
 # Johan Schuring <johan.schuring at vetteblei.nl>, 2008
 # Cedric Dewijs <cedric.dewijs at telfort.nl>, 2013
+# Erik Oomen <oomen.e at gmail.com>, 2015
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2008-02-26 17:20+0100\n"
-"Last-Translator: Cedric Dewijs <cedric.dewijs at telfort.nl>\n"
+"POT-Creation-Date: 2015-02-11 10:51+0100\n"
+"PO-Revision-Date: 2015-02-10 19:43+0100\n"
+"Last-Translator: Erik Oomen <oomen.e at gmail.com>\n"
 "Language-Team: Dutch <vdr at linuxtv.org>\n"
 "Language: nl\n"
 "MIME-Version: 1.0\n"
@@ -25,7 +26,7 @@ msgid "*** Invalid Channel ***"
 msgstr "*** Ongeldig kanaal ***"
 
 msgid "CAM activated!"
-msgstr ""
+msgstr "CAM geactiveerd!"
 
 msgid "Channel not available!"
 msgstr "Kanaal niet beschikbaar"
@@ -85,13 +86,13 @@ msgid "StreamId"
 msgstr "StreamId"
 
 msgid "Pilot"
-msgstr ""
+msgstr "Piloot"
 
 msgid "T2SystemId"
-msgstr ""
+msgstr "T2SystemId"
 
 msgid "SISO/MISO"
-msgstr ""
+msgstr "SISO/MISO"
 
 msgid "Starting EPG scan"
 msgstr "Bezig met starten EPG scan"
@@ -581,10 +582,10 @@ msgid "Sid"
 msgstr "Sid"
 
 msgid "Nid"
-msgstr ""
+msgstr "Nid"
 
 msgid "Tid"
-msgstr ""
+msgstr "Tid"
 
 msgid "Channel settings are not unique!"
 msgstr "Kanaalinstellingen zijn niet uniek!"
@@ -747,74 +748,74 @@ msgid "CAM not responding!"
 msgstr "CAM reageert niet!"
 
 msgid "Edit path"
-msgstr ""
+msgstr "Pad bewerken"
 
 msgid "Folder"
-msgstr ""
+msgstr "Map"
 
 msgid "This folder is currently in use - no changes are possible!"
-msgstr ""
+msgstr "Deze map is momenteel in gebruik - geen wijzigingen zijn mogelijk!"
 
 #, c-format
 msgid "Move entire folder containing %d recordings?"
-msgstr ""
+msgstr "Verplaats hele map met %d -opnames?"
 
 msgid "Error while moving folder!"
-msgstr ""
+msgstr "Fout tijdens het verplaatsen van de map!"
 
 msgid "Edit recording"
-msgstr ""
+msgstr "Opname bewerken"
 
 msgid "This recording is currently in use - no changes are possible!"
-msgstr ""
+msgstr "Deze opname is momenteel in gebruik - geen wijzigingen zijn mogelijk!"
 
 msgid "Button$Cancel cutting"
-msgstr ""
+msgstr "Knippen afbreken"
 
 msgid "Button$Stop cutting"
-msgstr ""
+msgstr "Knippen stoppen"
 
 msgid "Button$Cancel moving"
-msgstr ""
+msgstr "Verplaatsen afbreken"
 
 msgid "Button$Stop moving"
-msgstr ""
+msgstr "Stoppen met verplaatsen"
 
 msgid "Button$Cancel copying"
-msgstr ""
+msgstr "Kopi�ren afbreken"
 
 msgid "Button$Stop copying"
-msgstr ""
+msgstr "Stop kopi�ren"
 
 msgid "Button$Cut"
-msgstr ""
+msgstr "Knip"
 
 msgid "Button$Delete marks"
-msgstr ""
+msgstr "Verwijder markeringen"
 
 msgid "Recording vanished!"
-msgstr ""
+msgstr "Opname verdwenen!"
 
 msgid "Edited version already exists - overwrite?"
-msgstr ""
+msgstr "Bewerkte versie bestaat al - overschrijven?"
 
 msgid "Error while queueing recording for cutting!"
-msgstr ""
+msgstr "Kan opname voor knippen niet in wachtrij plaatsen!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Opname hernoemen naar mapnaam?"
 
 msgid "Delete editing marks for this recording?"
-msgstr ""
+msgstr "Verwijder bewerkings markeringen voor deze opnamen?"
 
 msgid "Error while deleting editing marks!"
-msgstr ""
+msgstr "Fout bij het verwijderen van alle bewerkings markeringen!"
 
 msgid "Error while changing priority/lifetime!"
-msgstr ""
+msgstr "Fout tijdens het wijzigen prioriteit / duur!"
 
 msgid "Error while changing folder/name!"
-msgstr ""
+msgstr "Fout tijdens het wijzigen map / naam!"
 
 msgid "Recording info"
 msgstr "Opname info"
@@ -919,7 +920,7 @@ msgid "Setup.OSD$Info on channel switch"
 msgstr "Kanaal info tonen"
 
 msgid "Setup.OSD$Timeout requested channel info"
-msgstr "Tijdsduur opgevraagde kanaalinfo."
+msgstr "Timout opgevraagde kanaalinfo"
 
 msgid "Setup.OSD$Scroll pages"
 msgstr "Scrollen per pagina"
@@ -1084,31 +1085,31 @@ msgid "Setup.LNB$own"
 msgstr "eigen"
 
 msgid "Setup.LNB$Use dish positioner"
-msgstr ""
+msgstr "Gebruik schotel positioner"
 
 msgid "Setup.LNB$Site latitude (degrees)"
-msgstr ""
+msgstr "Plaats breedtegraad (graden)"
 
 msgid "South"
-msgstr ""
+msgstr "Zuiden"
 
 msgid "North"
-msgstr ""
+msgstr "Noorden"
 
 msgid "Setup.LNB$Site longitude (degrees)"
-msgstr ""
+msgstr "Plaats lengtegraad (graden)"
 
 msgid "West"
-msgstr ""
+msgstr "Westen"
 
 msgid "East"
-msgstr ""
+msgstr "Oosten"
 
 msgid "Setup.LNB$Max. positioner swing (degrees)"
-msgstr ""
+msgstr "Max. positioner swing (graden)"
 
 msgid "Setup.LNB$Positioner speed (degrees/s)"
-msgstr ""
+msgstr "Positioner snelheid (graden / s)"
 
 msgid "CAM reset"
 msgstr "CAM herstarten"
@@ -1121,16 +1122,16 @@ msgstr "CAM gereed"
 
 #. TRANSLATORS: note the leading blank!
 msgid " (activating)"
-msgstr ""
+msgstr " (Activeren)"
 
 msgid "CAM"
 msgstr "CAM"
 
 msgid "Button$Cancel activation"
-msgstr ""
+msgstr "Anuleer activering"
 
 msgid "Button$Activate"
-msgstr ""
+msgstr "Activeer"
 
 msgid "Button$Menu"
 msgstr "Menu"
@@ -1145,7 +1146,7 @@ msgid "Can't open CAM menu!"
 msgstr "Kan CAM-menu niet openen!"
 
 msgid "Can't activate CAM!"
-msgstr ""
+msgstr "Kan CAM niet te activeren!"
 
 msgid "CAM is in use - really reset?"
 msgstr "CAM wordt gebruikt - werkelijk herstarten?"
@@ -1241,22 +1242,31 @@ msgid "Setup.Replay$Pause replay when setting mark"
 msgstr "Pauzeer wanneer markering wordt geplaatst"
 
 msgid "Setup.Replay$Pause replay when jumping to a mark"
-msgstr ""
+msgstr "Pauzeer bij het springen naar een markering"
 
 msgid "Setup.Replay$Skip edited parts"
-msgstr ""
+msgstr "Sla bewerkte onderdelen over"
 
 msgid "Setup.Replay$Pause replay at last mark"
-msgstr ""
+msgstr "Pauzeer bij laatste markering"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Initi�le duur bij adaptief overslaan"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Reset Time-out voor adaptief overslaan"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
-msgstr ""
+msgstr "Alternatief gedrag voor adaptief overslaan"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr "Gebruik Vorige/Volgende toetsen voor adaptief overslaan"
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr "Spoel sprong met groene en gele toetsen (s)"
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr "Spoel sprong met groene en gele toesten in repeteerstand (s)"
 
 msgid "Setup.Replay$Resume ID"
 msgstr "Hervattings ID"
@@ -1295,10 +1305,10 @@ msgid "Setup.Miscellaneous$Initial volume"
 msgstr "Opstartvolume"
 
 msgid "Setup.Miscellaneous$Volume steps"
-msgstr ""
+msgstr "Volume stappen"
 
 msgid "Setup.Miscellaneous$Volume linearize"
-msgstr ""
+msgstr "Volume lineariseren"
 
 msgid "Setup.Miscellaneous$Channels wrap"
 msgstr "Doorscrollen kanalenlijst"
@@ -1486,7 +1496,7 @@ msgstr "AFSPELEN"
 
 #, c-format
 msgid "Moving dish to %.1f..."
-msgstr ""
+msgstr "Schotel verplaatsen naar% .1f ..."
 
 msgid "ST:TNG Panels"
 msgstr "ST:TNG Consoles"
diff --git a/po/nn_NO.po b/po/nn_NO.po
index 18c2a4c..219bbb6 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2007-08-12 14:17+0200\n"
 "Last-Translator: Truls Slevigen <truls at slevigen.no>\n"
 "Language-Team: Norwegian Nynorsk <vdr at linuxtv.org>\n"
@@ -1254,6 +1254,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "Resume ID"
 
diff --git a/po/pl_PL.po b/po/pl_PL.po
index 6077f7a..931fd6d 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2008-03-09 12:59+0100\n"
 "Last-Translator: Marek Nazarko <mnazarko at gmail.com>\n"
 "Language-Team: Polish <vdr at linuxtv.org>\n"
@@ -1255,6 +1255,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID wznowienia"
 
diff --git a/po/pt_PT.po b/po/pt_PT.po
index d3b2298..9390217 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2010-03-28 22:49+0100\n"
 "Last-Translator: Cris Silva <hudokkow at gmail.com>\n"
 "Language-Team: Portuguese <vdr at linuxtv.org>\n"
@@ -1254,6 +1254,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID de resumo"
 
diff --git a/po/ro_RO.po b/po/ro_RO.po
index d6d3c42..1d1460c 100644
--- a/po/ro_RO.po
+++ b/po/ro_RO.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2015-02-06 23:15+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
+"PO-Revision-Date: 2015-02-09 00:23+0100\n"
 "Last-Translator: Lucian Muresan <lucianm at users.sourceforge.net>\n"
 "Language-Team: Romanian <vdr at linuxtv.org>\n"
 "Language: ro\n"
@@ -799,7 +799,7 @@ msgid "Error while queueing recording for cutting!"
 msgstr "Eroare la punerea în coada pentru tăiere!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Redenumesc înregistrarea ca pe director?"
 
 msgid "Delete editing marks for this recording?"
 msgstr "Șterg marcajele de editare pentru această înregistrare?"
@@ -1255,6 +1255,15 @@ msgstr "Timeout (s) de resetare pentru săritul adaptiv al marcajelor"
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr "Strategie alternativă pentru săritul adaptiv al marcajelor"
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "Identificator continuare"
 
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 4a9c473..9ac95d3 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2013-03-10 17:13+0100\n"
 "Last-Translator: Oleg Roitburd <oroitburd at gmail.com>\n"
 "Language-Team: Russian <vdr at linuxtv.org>\n"
@@ -1254,6 +1254,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID ���������������"
 
diff --git a/po/sk_SK.po b/po/sk_SK.po
index 8154704..01e83ad 100644
--- a/po/sk_SK.po
+++ b/po/sk_SK.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2013-03-04 21:24+0100\n"
 "Last-Translator: Milan Hrala <hrala.milan at gmail.com>\n"
 "Language-Team: Slovak <vdr at linuxtv.org>\n"
@@ -1253,6 +1253,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ident. ��slo obnovenia prehr�vania"
 
diff --git a/po/sl_SI.po b/po/sl_SI.po
index dc6579f..33c3c46 100644
--- a/po/sl_SI.po
+++ b/po/sl_SI.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2013-03-04 12:46+0100\n"
 "Last-Translator: Matjaz Thaler <matjaz.thaler at guest.arnes.si>\n"
 "Language-Team: Slovenian <vdr at linuxtv.org>\n"
@@ -1254,6 +1254,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID za predvajanje"
 
diff --git a/po/sr_RS.po b/po/sr_RS.po
index 8a141aa..fb834f1 100644
--- a/po/sr_RS.po
+++ b/po/sr_RS.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2013-03-16 15:05+0100\n"
 "Last-Translator: Zoran Turalija <zoran.turalija at gmail.com>\n"
 "Language-Team: Serbian <vdr at linuxtv.org>\n"
@@ -1254,6 +1254,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "ID reprodukcije"
 
diff --git a/po/sv_SE.po b/po/sv_SE.po
index b7c830c..e2efbe0 100644
--- a/po/sv_SE.po
+++ b/po/sv_SE.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2013-02-18 17:04+0100\n"
 "Last-Translator: Richard Lithvall <r-vdr at boomer.se>\n"
 "Language-Team: Swedish <vdr at linuxtv.org>\n"
@@ -1257,6 +1257,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "�terupptagnings-ID"
 
diff --git a/po/tr_TR.po b/po/tr_TR.po
index f43e75b..f832ec8 100644
--- a/po/tr_TR.po
+++ b/po/tr_TR.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2008-02-28 00:33+0100\n"
 "Last-Translator: Oktay Yolge�en <oktay_73 at yahoo.de>\n"
 "Language-Team: Turkish <vdr at linuxtv.org>\n"
@@ -1253,6 +1253,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "G�steri� ID'si"
 
diff --git a/po/uk_UA.po b/po/uk_UA.po
index d7399a1..7875fac 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -1,14 +1,14 @@
 # VDR language source file.
 # Copyright (C) 2013 Klaus Schmidinger <vdr at tvdr.de>
 # This file is distributed under the same license as the VDR package.
-# Yarema Aka Knedlyk <yupadmin at gmail.com>, 2007-2010, 2013
+# Yarema Aka Knedlyk <yupadmin at gmail.com>, 2007-2010, 2013, 2015
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
-"PO-Revision-Date: 2015-02-01 23:31+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
+"PO-Revision-Date: 2015-02-08 16:03+0100\n"
 "Last-Translator: Yarema aka Knedlyk <yupadmin at gmail.com>\n"
 "Language-Team: Ukrainian <vdr at linuxtv.org>\n"
 "Language: uk\n"
@@ -798,7 +798,7 @@ msgid "Error while queueing recording for cutting!"
 msgstr "Помилка перешуковування запису для обрізання!"
 
 msgid "Rename recording to folder name?"
-msgstr ""
+msgstr "Назвати запис назвою теки?"
 
 msgid "Delete editing marks for this recording?"
 msgstr "Вилучити мітки редагування для цього запису?"
@@ -1246,12 +1246,21 @@ msgid "Setup.Replay$Pause replay at last mark"
 msgstr "Призупинити програвання на останній мітці"
 
 msgid "Setup.Replay$Initial duration for adaptive skipping (s)"
-msgstr ""
+msgstr "Початкова тривалість для адаптивного пропуску (ів)"
 
 msgid "Setup.Replay$Reset timeout for adaptive skipping (s)"
-msgstr ""
+msgstr "Скинути тайм-аут для адаптивного пропуску (ів)"
 
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
+msgstr "Альтернативна поведінка для адаптивного пропуску (ів)"
+
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
 msgstr ""
 
 msgid "Setup.Replay$Resume ID"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8ba313a..77c15ee 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: VDR 2.0.0\n"
 "Report-Msgid-Bugs-To: <vdr-bugs at tvdr.de>\n"
-"POT-Creation-Date: 2015-02-07 17:08+0100\n"
+"POT-Creation-Date: 2015-02-10 13:40+0100\n"
 "PO-Revision-Date: 2013-03-04 14:52+0800\n"
 "Last-Translator: NFVDR <nfvdr at live.com>\n"
 "Language-Team: Chinese (simplified) <nfvdr at live.com>\n"
@@ -1255,6 +1255,15 @@ msgstr ""
 msgid "Setup.Replay$Alternate behavior for adaptive skipping"
 msgstr ""
 
+msgid "Setup.Replay$Use Prev/Next keys for adaptive skipping"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys (s)"
+msgstr ""
+
+msgid "Setup.Replay$Skip distance with Green/Yellow keys in repeat (s)"
+msgstr ""
+
 msgid "Setup.Replay$Resume ID"
 msgstr "恢复 ID"
 
diff --git a/vdr.1 b/vdr.1
index 7605bf2..84f28b1 100644
--- a/vdr.1
+++ b/vdr.1
@@ -8,7 +8,7 @@
 .\" License as specified in the file COPYING that comes with the
 .\" vdr distribution.
 .\"
-.\" $Id: vdr.1 3.4 2015/01/20 15:34:29 kls Exp $
+.\" $Id: vdr.1 3.5 2015/02/10 13:59:11 kls Exp $
 .\"
 .TH vdr 1 "31 Mar 2013" "2.0" "Video Disk Recorder"
 .SH NAME
@@ -49,6 +49,11 @@ Send Dolby Digital audio to stdin of command \fIcmd\fR.
 Save cache files in \fIdir\fR
 (default is to save them in the video directory).
 .TP
+.BI \-\-chartab= character_table
+Set the character table to use for strings in the DVB data stream that don't begin
+with a character table indicator, but don't use the standard default character table
+(for instance ISO-8859-9).
+.TP
 .BI \-c\  dir ,\ \-\-config= dir
 Read config files from directory \fIdir\fR
 (default is to read them from the video directory).
diff --git a/vdr.c b/vdr.c
index 336130f..71a72f2 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
  *
  * The project's page is at http://www.tvdr.de
  *
- * $Id: vdr.c 3.15 2015/01/17 14:48:09 kls Exp $
+ * $Id: vdr.c 3.16 2015/02/10 14:13:12 kls Exp $
  */
 
 #include <getopt.h>
@@ -216,6 +216,12 @@ int main(int argc, char *argv[])
   bool MuteAudio = false;
   int WatchdogTimeout = DEFAULTWATCHDOG;
   const char *Terminal = NULL;
+  const char *OverrideCharacterTable = NULL;
+#define DEPRECATED_VDR_CHARSET_OVERRIDE
+#ifdef DEPRECATED_VDR_CHARSET_OVERRIDE
+  OverrideCharacterTable = getenv("VDR_CHARSET_OVERRIDE");
+  const char *DeprecatedVdrCharsetOverride = OverrideCharacterTable;
+#endif
 
   bool UseKbd = true;
   const char *LircDevice = NULL;
@@ -244,6 +250,7 @@ int main(int argc, char *argv[])
   static struct option long_options[] = {
       { "audio",    required_argument, NULL, 'a' },
       { "cachedir", required_argument, NULL, 'c' | 0x100 },
+      { "chartab",  required_argument, NULL, 'c' | 0x200 },
       { "config",   required_argument, NULL, 'c' },
       { "daemon",   no_argument,       NULL, 'd' },
       { "device",   required_argument, NULL, 'D' },
@@ -287,6 +294,9 @@ int main(int argc, char *argv[])
           case 'c' | 0x100:
                     CacheDirectory = optarg;
                     break;
+          case 'c' | 0x200:
+                    OverrideCharacterTable = optarg;
+                    break;
           case 'c': ConfigDirectory = optarg;
                     break;
           case 'd': DaemonMode = true;
@@ -517,6 +527,11 @@ int main(int argc, char *argv[])
         printf("Usage: vdr [OPTIONS]\n\n"          // for easier orientation, this is column 80|
                "  -a CMD,   --audio=CMD    send Dolby Digital audio to stdin of command CMD\n"
                "            --cachedir=DIR save cache files in DIR (default: %s)\n"
+               "            --chartab=CHARACTER_TABLE\n"
+               "                           set the character table to use for strings in the\n"
+               "                           DVB data stream that don't begin with a character\n"
+               "                           table indicator, but don't use the standard default\n"
+               "                           character table (for instance ISO-8859-9)\n"
                "  -c DIR,   --config=DIR   read config files from DIR (default: %s)\n"
                "  -d,       --daemon       run in daemon mode\n"
                "  -D NUM,   --device=NUM   use only the given DVB device (NUM = 0, 1, 2...)\n"
@@ -674,6 +689,14 @@ int main(int argc, char *argv[])
      isyslog("codeset is '%s' - %s", CodeSet, known ? "known" : "unknown");
      cCharSetConv::SetSystemCharacterTable(CodeSet);
      }
+#ifdef DEPRECATED_VDR_CHARSET_OVERRIDE
+  if (DeprecatedVdrCharsetOverride)
+     isyslog("use of environment variable VDR_CHARSET_OVERRIDE (%s) is deprecated!", DeprecatedVdrCharsetOverride);
+#endif
+  if (OverrideCharacterTable) {
+     isyslog("override character table is '%s'", OverrideCharacterTable);
+     SI::SetOverrideCharacterTable(OverrideCharacterTable);
+     }
 
   // Initialize internationalization:
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr.git



More information about the pkg-vdr-dvb-changes mailing list