[ivtv-devel] PVR150 Tinny/fuzzy audio w/ patch?

Argus pthorn-ivtvd at styx2002.no-ip.org
Mon Nov 30 19:18:23 CET 2009

Like many, I've been experiencing occassional tinny audio when
recording using a Hauppauge PVR150 since upgrading from kernel 2.6.22
to kernel 2.6.28.

After poking about, I found that if I selectively reversed part of a 
particular checkin between 2.6.23 and 2.6.24
    (git: 3562c43be8cfd6e300508d7c33acebf3369eacd3)
the issue disappeared for me. See patch below.

Using the patch attached below, I've been recording steadily for a 
month or so with zero incidents of tinny audio, whereas before the 
patch I was experiencing corruption approximately 1 in 10 recordings.

I have no idea why this section of code appears to be critical, so
any thoughts would be appreciated. At one point, I believed that 
making the 300ms ivtv_msleep_timeout after the STREAMOFF function 
uninterruptable might also fix the problem, but my cursory initial 
attempts at changing the "intr" parameter to it still resulted in
occassional audio artifacts.

I'm hoping that this may assist in any ongoing ivtv debugging efforts
for the PVR150 cards.

  - Argus

--- drivers/media/video/ivtv/ivtv-streams.c.original	2008-12-24 18:26:37.000000000 -0500
+++ drivers/media/video/ivtv/ivtv-streams.c	2009-10-28 13:46:10.000000000 -0400
@@ -575,15 +575,21 @@
  		ivtv_set_irq_mask(itv, IVTV_IRQ_MASK_CAPTURE);

  		clear_bit(IVTV_F_I_EOS, &itv->i_flags);

  		/* Initialize Digitizer for Capture */
+		if (itv->card->type != IVTV_CARD_PVR_150) {
  		itv->video_dec_func(itv, VIDIOC_STREAMOFF, NULL);
  		ivtv_msleep_timeout(300, 1);
+		}
  		ivtv_vapi(itv, CX2341X_ENC_INITIALIZE_INPUT, 0);
+		if (itv->card->type != IVTV_CARD_PVR_150) {
  		itv->video_dec_func(itv, VIDIOC_STREAMON, NULL);
+	}

  	/* begin_capture */
  	if (ivtv_vapi(itv, CX2341X_ENC_START_CAPTURE, 2, captype, subtype))
  		IVTV_DEBUG_WARN( "Error starting capture!\n");


More information about the ivtv-devel mailing list