Hello community,

here is the log from the commit of package vdr for openSUSE:Factory checked in 
at 2015-02-11 16:44:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vdr (Old)
 and      /work/SRC/openSUSE:Factory/.vdr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vdr"

Changes:
--------
--- /work/SRC/openSUSE:Factory/vdr/vdr.changes  2015-01-07 09:39:16.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.vdr.new/vdr.changes     2015-02-11 
16:44:39.000000000 +0100
@@ -1,0 +2,23 @@
+Wed Feb  4 12:42:31 UTC 2015 - [email protected]
+
+- update to 2.0.7:
+  * Fixed a possible division by zero in frame rate detection.
+  * Fixed jumping to an absolute position via the Red key in case
+    replay was paused
+  * Now returning from removing deleted recordings after at most
+    10 seconds, or if the user presses a remote control key, to
+    keep the system from getting unresponsive when removing a huge
+    number of files
+  * Fixed generating the index file of an existing recording in
+    case at the of a TS file there is less data in the buffer than
+    needed by the frame detector. In such a case it was possible
+    that frames were missed, and there was most likely a distortion
+    when replaying that part of a recording. This is mostly a
+    problem for recordings that consist of more than one *.ts file.
+    Single file recordings could only lose some frames at their
+    very end. At any rate, if you have generated an index file with
+    VDR version 2.0.6 you may want to do so again with this version
+    to make sure the index is OK.
+- vdrapi version stays at 2.0.6
+
+-------------------------------------------------------------------

Old:
----
  vdr-2.0.6.tar.bz2

New:
----
  vdr-2.0.7.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vdr.spec ++++++
--- /var/tmp/diff_new_pack.LHQnOw/_old  2015-02-11 16:44:40.000000000 +0100
+++ /var/tmp/diff_new_pack.LHQnOw/_new  2015-02-11 16:44:40.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package vdr
 #
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -39,7 +39,7 @@
 #
 Url:            http://www.tvdr.de/
 PreReq:         /usr/sbin/useradd
-Version:        2.0.6
+Version:        2.0.7
 Release:        0
 Summary:        Video Disk Recorder
 License:        GPL-2.0+

++++++ vdr-2.0.6.tar.bz2 -> vdr-2.0.7.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/CONTRIBUTORS new/vdr-2.0.7/CONTRIBUTORS
--- old/vdr-2.0.6/CONTRIBUTORS  2014-03-09 13:15:08.000000000 +0100
+++ new/vdr-2.0.7/CONTRIBUTORS  2015-01-17 11:55:42.000000000 +0100
@@ -232,6 +232,7 @@
  featured DVB cards
  for pointing out a bug in handling lowercase polarization characters in 
channel
  definitions if no DiSEqC is used
+ for fixing a bug in the Makefile when installing plugins with LCLBLD=1
 
 Ulrich R�der <[email protected]>
  for pointing out that there are channels that have a symbol rate higher than 
27500
@@ -3214,3 +3215,9 @@
 Christian Winkler <[email protected]>
  for reporting a problem with transfer mode on full featured DVB cards for 
encrypted
  channels that have no audio pid
+
+Dieter Ferdinand <[email protected]>
+ for reporting a problem with jumping to an absolute position via the Red key 
in
+ case replay was paused
+ for reporting a problem with the system getting unresponsive when removing a 
huge
+ number of files in the thread that removes deleted recordings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/HISTORY new/vdr-2.0.7/HISTORY
--- old/vdr-2.0.6/HISTORY       2014-03-22 12:03:39.000000000 +0100
+++ new/vdr-2.0.7/HISTORY       2015-01-20 10:13:08.000000000 +0100
@@ -7915,3 +7915,22 @@
   on a system with a large number of recordings.
 - The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, 
sdt.h and
   the functional modification to cFont::CreateFont().
