summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2001-06-17 02:22:30 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2001-06-17 02:22:30 +0000
commit3bb197c23554eb7b5ea6803a433bbca52fe273cb (patch)
tree75c00829293930b851b315ee824f3eebc3b474e6 /src
parent2f6294830bb923aaebbfff89357e74c690596d5f (diff)
downloadxine-lib-3bb197c23554eb7b5ea6803a433bbca52fe273cb.tar.gz
xine-lib-3bb197c23554eb7b5ea6803a433bbca52fe273cb.tar.bz2
back to itimer for time resolution
CVS patchset: 198 CVS date: 2001/06/17 02:22:30
Diffstat (limited to 'src')
-rw-r--r--src/xine-engine/video_out.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index 8ccdd3f11..22dd0fe81 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/video_out.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out.c,v 1.22 2001/06/17 01:04:38 guenter Exp $
+ * $Id: video_out.c,v 1.23 2001/06/17 02:22:30 guenter Exp $
*
*/
@@ -114,7 +114,7 @@ static vo_frame_t *vo_remove_from_img_buf_queue (img_buf_fifo_t *queue) {
return img;
}
-/*
+
static void vo_set_timer (uint32_t video_step) {
struct itimerval tval;
@@ -133,7 +133,7 @@ void video_timer_handler (int hubba) {
signal (SIGALRM, video_timer_handler);
}
-*/
+
static void *video_out_loop (void *this_gen) {
uint32_t cur_pts;
@@ -154,35 +154,37 @@ static void *video_out_loop (void *this_gen) {
pthread_sigmask(SIG_BLOCK, &vo_mask, NULL);
*/
- /*
+
sigemptyset(&vo_mask);
sigaddset(&vo_mask, SIGALRM);
if (sigprocmask (SIG_UNBLOCK, &vo_mask, NULL)) {
printf ("video_out: sigprocmask failed.\n");
}
signal (SIGALRM, video_timer_handler);
- */
+
video_step = this->metronom->get_video_rate (this->metronom);
- ts.tv_sec = 0;
- ts.tv_nsec = video_step * 10000 / 9;
+ /*
+ ts.tv_sec = 0;
+ ts.tv_nsec = video_step * 2000 / 9;
+ */
- /* vo_set_timer (video_step); */
+ vo_set_timer (video_step);
while (this->video_loop_running) {
/* sigwait(&vo_mask, &dummysignum); */ /* wait for next timer tick */
- /* pause (); */
- nanosleep (&ts, NULL);
+ pause ();
+ /* nanosleep (&ts, NULL); */
video_step_new = this->metronom->get_video_rate (this->metronom);
if (video_step_new != video_step) {
video_step = video_step_new;
- /* vo_set_timer (video_step); */
- ts.tv_nsec = video_step * 10000 / 9;
+ vo_set_timer (video_step);
+ /* ts.tv_nsec = video_step * 2000 / 9; */
}
pts_absdiff = 1000000;