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:
Hidetoshi Shimokawa 2003-08-18 12:06:55 +00:00
parent 7fb0c2fd50
commit 118461cdec
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=87196
2 changed files with 19 additions and 0 deletions

View File

@ -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}

View 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;