+
+2015-01-20: Version 2.0.7
+
+- Fixed a possible division by zero in frame rate detection.
+- Fixed a bug in the Makefile when installing plugins with LCLBLD=1 (thanks to
+  Stefan Huelswitt).
+- Fixed jumping to an absolute position via the Red key in case replay was 
paused
+  (reported by Dieter Ferdinand).
+- Now returning from removing deleted recordings after at most 10 seconds, or 
if the
+  user presses a remote control key, to keep the system from getting 
unresponsive
+  when removing a huge number of files (reported by Dieter Ferdinand).
+- Fixed generating the index file of an existing recording in case at the of a 
TS file
+  there is less data in the buffer than needed by the frame detector. In such 
a case
+  it was possible that frames were missed, and there was most likely a 
distortion
+  when replaying that part of a recording. This is mostly a problem for 
recordings that
+  consist of more than one *.ts file. Single file recordings could only lose 
some
+  frames at their very end, which probably doesn't matter. At any rate, if you 
have
+  generated an index file with VDR version 2.0.6 you may want to do so again 
with this
+  version to make sure the index is OK.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/Makefile new/vdr-2.0.7/Makefile
--- old/vdr-2.0.6/Makefile      2013-03-11 16:01:01.000000000 +0100
+++ new/vdr-2.0.7/Makefile      2015-01-01 14:59:51.000000000 +0100
@@ -4,7 +4,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: Makefile 2.54 2013/03/11 15:01:01 kls Exp $
+# $Id: Makefile 2.54.1.1 2015/01/01 13:59:51 kls Exp $
 
 .DELETE_ON_ERROR:
 
@@ -220,7 +220,7 @@
            INCLUDES="-I$(CWD)/include"\
            $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" 
VDRDIR="$(CWD)" || failed="$$failed $$i";\
            if [ -n "$(LCLBLD)" ] ; then\
-              (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o 
-name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); 
done);\
+              (cd $(PLUGINDIR)/src/$$i; for l in `find -name "libvdr-*.so" -o 
-name "lib$$i-*.so"`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); 
done);\
               if [ -d $(PLUGINDIR)/src/$$i/po ]; then\
                  for l in `ls $(PLUGINDIR)/src/$$i/po/*.mo`; do\
                      install -D -m644 $$l $(LOCDIR)/`basename $$l | cut -d. 
-f1`/LC_MESSAGES/vdr-$$i.mo;\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/config.h new/vdr-2.0.7/config.h
--- old/vdr-2.0.6/config.h      2014-03-22 12:00:00.000000000 +0100
+++ new/vdr-2.0.7/config.h      2014-04-13 16:00:42.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.h 2.76.1.7 2014/03/22 11:00:00 kls Exp $
+ * $Id: config.h 2.76.1.8 2014/04/13 14:00:42 kls Exp $
  */
 
 #ifndef __CONFIG_H
@@ -22,8 +22,8 @@
 
 // VDR's own version number:
 
-#define VDRVERSION  "2.0.6"
-#define VDRVERSNUM   20006  // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION  "2.0.7"
+#define VDRVERSNUM   20007  // Version * 10000 + Major * 100 + Minor
 
 // The plugin API's version number:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/menu.c new/vdr-2.0.7/menu.c
--- old/vdr-2.0.6/menu.c        2014-02-26 12:42:28.000000000 +0100
+++ new/vdr-2.0.7/menu.c        2015-01-13 10:52:59.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: menu.c 2.82.1.8 2014/02/26 11:42:28 kls Exp $
+ * $Id: menu.c 2.82.1.9 2015/01/13 09:52:59 kls Exp $
  */
 
 #include "menu.h"
@@ -4743,7 +4743,10 @@
     case kOk:
          if (timeSearchPos > 0) {
             Seconds = min(Total - STAY_SECONDS_OFF_END, Seconds);
-            Goto(SecondsToFrames(Seconds, FramesPerSecond()), Key == kDown || 
Key == kPause || Key == kOk);
+            bool Still = Key == kDown || Key == kPause || Key == kOk;
+            Goto(SecondsToFrames(Seconds, FramesPerSecond()), Still);
+            if (!Still)
+               Play();
             }
          timeSearchActive = false;
          break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/recording.c new/vdr-2.0.7/recording.c
--- old/vdr-2.0.6/recording.c   2014-03-16 12:03:18.000000000 +0100
+++ new/vdr-2.0.7/recording.c   2015-01-17 14:50:38.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: recording.c 2.91.1.7 2014/03/16 11:03:18 kls Exp $
+ * $Id: recording.c 2.91.1.9 2015/01/17 13:50:38 kls Exp $
  */
 
 #include "recording.h"
