On Wednesday 02 February 2005 23:02, Isaac Richards wrote:
> I don't see the point of this.   The code as it is right now is:
[snip]
> It's doing a set first, then doing a get to get the actual values it was
> set to.  You're just replacing that get with a second set.

You are fully right. More luck this time...

In parallel with the debugging, I used the ivtvctl program to see what is 
exactly done to enable vbi recording (and accidently switched it on:-).
For some reason, the cvs version doesnot generate the magic cookies
'itv0' and 'ITV0' as part of the private stream 1xbd. 
Based on this I concluded that the ivtv settings are not sufficient. It sets 
the VBI mode, but doesnot say it should embed things in the MPEG steam...
In this patch I added IVTV_IOC_S_VBI_EMBED for this.

Martin
Index: ivtv-ext-api.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/ivtv-ext-api.h,v
retrieving revision 1.10
diff -u -u -d -r1.10 ivtv-ext-api.h
--- ivtv-ext-api.h	24 Dec 2004 23:24:07 -0000	1.10
+++ ivtv-ext-api.h	3 Feb 2005 20:45:31 -0000
@@ -66,6 +66,8 @@
 #define IVTV_IOC_DEC_FLUSH     _IOW ('@', 34, int)
 #define IVTV_IOC_S_VBI_MODE    _IOWR('@', 35, struct ivtv_sliced_vbi_format)
 #define IVTV_IOC_G_VBI_MODE    _IOR ('@', 36, struct ivtv_sliced_vbi_format)
+#define IVTV_IOC_S_VBI_EMBED   _IOW ('@', 54, int)
+#define IVTV_IOC_G_VBI_EMBED   _IOR ('@', 55, int)
 
 /* ioctl for MSP_SET_MATRIX will have to be registered */
 #define MSP_SET_MATRIX     _IOW('m',17,struct msp_matrix)
Index: mpegrecorder.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/mpegrecorder.cpp,v
retrieving revision 1.46
diff -u -u -d -r1.46 mpegrecorder.cpp
--- mpegrecorder.cpp	24 Dec 2004 23:24:07 -0000	1.46
+++ mpegrecorder.cpp	3 Feb 2005 20:45:32 -0000
@@ -347,7 +347,8 @@
     if (vbimode) {
         memset(&vbifmt, 0, sizeof(struct ivtv_sliced_vbi_format));
         vbifmt.service_set = (1==vbimode) ? VBI_TYPE_TELETEXT : VBI_TYPE_CC;
-        if (ioctl(chanfd, IVTV_IOC_S_VBI_MODE, &vbifmt) < 0) {
+        if ((ioctl(chanfd, IVTV_IOC_S_VBI_MODE, &vbifmt) < 0)||
+	    (ioctl(chanfd, IVTV_IOC_S_VBI_EMBED, &vbifmt) < 0)) {
             VERBOSE(VB_IMPORTANT, QString("Can't enable VBI recording"));
             perror("vbi");
         }
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to