aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2013-03-19 18:03:02 +0000
committerJuergen Lock <nox@FreeBSD.org>2013-03-19 18:03:02 +0000
commite0a98cf5c88ae23b500820b13b7a5c626c9780b4 (patch)
tree3b8f1409b238aed554ab26efa394f0c820e0ec72 /multimedia/vdr
parentc2ecbb4d3b50b4cf1719b2a6fbedc39afa49fde5 (diff)
downloadports-e0a98cf5c88ae23b500820b13b7a5c626c9780b4.tar.gz
ports-e0a98cf5c88ae23b500820b13b7a5c626c9780b4.zip
- Add fix for crashes when cutting. [1]
- Convert Makefile header. - Bump PORTREVISION. Reported by: gb+ML-2011@derbrauer.homelinux.net (Gerhard Brauer) [1]
Notes
Notes: svn path=/head/; revision=314671
Diffstat (limited to 'multimedia/vdr')
-rw-r--r--multimedia/vdr/Makefile8
-rw-r--r--multimedia/vdr/files/patch-z-cutter.c61
2 files changed, 63 insertions, 6 deletions
diff --git a/multimedia/vdr/Makefile b/multimedia/vdr/Makefile
index a33986730e30..33625c2d90ba 100644
--- a/multimedia/vdr/Makefile
+++ b/multimedia/vdr/Makefile
@@ -1,13 +1,9 @@
-# New ports collection makefile for: vdr
-# Date created: Wed Apr 14 18:11:42 CEST 2010
-# Whom: Juergen Lock <nox@freebsd.org>
-#
+# Created by: Juergen Lock <nox@freebsd.org>
# $FreeBSD$
-#
PORTNAME= vdr
PORTVERSION= 1.7.29
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= multimedia
MASTER_SITES= ftp://ftp.tvdr.de/vdr/Developer/
diff --git a/multimedia/vdr/files/patch-z-cutter.c b/multimedia/vdr/files/patch-z-cutter.c
new file mode 100644
index 000000000000..39a4a731af12
--- /dev/null
+++ b/multimedia/vdr/files/patch-z-cutter.c
@@ -0,0 +1,61 @@
+--- cutter.c.orig
++++ cutter.c
+@@ -83,7 +83,18 @@ void cCuttingThread::Action(void)
+ int LastIFrame = 0;
+ toMarks.Add(0);
+ toMarks.Save();
++#ifdef __FreeBSD__
++ // XXX save thread stack space
++ uchar *buffer = MALLOC(uchar, MAXFRAMESIZE);
++ uchar *buffer2 = MALLOC(uchar, MAXFRAMESIZE);
++ if (buffer == NULL || buffer2 == NULL) {
++ free(buffer);
++ error = "malloc";
++ return;
++ }
++#else
+ uchar buffer[MAXFRAMESIZE], buffer2[MAXFRAMESIZE];
++#endif
+ int Length2;
+ bool CheckForSeamlessStream = false;
+ bool LastMark = false;
+@@ -108,7 +119,7 @@ void cCuttingThread::Action(void)
+ CurrentFileNumber = FileNumber;
+ }
+ if (fromFile) {
+- int len = ReadFrame(fromFile, buffer, Length, sizeof(buffer));
++ int len = ReadFrame(fromFile, buffer, Length, MAXFRAMESIZE);
+ if (len < 0) {
+ error = "ReadFrame";
+ break;
+@@ -193,7 +204,7 @@ void cCuttingThread::Action(void)
+ if (FileNumber != CurrentFileNumber)
+ fromFile = fromFileName->SetOffset(FileNumber, FileOffset);
+ if (fromFile) {
+- int len = ReadFrame(fromFile, buffer2, Length2, sizeof(buffer2));
++ int len = ReadFrame(fromFile, buffer2, Length2, MAXFRAMESIZE);
+ if (len >= 0 && len == Length2)
+ CheckForSeamlessStream = true;
+ }
+@@ -216,6 +227,10 @@ void cCuttingThread::Action(void)
+ }
+ }
+ Recordings.TouchUpdate();
++#ifdef __FreeBSD__
++ free(buffer);
++ free(buffer2);
++#endif
+ }
+ else
+ esyslog("no editing marks found!");
+--- thread.c.orig
++++ thread.c
+@@ -242,7 +242,7 @@ void cThread::SetPriority(int Priority)
+ void cThread::SetIOPriority(int Priority)
+ {
+ #ifdef __FreeBSD__
+- esyslog("ERROR: syscall(SYS_ioprio_set ...) unsupported on FreeBSD");
++ // esyslog("ERROR: syscall(SYS_ioprio_set ...) unsupported on FreeBSD");
+ #else
+ if (syscall(SYS_ioprio_set, 1, 0, (Priority & 0xff) | (2 << 13)) < 0) // best effort class
+ LOG_ERROR;