@@ -63,6 +63,7 @@
 #define REMOVELATENCY      10 // seconds to wait until next check after 
removing a file
 #define MARKSUPDATEDELTA   10 // seconds between checks for updating editing 
marks
 #define MININDEXAGE      3600 // seconds before an index file is considered no 
longer to be written
+#define MAXREMOVETIME      10 // seconds after which to return from removing 
deleted recordings
 
 #define MAX_LINK_LEVEL  6
 
@@ -93,11 +94,16 @@
   // Make sure only one instance of VDR does this:
   cLockFile LockFile(VideoDirectory);
   if (LockFile.Lock()) {
+     time_t StartTime = time(NULL);
      bool deleted = false;
      cThreadLock DeletedRecordingsLock(&DeletedRecordings);
      for (cRecording *r = DeletedRecordings.First(); r; ) {
          if (cIoThrottle::Engaged())
             return;
+         if (time(NULL) - StartTime > MAXREMOVETIME)
+            return; // don't stay here too long
+         if (cRemote::HasKeys())
+            return; // react immediately on user input
          if (r->Deleted() && time(NULL) - r->Deleted() > DELETEDLIFETIME) {
             cRecording *next = DeletedRecordings.Next(r);
             r->Remove();
@@ -1740,6 +1746,7 @@
   off_t FileSize = 0;
   off_t FrameOffset = -1;
   Skins.QueueMessage(mtInfo, tr("Regenerating index file"));
+  bool Stuffed = false;
   while (Running()) {
         // Rewind input file:
         if (Rewind) {
@@ -1803,10 +1810,25 @@
         else if (ReplayFile) {
            int Result = Buffer.Read(ReplayFile, BufferChunks);
            if (Result == 0) { // EOF
-              ReplayFile = FileName.NextFile();
-              FileSize = 0;
-              FrameOffset = -1;
-              Buffer.Clear();
+              if (Buffer.Available() > 0 && !Stuffed) {
+                 // So the last call to Buffer.Get() returned NULL, but there 
is still
+                 // data in the buffer, and we're at the end of the current TS 
file.
+                 // The remaining data in the buffer is less than what's 
needed for the
+                 // frame detector to analyze frames, so we need to put some 
stuffing
+                 // packets into the buffer to flush out the rest of the data 
(otherwise
+                 // any frames within the remaining data would not be seen 
here):
+                 uchar StuffingPacket[TS_SIZE] = { TS_SYNC_BYTE, 0xFF };
+                 for (int i = 0; i <= MIN_TS_PACKETS_FOR_FRAME_DETECTOR; i++)
+                     Buffer.Put(StuffingPacket, sizeof(StuffingPacket));
+                 Stuffed = true;
+                 }
+              else {
+                 ReplayFile = FileName.NextFile();
+                 FileSize = 0;
+                 FrameOffset = -1;
+                 Buffer.Clear();
+                 Stuffed = false;
+                 }
               }
            }
         // Recording has been processed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vdr-2.0.6/remux.c new/vdr-2.0.7/remux.c
--- old/vdr-2.0.6/remux.c       2014-03-08 16:10:24.000000000 +0100
+++ new/vdr-2.0.7/remux.c       2014-04-13 15:59:21.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: remux.c 2.75.1.5 2014/03/08 15:10:24 kls Exp $
+ * $Id: remux.c 2.75.1.6 2014/04/13 13:59:21 kls Exp $
  */
 
 #include "remux.h"
@@ -1511,7 +1511,12 @@
                        for (int i = 0; i < numPtsValues; i++)
                            ptsValues[i] = ptsValues[i + 1] - ptsValues[i];
                        qsort(ptsValues, numPtsValues, sizeof(uint32_t), 
CmpUint32);
-                       uint32_t Delta = ptsValues[0] / (framesPerPayloadUnit + 
 parser->IFrameTemporalReferenceOffset());
+                       int Div = framesPerPayloadUnit;
+                       if (framesPerPayloadUnit > 1)
+                          Div += parser->IFrameTemporalReferenceOffset();
+                       if (Div <= 0)
+                          Div = 1;
+                       uint32_t Delta = ptsValues[0] / Div;
                        // determine frame info:
                        if (isVideo) {
                           if (abs(Delta - 3600) <= 1)

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to