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.
This commit is contained in:
parent
7fb0c2fd50
commit
118461cdec
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=87196
@ -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}
|
||||
|
18
multimedia/xdvshow/files/patch-src::xdvshow-shm.c
Normal file
18
multimedia/xdvshow/files/patch-src::xdvshow-shm.c
Normal file
@ -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;
|
Loading…
Reference in New Issue
Block a user