summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-03-10 10:30:19 +0100
committerHans Verkuil <hverkuil@xs4all.nl>2007-03-10 10:30:19 +0100
commit2b48db9d0abc9a080707fc51f452820c10eac666 (patch)
treea4b9a8bb4cf716f8086da183fc5f8cadc442664f /linux
parent66f190e4b0941d628ee812ec547e89eeec797307 (diff)
downloadmediapointer-dvb-s2-2b48db9d0abc9a080707fc51f452820c10eac666.tar.gz
mediapointer-dvb-s2-2b48db9d0abc9a080707fc51f452820c10eac666.tar.bz2
Set vsync_field correctly in ivtv.
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/video/ivtv/ivtv-ioctl.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/linux/drivers/media/video/ivtv/ivtv-ioctl.c b/linux/drivers/media/video/ivtv/ivtv-ioctl.c
index f8107e337..8c99b8024 100644
--- a/linux/drivers/media/video/ivtv/ivtv-ioctl.c
+++ b/linux/drivers/media/video/ivtv/ivtv-ioctl.c
@@ -1326,9 +1326,13 @@ static int ivtv_ivtv_ioctls(struct file *filp, unsigned int cmd, void *arg)
ev->type = VIDEO_EVENT_DECODER_STOPPED;
else if (test_and_clear_bit(IVTV_F_I_EV_VSYNC, &itv->i_flags)) {
ev->type = VIDEO_EVENT_VSYNC;
- ev->timestamp = test_bit(IVTV_F_I_EV_VSYNC_FIELD, &itv->i_flags) ?
- 1 : 0;
- clear_bit(IVTV_F_I_EV_VSYNC_ENABLED, &itv->i_flags);
+ ev->u.vsync_field = test_bit(IVTV_F_I_EV_VSYNC_FIELD, &itv->i_flags) ?
+ VIDEO_VSYNC_FIELD_ODD : VIDEO_VSYNC_FIELD_EVEN;
+ if (itv->output_mode == OUT_UDMA_YUV &&
+ (itv->yuv_info.lace_mode & IVTV_YUV_MODE_MASK) ==
+ IVTV_YUV_MODE_PROGRESSIVE) {
+ ev->u.vsync_field = VIDEO_VSYNC_FIELD_PROGRESSIVE;
+ }
}
if (ev->type)
return 0;