[mythtv] Mismatched between ivtv ivtv-031118A-0.12 and MythTV current CVS

Robert J. Clark clark at exiter.com
Sun Nov 23 18:18:22 EST 2003


I was having the oddest problem with my PVR-350. I could get everything
working except getting the video and OSD on the TV at the same time.

I noticed this error in the logs: 

    "IVTVFB_IOCTL_GET_STATE: invalid argument"

I tracked problem down to a mismatch between the current CVS version of
MythTV libs/libmythtv/ivtv-ext-api.h and ivtv-031118A-0.12

Specifically, MythTV uses:

#define IVTVFB_IOCTL_GET_STATE   _IOR('@', 1, 
                                      struct ivtvfb_ioctl_state_info)

and ivtv uses

#define IVTVFB_IOCTL_GET_STATE   _IOR('@', 1, 
                                 sizeof(struct ivtvfb_ioctl_state_info))

I am not sure which one is correct, but when I changed ivtv the remove
the sizeof calls (my version of /usr/src/linux/asm-i386/ioctl.h adds
them automatically) things started working much better. I was able to
watch live TV, playback recordings, and get the on-screen menus all
displayed to the TV.

I am attaching the patch to ivtv, but I don't know which of MythTV or
IVTV should change.

- Rob
GnuPG key: <http://www.exiter.com/gnupg/clark.asc> Key ID: 0xB13B653B
( 6:18pm up 2 days 15:40, 6 users, load average: 1.08, 1.22, 1.15 )

-------------- next part --------------
--- ivtv.h.orig	2003-11-23 17:52:27.000000000 -0500
+++ ivtv.h	2003-11-23 17:52:47.000000000 -0500
@@ -370,13 +370,13 @@
   int y1;
-#define IVTVFB_IOCTL_GET_STATE          _IOR('@', 1, sizeof(struct ivtvfb_ioctl_state_info))
-#define IVTVFB_IOCTL_SET_STATE          _IOW('@', 2, sizeof(struct ivtvfb_ioctl_state_info))
-#define IVTVFB_IOCTL_PREP_FRAME         _IOW('@', 3, sizeof(struct ivtvfb_ioctl_dma_host_to_ivtv_args))
-#define IVTVFB_IOCTL_BLT_COPY           _IOW('@', 4, sizeof(struct ivtvfb_ioctl_blt_copy_args))
-#define IVTVFB_IOCTL_GET_ACTIVE_BUFFER  _IOR('@', 5, sizeof(struct ivtv_osd_coords))
-#define IVTVFB_IOCTL_SET_ACTIVE_BUFFER  _IOW('@', 6, sizeof(struct ivtv_osd_coords))
-#define IVTVFB_IOCTL_GET_FRAME_BUFFER   _IOR('@', 7, sizeof(struct ivtvfb_ioctl_get_frame_buffer))
+#define IVTVFB_IOCTL_GET_STATE          _IOR('@', 1, struct ivtvfb_ioctl_state_info)
+#define IVTVFB_IOCTL_SET_STATE          _IOW('@', 2, struct ivtvfb_ioctl_state_info)
+#define IVTVFB_IOCTL_PREP_FRAME         _IOW('@', 3, struct ivtvfb_ioctl_dma_host_to_ivtv_args)
+#define IVTVFB_IOCTL_BLT_COPY           _IOW('@', 4, struct ivtvfb_ioctl_blt_copy_args)
+#define IVTVFB_IOCTL_GET_ACTIVE_BUFFER  _IOR('@', 5, struct ivtv_osd_coords)
+#define IVTVFB_IOCTL_SET_ACTIVE_BUFFER  _IOW('@', 6, struct ivtv_osd_coords)
+#define IVTVFB_IOCTL_GET_FRAME_BUFFER   _IOR('@', 7, struct ivtvfb_ioctl_get_frame_buffer)
 #define IVTVFB_STATUS_ENABLED           (1 << 0)
 #define IVTVFB_STATUS_GLOBAL_ALPHA      (1 << 1)

More information about the mythtv-dev mailing list