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