summaryrefslogtreecommitdiff
path: root/multimedia/xdvshow
diff options
context:
space:
mode:
authorHidetoshi Shimokawa <simokawa@FreeBSD.org>2003-08-18 12:06:55 +0000
committerHidetoshi Shimokawa <simokawa@FreeBSD.org>2003-08-18 12:06:55 +0000
commit118461cdecb1f58fa248c0a1129b383d42971cc8 (patch)
tree2e17edf230278d0a3c15fada60b0fed651c2d861 /multimedia/xdvshow
parentUpdate to 20030726 (diff)
xdvshow uses evil busy loop in the decoding routine and it doesn't work
as expected with some thread libraries. For an adhoc workaround for this problem, insert usleep() in the loop to force context switch. The original code should be rewritten using a conditional variable.
Notes
Notes: svn path=/head/; revision=87196
Diffstat (limited to 'multimedia/xdvshow')
-rw-r--r--multimedia/xdvshow/Makefile1
-rw-r--r--multimedia/xdvshow/files/patch-src::xdvshow-shm.c18
2 files changed, 19 insertions, 0 deletions
diff --git a/multimedia/xdvshow/Makefile b/multimedia/xdvshow/Makefile
index 6e80ebc3ac59..a9688a4aaee5 100644
--- a/multimedia/xdvshow/Makefile
+++ b/multimedia/xdvshow/Makefile
@@ -7,6 +7,7 @@
PORTNAME= xdvshow
PORTVERSION= 00.2002.03.16
+PORTREVISION= 1
CATEGORIES= multimedia
MASTER_SITES= http://www.sfc.wide.ad.jp/DVTS/software/xdvshow/
DISTNAME= ${PORTNAME}
diff --git a/multimedia/xdvshow/files/patch-src::xdvshow-shm.c b/multimedia/xdvshow/files/patch-src::xdvshow-shm.c
new file mode 100644
index 000000000000..5dc8c3efc302
--- /dev/null
+++ b/multimedia/xdvshow/files/patch-src::xdvshow-shm.c
@@ -0,0 +1,18 @@
+--- src/xdvshow-shm.c.orig Wed May 15 21:14:42 2002
++++ src/xdvshow-shm.c Mon Aug 18 19:53:49 2003
+@@ -213,6 +213,7 @@
+ _xdvshow_shm.shm_frame->frame_buf->lock = DVFRAME_COPYING;
+ break;
+ }
++ usleep(1);
+ }
+
+ *dvframe = _xdvshow_shm.shm_frame->frame_buf->data;
+@@ -238,6 +239,7 @@
+ _xdvshow_shm.audio_shm_frame->frame_buf->lock = DVFRAME_COPYING;
+ break;
+ }
++ usleep(1);
+ }
+
+ *audioframe = _xdvshow_shm.audio_shm_frame->frame_buf->data;