diff options
author | wm4 <wm4@nowhere> | 2014-12-26 14:18:48 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-12-26 14:18:48 +0100 |
commit | 98ba7b44d99a1e2c09646934b30fdc50eb9209d8 (patch) | |
tree | fdbf21d3e104df20aa01a0328b11c71f2c1e9006 /stream | |
parent | db4685ac754868a7d5ea99a19d74252548a50a19 (diff) |
stream_pvr: increase timeout, slightly better error reporting
An attempt to find out what's wrong with issue #1382.
I don't even know why a timeout would be needed; for robustness with
broken devices maybe?
Diffstat (limited to 'stream')
-rw-r--r-- | stream/stream_pvr.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/stream/stream_pvr.c b/stream/stream_pvr.c index c75a9597cd..7acac4a6f5 100644 --- a/stream/stream_pvr.c +++ b/stream/stream_pvr.c @@ -537,8 +537,8 @@ get_v4l2_freq (struct pvr_t *pvr) if (ioctl (pvr->dev_fd, VIDIOC_G_FREQUENCY, &vf) < 0) { - MP_ERR(pvr, "%s can't get frequency %d.\n", - LOG_LEVEL_V4L2, errno); + MP_ERR(pvr, "%s can't get frequency (%s).\n", + LOG_LEVEL_V4L2, mp_strerror(errno)); return -1; } freq = vf.frequency; @@ -1491,10 +1491,15 @@ pvr_stream_read (stream_t *stream, char *buffer, int size) rk = size - pos; - if (poll (pfds, 1, 500) <= 0) + int r = poll(pfds, 1, 5000); + if (r <= 0) { - MP_ERR(pvr, "%s failed with errno %d when reading %d bytes\n", - LOG_LEVEL_PVR, errno, size-pos); + if (r < 0) { + MP_ERR(pvr, "%s failed with '%s' when reading %d bytes\n", + LOG_LEVEL_PVR, mp_strerror(errno), size-pos); + } else { + MP_ERR(pvr, "timeout when trying to read from device\n"); + } break; } |