diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-24 13:56:43 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-24 13:56:43 +0000 |
commit | ffde90d47e0a721ed541a456c58cc913283eacc8 (patch) | |
tree | 82bdb7096ecbaf643b0ec909a2e88a4fe25866dd /libmpdemux | |
parent | 6cbefb8b112e40c837c453fe78b63892878ca283 (diff) | |
download | mpv-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
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/tvi_v4l.c | 8 |
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", |