[vdr] Update to 1.7.28.

Ville Skyttä scop at fedoraproject.org
Wed Jun 27 20:47:02 UTC 2012


commit f1dcdafa0203b07c0abfdfd8c7b7e5672a322f26
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Wed Jun 27 22:00:22 2012 +0300

    Update to 1.7.28.
    
    - Add softhdddevice to sysconfig's VDR_PLUGIN_ORDER.

 sources                                            |    5 +-
 vdr-1.7.27-legacy-receiver.patch                   |   12 --
 vdr-1.7.28-epghandledexternally.diff               |  118 ++++++++++++++++++++
 ...ch => vdr-1.7.28-vasarajanauloja-jumpplay.patch |   66 ++++++-----
 vdr-timer-info-1.7.28.patch                        |   12 ++
 vdr.spec                                           |   21 +++-
 vdr.sysconfig                                      |    1 +
 7 files changed, 184 insertions(+), 51 deletions(-)
---
diff --git a/sources b/sources
index be48417..09daafe 100644
--- a/sources
+++ b/sources
@@ -4,6 +4,7 @@ fae3698214bd45de1f675c2b037d5f3b  vdr-1.7.21-ttxtsubs.patch
 04511ae02243eb1bab94f3f45b59e574  vdr-timer-info-0.5-1.7.13.diff
 71f7281d55eba1957f4267f596b11e29  vdr.epgsearch-exttimeredit-0.0.2.diff
 d40db7bea1b9af94d7625e611ef3dae2  vdr_1.7.23-1.debian.tar.bz2
-bfeaa79a9e55144bca2b69139c45f1bb  vdr-1.7.27.tar.bz2
-b2fac5d9ee86abb8abf294839bdf2fbf  vdr-1.7.27-liemikuutio-1.34.patch.gz
 ef7a35dc23c5ed700e1ce873274f7793  vdr-1.7.27-hlcutter-0.2.3.diff
