svn commit: r314671 - in head/multimedia/vdr: . files
Juergen Lock
nox at FreeBSD.org
Tue Mar 19 18:03:03 UTC 2013
Author: nox
Date: Tue Mar 19 18:03:02 2013
New Revision: 314671
URL: http://svnweb.freebsd.org/changeset/ports/314671
Log:
- Add fix for crashes when cutting. [1]
- Convert Makefile header.
- Bump PORTREVISION.
Reported by: gb+ML-2011 at derbrauer.homelinux.net (Gerhard Brauer) [1]
Added:
head/multimedia/vdr/files/patch-z-cutter.c (contents, props changed)
Modified:
head/multimedia/vdr/Makefile
Modified: head/multimedia/vdr/Makefile
==============================================================================
--- head/multimedia/vdr/Makefile Tue Mar 19 18:00:29 2013 (r314670)
+++ head/multimedia/vdr/Makefile Tue Mar 19 18:03:02 2013 (r314671)
@@ -1,13 +1,9 @@
-# New ports collection makefile for: vdr
-# Date created: Wed Apr 14 18:11:42 CEST 2010
-# Whom: Juergen Lock <nox at freebsd.org>
-#
+# Created by: Juergen Lock <nox at freebsd.org>
# $FreeBSD$
-#
PORTNAME= vdr
PORTVERSION= 1.7.29
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= multimedia
MASTER_SITES= ftp://ftp.tvdr.de/vdr/Developer/
Added: head/multimedia/vdr/files/patch-z-cutter.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/vdr/files/patch-z-cutter.c Tue Mar 19 18:03:02 2013 (r314671)
@@ -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;
More information about the svn-ports-all
mailing list