For some reason the saa7115 VBI registers were no longer setup when starting
the passthrough mode, so no CC or WSS signals where passed on. This has been
reinstated.
The WSS signal is now always on in TV-out when using a 50 Hz system. At least
my TV had problems when this signal was turned off and on again during a
channel change. In about 10-20% of the cases it wouldn't switch to
widescreen. So now it is simply always on (except for NTSC which doesn't
support it anyway) and it seems to work fine.
Regards,
Hans
diff -ru ivtv/driver/ivtv-streams.c ivtv-0.3.7b/driver/ivtv-streams.c
--- ivtv/driver/ivtv-streams.c 2005-07-12 20:41:01.000000000 +0200
+++ ivtv-0.3.7b/driver/ivtv-streams.c 2005-08-07 21:14:05.000000000 +0200
@@ -653,7 +653,10 @@
up(&yuv_stream->mlock);
}
- /* Start Passthrough Mode */
+ /* Setup the sliced VBI saa7115 registers */
+ itv->card->video_dec_func(itv, DECODER_SET_VBI, &itv->vbi_passthrough);
+
+ /* Start Passthrough Mode */
x = ivtv_vapi(itv, IVTV_API_BEGIN_CAPTURE, 2, 2, 11);
if (x)
diff -ru ivtv/driver/ivtv-video.c ivtv-0.3.7b/driver/ivtv-video.c
--- ivtv/driver/ivtv-video.c 2005-03-31 17:44:15.000000000 +0200
+++ ivtv-0.3.7b/driver/ivtv-video.c 2005-08-07 21:23:08.000000000 +0200
@@ -53,6 +53,15 @@
void ivtv_set_wss(struct ivtv *itv, int enabled, int mode)
{
if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) {
+ /* When using a 50 Hz system, always turn on the
+ wide screen signal with 4x3 ratio as the default.
+ Turning this signal on and off can confuse certain
+ TVs. As far as I can tell there is no reason not to
+ transmit this signal. */
+ if ((itv->std & V4L2_STD_625_50) && !enabled) {
+ enabled = 1;
+ mode = SAA7127_WSS_MODE_4_3_FULL_FORMAT;
+ }
ivtv_saa7127(itv, ENCODER_SET_WSS_MODE, &mode);
ivtv_saa7127(itv, ENCODER_ENABLE_WSS, &enabled);
}