+bed5d492fa7faf2065f6b2cc44e841a3  vdr-1.7.28-vasarajanauloja.patch.gz
+a086781712c57ab6c255035201fb508b  vdr-1.7.28-finnish.patch.gz
+3ccff2dcc42d112e23dd64f2c39f02f1  vdr-1.7.28.tar.bz2
diff --git a/vdr-1.7.28-epghandledexternally.diff b/vdr-1.7.28-epghandledexternally.diff
new file mode 100644
index 0000000..52dfab6
--- /dev/null
+++ b/vdr-1.7.28-epghandledexternally.diff
@@ -0,0 +1,118 @@
+--- ./eit.c	2012/06/02 14:05:22	2.17
++++ ./eit.c	2012/06/04 10:10:11
+@@ -45,6 +45,7 @@
+      return;
+      }
+ 
++  bool handledExternally = EpgHandlers.HandledExternally(channel);
+   cSchedule *pSchedule = (cSchedule *)Schedules->GetSchedule(channel, true);
+ 
+   bool Empty = true;
+@@ -70,7 +71,7 @@
+       cEvent *newEvent = NULL;
+       cEvent *rEvent = NULL;
+       cEvent *pEvent = (cEvent *)pSchedule->GetEvent(SiEitEvent.getEventId(), StartTime);
+-      if (!pEvent) {
++      if (!pEvent || handledExternally) {
+          if (OnlyRunningStatus)
+             continue;
+          // If we don't have that event yet, we create a new one.
+@@ -78,7 +79,8 @@
+          pEvent = newEvent = new cEvent(SiEitEvent.getEventId());
+          newEvent->SetStartTime(StartTime);
+          newEvent->SetDuration(Duration);
+-         pSchedule->AddEvent(newEvent);
++         if (!handledExternally)
++            pSchedule->AddEvent(newEvent);
+          }
+       else {
+          // We have found an existing event, either through its event ID or its start time.
+@@ -290,11 +292,8 @@
+          channel->SetLinkChannels(LinkChannels);
+       Modified = true;
+       EpgHandlers.HandleEvent(pEvent);
+-
+-      if (EpgHandlers.DeleteEvent(pEvent)) {
+-         pSchedule->DelEvent(pEvent);
+-         pEvent = NULL;
+-         }
++      if (handledExternally)
++         delete pEvent;
+       }
+   if (Tid == 0x4E) {
+      if (Empty && getSectionNumber() == 0)
+--- ./epg.c	2012/06/02 14:08:12	2.14
++++ ./epg.c	2012/06/04 10:06:22
+@@ -1331,6 +1331,15 @@
+   return false;
+ }
+ 
++bool cEpgHandlers::HandledExternally(const cChannel *Channel)
++{
++  for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
++      if (eh->HandledExternally(Channel))
++         return true;
++      }
++  return false;
++}
++
+ void cEpgHandlers::SetEventID(cEvent *Event, tEventID EventID)
+ {
+   for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
+@@ -1429,15 +1438,6 @@
+       }
+ }
+ 
+-bool cEpgHandlers::DeleteEvent(const cEvent *Event)
+-{
+-  for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
+-      if (eh->DeleteEvent(Event))
+-         return true;
+-      }
+-  return false;
+-}
+-
+ void cEpgHandlers::SortSchedule(cSchedule *Schedule)
+ {
+   for (cEpgHandler *eh = First(); eh; eh = Next(eh)) {
+--- ./epg.h	2012/06/02 14:07:51	2.10
++++ ./epg.h	2012/06/04 10:05:21
+@@ -244,6 +244,12 @@
+           ///< EPG handlers are queried to see if any of them would like to do the
+           ///< complete processing by itself. TableID and Version are from the
+           ///< incoming section data.
++  virtual bool HandledExternally(const cChannel *Channel) { return false; }
++          ///< If any EPG handler returns true in this function, it is assumed that
++          ///< the EPG for the given Channel is handled completely from some external
++          ///< source. Incoming EIT data is processed as usual, but any new EPG event
++          ///< will not be added to the respective schedule. It's up to the EPG
++          ///< handler to take care of this.
+   virtual bool SetEventID(cEvent *Event, tEventID EventID) { return false; }
+   virtual bool SetTitle(cEvent *Event, const char *Title) { return false; }
+   virtual bool SetShortText(cEvent *Event, const char *ShortText) { return false; }
+@@ -258,9 +264,6 @@
+   virtual bool HandleEvent(cEvent *Event) { return false; }
+           ///< After all modifications of the Event have been done, the EPG handler
+           ///< can take a final look at it.
+-  virtual bool DeleteEvent(const cEvent *Event) { return false; }
+-          ///< After the complete processing of the Event is finished, an EPG handler
+-          ///< can decide that this Event shall be deleted from its schedule.
+   virtual bool SortSchedule(cSchedule *Schedule) { return false; }
+           ///< Sorts the Schedule after the complete table has been processed.
+   virtual bool DropOutdated(cSchedule *Schedule, time_t SegmentStart, time_t SegmentEnd, uchar TableID, uchar Version) { return false; }
+@@ -272,6 +275,7 @@
+ public:
+   bool IgnoreChannel(const cChannel *Channel);
+   bool HandleEitEvent(cSchedule *Schedule, const SI::EIT::Event *EitEvent, uchar TableID, uchar Version);
++  bool HandledExternally(const cChannel *Channel);
+   void SetEventID(cEvent *Event, tEventID EventID);
+   void SetTitle(cEvent *Event, const char *Title);
+   void SetShortText(cEvent *Event, const char *ShortText);
+@@ -283,7 +287,6 @@
+   void SetVps(cEvent *Event, time_t Vps);
+   void FixEpgBugs(cEvent *Event);
+   void HandleEvent(cEvent *Event);
+-  bool DeleteEvent(const cEvent *Event);
+   void SortSchedule(cSchedule *Schedule);
+   void DropOutdated(cSchedule *Schedule, time_t SegmentStart, time_t SegmentEnd, uchar TableID, uchar Version);
+   };
diff --git a/vdr-1.7.27-jumpplay.patch b/vdr-1.7.28-vasarajanauloja-jumpplay.patch
similarity index 82%
rename from vdr-1.7.27-jumpplay.patch
rename to vdr-1.7.28-vasarajanauloja-jumpplay.patch
index 564ca36..717d263 100644
--- a/vdr-1.7.27-jumpplay.patch
+++ b/vdr-1.7.28-vasarajanauloja-jumpplay.patch
@@ -1,7 +1,7 @@
-diff -up vdr-1.7.25/config.c~ vdr-1.7.25/config.c
---- vdr-1.7.25/config.c~	2012-02-29 12:15:54.000000000 +0200
-+++ vdr-1.7.25/config.c	2012-03-04 19:47:50.695755608 +0200
-@@ -454,6 +454,9 @@ cSetup::cSetup(void)
+diff -up vdr-1.7.28/config.c~ vdr-1.7.28/config.c
+--- vdr-1.7.28/config.c~	2012-05-11 14:06:57.000000000 +0300
++++ vdr-1.7.28/config.c	2012-06-03 21:38:49.494966365 +0300
+@@ -455,6 +455,9 @@ cSetup::cSetup(void)
    ShowReplayMode = 0;
    ShowRemainingTime = 0;
    ResumeID = 0;
@@ -11,7 +11,7 @@ diff -up vdr-1.7.25/config.c~ vdr-1.7.25/config.c
    CurrentChannel = -1;
    CurrentVolume = MAXVOLUME;
    CurrentDolby = 0;
-@@ -648,6 +651,9 @@ bool cSetup::Parse(const char *Name, con
+@@ -650,6 +653,9 @@ bool cSetup::Parse(const char *Name, con
    else if (!strcasecmp(Name, "ShowReplayMode"))      ShowReplayMode     = atoi(Value);
    else if (!strcasecmp(Name, "ShowRemainingTime"))   ShowRemainingTime  = atoi(Value);
    else if (!strcasecmp(Name, "ResumeID"))            ResumeID           = atoi(Value);
@@ -21,7 +21,7 @@ diff -up vdr-1.7.25/config.c~ vdr-1.7.25/config.c
    else if (!strcasecmp(Name, "CurrentChannel"))      CurrentChannel     = atoi(Value);
    else if (!strcasecmp(Name, "CurrentVolume"))       CurrentVolume      = atoi(Value);
    else if (!strcasecmp(Name, "CurrentDolby"))        CurrentDolby       = atoi(Value);
-@@ -745,6 +751,9 @@ bool cSetup::Save(void)
+@@ -748,6 +754,9 @@ bool cSetup::Save(void)
    Store("ShowReplayMode",     ShowReplayMode);
    Store("ShowRemainingTime",  ShowRemainingTime);
    Store("ResumeID",           ResumeID);
@@ -31,15 +31,19 @@ diff -up vdr-1.7.25/config.c~ vdr-1.7.25/config.c
    Store("CurrentChannel",     CurrentChannel);
    Store("CurrentVolume",      CurrentVolume);
    Store("CurrentDolby",       CurrentDolby);
-diff -up vdr-1.7.25/config.h~ vdr-1.7.25/config.h
---- vdr-1.7.25/config.h~	2012-02-29 14:28:01.000000000 +0200
-+++ vdr-1.7.25/config.h	2012-03-04 19:47:50.264715834 +0200
-@@ -32,2 +32,4 @@
+diff -up vdr-1.7.28/config.h~ vdr-1.7.28/config.h
+--- vdr-1.7.28/config.h~	2012-04-15 13:45:32.000000000 +0300
++++ vdr-1.7.28/config.h	2012-06-03 21:38:48.350980409 +0300
+@@ -30,6 +30,8 @@
+ #define APIVERSION  "1.7.28"
+ #define APIVERSNUM   10728  // Version * 10000 + Major * 100 + Minor
  
 +#define JUMPPLAYVERSNUM 100
 +
  // When loading plugins, VDR searches them by their APIVERSION, which
-@@ -307,6 +309,9 @@ public:
+ // may be smaller than VDRVERSION in case there have been no changes to
+ // VDR header files since the last APIVERSION. This allows compiled
+@@ -318,6 +320,9 @@ public:
    int ShowReplayMode;
    int ShowRemainingTime;
    int ResumeID;
@@ -49,9 +53,9 @@ diff -up vdr-1.7.25/config.h~ vdr-1.7.25/config.h
    int CurrentChannel;
    int CurrentVolume;
    int CurrentDolby;
-diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
---- vdr-1.7.25/dvbplayer.c~	2012-02-21 13:34:04.000000000 +0200
-+++ vdr-1.7.25/dvbplayer.c	2012-03-04 19:47:49.845677163 +0200
+diff -up vdr-1.7.28/dvbplayer.c~ vdr-1.7.28/dvbplayer.c
+--- vdr-1.7.28/dvbplayer.c~	2012-06-03 21:34:11.678840928 +0300
++++ vdr-1.7.28/dvbplayer.c	2012-06-03 21:38:47.111995584 +0300
 @@ -204,6 +204,7 @@ private:
    cNonBlockingFileReader *nonBlockingFileReader;
    cRingBufferFrame *ringBuffer;
@@ -68,18 +72,18 @@ diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
  }
  
  cDvbPlayer::~cDvbPlayer()
-@@ -364,6 +366,10 @@ bool cDvbPlayer::Save(void)
-   if (index) {
+@@ -365,6 +367,10 @@ bool cDvbPlayer::Save(void)
       int Index = ptsIndex.FindIndex(DeviceGetSTC());
       if (Index >= 0) {
+         int backup = int(round(RESUMEBACKUP * framesPerSecond));
 +        // set resume position to 0 if replay stops at the first mark
 +        if (Setup.PlayJump && marks.First() &&
-+            abs(Index - marks.First()->Position()) <= int(round(RESUMEBACKUP * framesPerSecond)))
++            abs(Index - marks.First()->Position()) <= backup)
 +           Index = 0;
-         Index -= int(round(RESUMEBACKUP * framesPerSecond));
-         if (Index > 0)
-            Index = index->GetNextIFrame(Index, false);
-@@ -390,11 +396,26 @@ void cDvbPlayer::Action(void)
+         if (Index >= index->Last() - backup)
+            Index = 0;
+         else {
+@@ -395,11 +401,26 @@ void cDvbPlayer::Action(void)
  {
    uchar *p = NULL;
    int pc = 0;
@@ -106,7 +110,7 @@ diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
    nonBlockingFileReader = new cNonBlockingFileReader;
    int Length = 0;
    bool Sleep = false;
-@@ -421,7 +442,7 @@ void cDvbPlayer::Action(void)
+@@ -426,7 +447,7 @@ void cDvbPlayer::Action(void)
  
            // Read the next frame from the file:
  
@@ -115,7 +119,7 @@ diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
               if (!readFrame && (replayFile || readIndex >= 0)) {
                  if (!nonBlockingFileReader->Reading()) {
                     if (!SwitchToPlayFrame && (playMode == pmFast || (playMode == pmSlow && playDir == pdBackward))) {
-@@ -458,6 +479,44 @@ void cDvbPlayer::Action(void)
+@@ -463,6 +484,44 @@ void cDvbPlayer::Action(void)
                     else if (index) {
                        uint16_t FileNumber;
                        off_t FileOffset;
@@ -160,7 +164,7 @@ diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
                        if (index->Get(readIndex + 1, &FileNumber, &FileOffset, &readIndependent, &Length) && NextFile(FileNumber, FileOffset))
                           readIndex++;
                        else
-@@ -502,6 +561,13 @@ void cDvbPlayer::Action(void)
+@@ -507,6 +566,13 @@ void cDvbPlayer::Action(void)
               // Store the frame in the buffer:
  
               if (readFrame) {
@@ -174,7 +178,7 @@ diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
                  if (ringBuffer->Put(readFrame))
                     readFrame = NULL;
                  else
-@@ -567,8 +633,13 @@ void cDvbPlayer::Action(void)
+@@ -572,8 +638,13 @@ void cDvbPlayer::Action(void)
                  p = NULL;
                  }
               }
@@ -189,10 +193,10 @@ diff -up vdr-1.7.25/dvbplayer.c~ vdr-1.7.25/dvbplayer.c
  
            // Handle hitting begin/end of recording:
  
-diff -up vdr-1.7.25/menu.c~ vdr-1.7.25/menu.c
---- vdr-1.7.25/menu.c~	2012-03-02 12:33:17.000000000 +0200
-+++ vdr-1.7.25/menu.c	2012-03-04 19:47:49.414637381 +0200
-@@ -3125,6 +3125,9 @@ cMenuSetupReplay::cMenuSetupReplay(void)
+diff -up vdr-1.7.28/menu.c~ vdr-1.7.28/menu.c
+--- vdr-1.7.28/menu.c~	2012-06-03 21:34:11.681840873 +0300
++++ vdr-1.7.28/menu.c	2012-06-03 21:38:47.814986979 +0300
+@@ -3285,6 +3285,9 @@ cMenuSetupReplay::cMenuSetupReplay(void)
    Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode));
    Add(new cMenuEditBoolItem(tr("Setup.Replay$Show remaining time"), &data.ShowRemainingTime));
    Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
@@ -202,7 +206,7 @@ diff -up vdr-1.7.25/menu.c~ vdr-1.7.25/menu.c
  }
  
  void cMenuSetupReplay::Store(void)
-@@ -4711,8 +4714,17 @@ void cReplayControl::MarkJump(bool Forwa
+@@ -4906,8 +4909,17 @@ void cReplayControl::MarkJump(bool Forwa
       if (GetIndex(Current, Total)) {
          cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current);
          if (m) {
@@ -222,7 +226,7 @@ diff -up vdr-1.7.25/menu.c~ vdr-1.7.25/menu.c
             }
          }
       }
-@@ -4768,7 +4780,7 @@ void cReplayControl::EditTest(void)
+@@ -4963,7 +4975,7 @@ void cReplayControl::EditTest(void)
       if (!m)
          m = marks.GetNext(Current);
       if (m) {
diff --git a/vdr-timer-info-1.7.28.patch b/vdr-timer-info-1.7.28.patch
new file mode 100644
index 0000000..4c79ab8
--- /dev/null
+++ b/vdr-timer-info-1.7.28.patch
@@ -0,0 +1,12 @@
+diff -up vdr-1.7.28/menu.c~ vdr-1.7.28/menu.c
+--- vdr-1.7.28/menu.c~	2012-06-03 21:50:53.576250772 +0300
++++ vdr-1.7.28/menu.c	2012-06-03 21:51:27.215801834 +0300
+@@ -1304,7 +1304,7 @@ void cMenuTimers::ActualiseDiskStatus(vo
+   // compute free disk space
+   int freeMB, freeMinutes, runshortMinutes;
+   VideoDiskSpace(&freeMB);
+-  freeMinutes = int(double(freeMB) * 1.1 / MB_PER_MINUTE); // overestimate by 10 percent
++  freeMinutes = int(double(freeMB) * 1.1 / 25.75); // overestimate by 10 percent
+   runshortMinutes = freeMinutes / 5; // 20 Percent
+ 
+   // fill entries list
diff --git a/vdr.spec b/vdr.spec
index 7a89da5..3d6a262 100644
--- a/vdr.spec
+++ b/vdr.spec
@@ -25,8 +25,8 @@
 %global migrfile %{_var}/run/systemd-migr_%{name}-%{version}-%{release}.%{_arch}
 
 Name:           vdr
-Version:        1.7.27
-Release:        2%{?dist}
+Version:        1.7.28
+Release:        1%{?dist}
 Summary:        Video Disk Recorder
 
 License:        GPLv2+
@@ -54,7 +54,7 @@ Source19:       %{name}-check-setup.sh
 Source20:       %{name}-rcu.conf
 Patch0:         %{name}-channel+epg.patch
 Patch1:         http://zap.tartarus.org/~ds/debian/dists/stable/main/source/vdr_1.4.5-2.ds.diff.gz
-Patch2:         http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.7.27-liemikuutio-1.34.patch.gz
+Patch2:         http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.7.28-vasarajanauloja.patch.gz
 # Extracted from http://copperhead.htpc-forum.de/downloads/extensionpatch/extpngvdr1.7.21v1.diff.gz
 Patch3:         %{name}-1.7.21-plugin-missing.patch
 Patch4:         %{name}-1.7.22-paths.patch
@@ -64,7 +64,7 @@ Patch6:         %{name}-1.5.18-syncearly.patch
 Patch7:         http://projects.vdr-developer.org/projects/plg-ttxtsubs/repository/revisions/master/raw/patches/vdr-1.7.21-ttxtsubs.patch
 # Extracted from http://copperhead.htpc-forum.de/downloads/extensionpatch/extpngvdr1.7.21v1.diff.gz
 # Original at http://toms-cafe.de/vdr/download/vdr-jumpplay-1.0-1.7.6.diff
-Patch8:         %{name}-1.7.27-jumpplay.patch
+Patch8:         %{name}-1.7.28-vasarajanauloja-jumpplay.patch
 # http://www.udo-richter.de/vdr/patches.en.html#hlcutter
 Patch9:         http://www.udo-richter.de/vdr/files/vdr-1.7.27-hlcutter-0.2.3.diff
 Patch10:        %{name}-1.7.27-libhdffcmd-cflags.patch
@@ -74,12 +74,15 @@ Patch11:        %{name}-1.7.25-mainmenuhooks101.patch
 # Modified so that it applies over the timer-info patch
 Patch12:        %{name}-1.7.21-timercmd.patch
 Patch13:        http://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/plain/patches/vdr-1.5.17-progressbar-support-0.0.1.diff
+Patch14:        http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.7.28-finnish.patch.gz
 Patch15:        %{name}-1.7.21-fedora-pkgconfig.patch
 Patch16:        %{name}-1.7.21-jumpplay-finnish.patch
 Patch17:        http://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/plain/patches/vdr.epgsearch-exttimeredit-0.0.2.diff
-Patch18:        %{name}-1.7.27-legacy-receiver.patch
+Patch18:        %{name}-timer-info-1.7.28.patch
 # http://projects.vdr-developer.org/issues/819
 Patch19:        %{name}-1.7.22-ttxtsubs-on.patch
+# http://www.linuxtv.org/pipermail/vdr/2012-June/026400.html
+Patch20:        %{name}-1.7.28-epghandledexternally.diff
 
 BuildRequires:  libjpeg-devel
 BuildRequires:  libcap-devel
@@ -194,7 +197,7 @@ sed \
   -e 's|__VARDIR__|%{vardir}|'       \
   -e 's|__VIDEODIR__|%{videodir}|'   \
   %{PATCH4} | patch -F 0 -p1
-%patch5 -p1
+%patch5 -p1 -F 2
 # TODO: does not apply
 #patch6 -p0
 %patch7 -p1 -F 2
@@ -205,12 +208,14 @@ sed \
 %patch12 -p1
 # TODO: does not apply
 #patch13 -p1
+%patch14 -p1
 %patch15 -p0
 %patch16 -p1
 # TODO: build failure
 #patch17 -p0 -F 3
 %patch18 -p1
 %patch19 -p1
+%patch20 -p1
 
 for f in CONTRIBUTORS HISTORY UPDATE-1.4.0 README.timer-info ; do
   iconv -f iso-8859-1 -t utf-8 -o $f.utf8 $f && mv $f.utf8 $f
@@ -547,6 +552,10 @@ rm -f %{migrfile} &>/dev/null || :
 
 
 %changelog
+* Wed Jun 27 2012 Ville Skyttä <ville.skytta at iki.fi> - 1.7.28-1
+- Update to 1.7.28.
+- Add softhdddevice to sysconfig's VDR_PLUGIN_ORDER.
+
 * Mon Apr 23 2012 Ville Skyttä <ville.skytta at iki.fi> - 1.7.27-2
 - Build with hardening flags on.
 - Update hlcutter patch to 0.2.3.
diff --git a/vdr.sysconfig b/vdr.sysconfig
index 62da91b..b4b1573 100644
--- a/vdr.sysconfig
+++ b/vdr.sysconfig
@@ -20,6 +20,7 @@ VDR_OPTIONS=(--lirc --vfat --shutdown=vdr-shutdown.sh)
 VDR_PLUGIN_ORDER="
 dxr3
 softdevice
+softhddevice
 streamdev-client
 xine
 xineliboutput


More information about the scm-commits mailing list