it seems that my mails to Hans do not arrive, so I post it here now:

When you load ivtv, you get a green screen on the tv-out of a PVR350. The 
green screen does not disappear until you actually use the decoder 
(/dev/video16) or load ivtvfb.

When you load ivtvfb, it automatically loads ivtv. In this case, there is only 
a short green flashing as ivtvfb sets the screen blank (black).

This behavior of the driver was introduced with 
http://linuxtv.org/hg/v4l-dvb/rev/8c953a1342bf

The green screen happens because the cx23415 isn't sending any data to the 
saa7127 until the framebuffer is initialized or an MPEG is played back

The attached patch fixes the green screen. It disables the saa7127 video 
output immidiately after initializing it, and enables it as soon as it is 
used. 
diff -ur ivtv-orig/ivtv-driver.c ivtv/ivtv-driver.c
--- ivtv-orig/ivtv-driver.c	2008-09-08 23:01:33.000000000 +0200
+++ ivtv/ivtv-driver.c	2008-09-09 12:17:14.000000000 +0200
@@ -1215,6 +1215,7 @@
 
 	if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) {
 		ivtv_call_i2c_clients(itv, VIDIOC_INT_S_STD_OUTPUT, &itv->std);
+		ivtv_call_i2c_clients(itv, VIDIOC_STREAMOFF, NULL);
 	}
 
 	/* clear interrupt mask, effectively disabling interrupts */
@@ -1334,6 +1335,7 @@
 	ivtv_s_frequency(NULL, &fh, &vf);
 
 	if (itv->card->v4l2_capabilities & V4L2_CAP_VIDEO_OUTPUT) {
+		ivtv_call_i2c_clients(itv, VIDIOC_STREAMON, NULL);
 		ivtv_init_mpeg_decoder(itv);
 	}
 	ivtv_s_std(NULL, &fh, &itv->tuner_std);
@@ -1370,6 +1372,9 @@
 
 		/* Stop all decoding */
 		IVTV_DEBUG_INFO("Stopping decoding\n");
+		if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) {
+			ivtv_call_i2c_clients(itv, VIDIOC_STREAMOFF, NULL);
+			}
 		if (atomic_read(&itv->decoding) > 0) {
 			int type;
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to