summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-24 13:56:43 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-24 13:56:43 +0000
commitffde90d47e0a721ed541a456c58cc913283eacc8 (patch)
tree82bdb7096ecbaf643b0ec909a2e88a4fe25866dd
parent6cbefb8b112e40c837c453fe78b63892878ca283 (diff)
downloadmpv-ffde90d47e0a721ed541a456c58cc913283eacc8.tar.bz2
mpv-ffde90d47e0a721ed541a456c58cc913283eacc8.tar.xz
fixed video syncing
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3712 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmpdemux/tvi_v4l.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libmpdemux/tvi_v4l.c b/libmpdemux/tvi_v4l.c
index 428dcbe2f4..fc37a8cc68 100644
--- a/libmpdemux/tvi_v4l.c
+++ b/libmpdemux/tvi_v4l.c
@@ -757,9 +757,11 @@ static int grab_video_frame(priv_t *priv, char *buffer, int len)
mp_msg(MSGT_TV, MSGL_ERR, "ioctl mcapture failed: %s\n", strerror(errno));
return(0);
}
-
- if (ioctl(priv->fd, VIDIOCSYNC, &priv->buf[frame].frame) == -1)
- mp_msg(MSGT_TV, MSGL_ERR, "ioctl sync failed: %s\n", strerror(errno));
+
+ while (ioctl(priv->fd, VIDIOCSYNC, &priv->buf[frame].frame) < 0 &&
+ (errno == EAGAIN || errno == EINTR));
+ mp_dbg(MSGT_TV, MSGL_DBG3, "picture sync failed\n");
+
priv->queue++;
mp_dbg(MSGT_TV, MSGL_DBG3, "mmap: %p + offset: %d => %p\n",