[pvrusb2] Hauppauge HVR-1900 - PAL-Nc, no audio

Dermot Buckley dermot-lists at buckley.ie
Mon Apr 8 16:07:06 CDT 2013


Hi Mike,

Thanks for the response.

On 8 Apr 2013, at 11:43, Mike Isely <isely at isely.net> wrote:
> In times past when I've dealt with bugs involving "no captured audio", 
> the usual suspect was that the pvrusb2 hardware was being told to use 
> the wrong broadcast standard.  It's possible to choose a standard that 
> is "close enough" for, say, video to work but not audio.  There are 
> different modulation standards and frequencies for the embedded audio 
> and if that is set wrong, then of course there will be no audio.
> 
> Making matters somewhat more confusing is that in many cases, the 
> hardware can successfully guess the correct audio configuration even 
> when the wrong standard is set.  So you can get cases where, for 
> example, someone with a 24xxx series device will get working audio using 
> standard "XYZ" while someone else in the same country but using a 29xxx 
> device with the same "XYZ" standard still won't hear any audio :-(

I'm about 98% certain of the broadcast standard I'm setting (PAL-Nc).
Our regular TV (which is both NTSC- and PAL-capable) displays "PAL-N" and "SAP" when changing channels (not very technical I know!), and my testing (included below) would seem to point to PAL-Nc being the correct variation.

To verify, I checked all supported standards as follows:

root at rasptune ~# rmmod pvrusb2
root at rasptune ~# modprobe pvrusb2 debug=1
(waiting a moment for RF tracking filter calibration...)
root at rasptune ~# cd /sys/class/pvrusb2/sn-7836611
root at rasptune:/sys/class/pvrusb2/sn-7836611# echo "PAL-Nc" > ctl_video_standard_mask_active/cur_val
root at rasptune:/sys/class/pvrusb2/sn-7836611# v4l2-ctl --set-freq 163.25
Frequency set to 2612 (163.250000 MHz)
root at rasptune:/sys/class/pvrusb2/sn-7836611# v4l2-ctl --log-status

Status Log:

   [ 9525.734707] pvrusb2: =================  START STATUS CARD #0  =================
   [ 9525.737103] cx25840 0-0044: Video signal:              present
   [ 9525.737124] cx25840 0-0044: Detected format:           PAL-Nc
   [ 9525.737137] cx25840 0-0044: Specified standard:        automatic detection
   [ 9525.737165] cx25840 0-0044: Specified video input:     Composite 7
   [ 9525.737180] cx25840 0-0044: Specified audioclock freq: 48000 Hz
   [ 9525.745622] cx25840 0-0044: Detected audio mode:       forced mode
   [ 9525.745665] cx25840 0-0044: Detected audio standard:   forced audio standard
   [ 9525.745680] cx25840 0-0044: Audio microcontroller:     detecting
   [ 9525.745692] cx25840 0-0044: Configured audio standard: undefined
   [ 9525.745704] cx25840 0-0044: Configured audio mode:     MONO1 (LANGUAGE A/Mono L+R channel for BTSC, EIAJ, A2)
   [ 9525.745715] cx25840 0-0044: Specified audio input:     Tuner (In8)
   [ 9525.745726] cx25840 0-0044: Preferred audio mode:      stereo
   [ 9525.756834] cx25840 0-0044: IR Receiver:
   [ 9525.756866] cx25840 0-0044:       Enabled:                           no
   [ 9525.756878] cx25840 0-0044:       Demodulation from a carrier:       disabled
   [ 9525.756887] cx25840 0-0044:       FIFO:                              disabled
   [ 9525.756912] cx25840 0-0044:       Pulse timers' start/stop trigger:  disabled
   [ 9525.756924] cx25840 0-0044:       FIFO data on pulse timer overflow: overflow marker
   [ 9525.756934] cx25840 0-0044:       FIFO interrupt watermark:          half full or greater
   [ 9525.756943] cx25840 0-0044:       Loopback mode:                     normal receive
   [ 9525.756960] cx25840 0-0044:       Max measurable pulse width:        318144512 us, 318144512000 ns
   [ 9525.756970] cx25840 0-0044:       Low pass filter:                   disabled
   [ 9525.756979] cx25840 0-0044:       Pulse width timer timed-out:       no
   [ 9525.756988] cx25840 0-0044:       Pulse width timer time-out intr:   enabled
   [ 9525.756997] cx25840 0-0044:       FIFO overrun:                      no
   [ 9525.757005] cx25840 0-0044:       FIFO overrun interrupt:            enabled
   [ 9525.757014] cx25840 0-0044:       Busy:                              no
   [ 9525.757034] cx25840 0-0044:       FIFO service requested:            no
   [ 9525.757045] cx25840 0-0044:       FIFO service request interrupt:    enabled
   [ 9525.757054] cx25840 0-0044: IR Transmitter:
   [ 9525.757061] cx25840 0-0044:       Enabled:                           no
   [ 9525.757070] cx25840 0-0044:       Modulation onto a carrier:         disabled
   [ 9525.757079] cx25840 0-0044:       FIFO:                              disabled
   [ 9525.757088] cx25840 0-0044:       FIFO interrupt watermark:          half full or less
   [ 9525.757097] cx25840 0-0044:       Carrier polarity:                  space:noburst mark:burst
   [ 9525.757110] cx25840 0-0044:       Max pulse width:                   318144512 us, 318144512000 ns
   [ 9525.757119] cx25840 0-0044:       Busy:                              no
   [ 9525.757127] cx25840 0-0044:       FIFO service requested:            yes
   [ 9525.757135] cx25840 0-0044:       FIFO service request interrupt:    enabled
   [ 9525.757159] cx25840 0-0044: Brightness: 128
   [ 9525.757179] cx25840 0-0044: Contrast: 68
   [ 9525.757192] cx25840 0-0044: Saturation: 64
   [ 9525.757204] cx25840 0-0044: Hue: 0
   [ 9525.757215] cx25840 0-0044: Volume: 62225
   [ 9525.757227] cx25840 0-0044: Mute: false
   [ 9525.757238] cx25840 0-0044: Balance: 0
   [ 9525.757249] cx25840 0-0044: Bass: 0
   [ 9525.757259] cx25840 0-0044: Treble: 0
   [ 9525.757283] pvrusb2: cx2341x config:
   [ 9525.757299] pvrusb2: Stream: MPEG-2 Program Stream
   [ 9525.757314] pvrusb2: VBI Format: No VBI
   [ 9525.757327] pvrusb2: Video:  720x480, 30 fps
   [ 9525.757342] pvrusb2: Video:  MPEG-2, 4x3, Variable Bitrate, 6000000, Peak 8000000
   [ 9525.757359] pvrusb2: Video:  GOP Size 12, 2 B-Frames, GOP Closure
   [ 9525.757376] pvrusb2: Audio:  48 kHz, MPEG-1/2 Layer II, 224 kbps, Stereo, No Emphasis, No CRC
   [ 9525.757399] pvrusb2: Spatial Filter:  Manual, Luma 1D Horizontal, Chroma 1D Horizontal, 0
   [ 9525.757425] pvrusb2: Temporal Filter: Manual, 8
   [ 9525.757440] pvrusb2: Median Filter:   Off, Luma [0, 255], Chroma [0, 255]
   [ 9525.757458] pvrusb2_a driver: <ok> <init> <connected> <mode=analog>
   [ 9525.757473] pvrusb2_a pipeline: <idle> <configok>
   [ 9525.757490] pvrusb2_a worker: <decode:quiescent> <encode:virgin> <encode:waitok> <usb:stop> <pathway:ok>
   [ 9525.757501] pvrusb2_a state: ready
   [ 9525.757522] pvrusb2_a Hardware supported inputs: television, dtv, composite, s-video; allowed inputs: television, composite, s-video
   [ 9525.757553] pvrusb2_a Bytes streamed=0 URBs: queued=0 idle=0 ready=0 processed=0 failed=0
   [ 9525.757566] pvrusb2_a ir scheme: id=2 Zilog
   [ 9525.757587] pvrusb2_a Associated v4l2-subdev drivers and I2C clients:
   [ 9525.757596] pvrusb2_a   cx25840: cx25840 @ 44
   [ 9525.757605] pvrusb2_a   tuner: tuner @ 42
   [ 9525.757614] pvrusb2: ==================  END STATUS CARD #0  ==================
root at rasptune:/sys/class/pvrusb2/sn-7836611# for std in $(cat ctl_video_standard_mask_available/cur_val); \
do echo $std; echo $std > ctl_video_standard_mask_active/cur_val; \
timeout 10 cat /dev/video0 > /home/pi/test_$std.mpg;  \
done
PAL-B
PAL-B1
PAL-G
PAL-H
PAL-I
PAL-D
PAL-D1
PAL-K
PAL-N
PAL-Nc
SECAM-B
SECAM-D
SECAM-G
SECAM-H
SECAM-K
SECAM-K1
SECAM-L
SECAM-LC
ATSC-8VSB
ATSC-16VSB

I've uploaded all the generated mpegs to http://bone.buckleycomputers.ie/hvr1900pvrusb2/
The only one with valid video is test_PAL-Nc.mpg.  All are silent (but there is a very slight static in PAL-G, PAL-L, SECAM-G, and SECAM-LC). 

> 
> The pvrusb2 driver does not directly program the audio configuration in 
> the capture device.  That job is left to the various chip drivers, e.g. 
> cx25840.ko in your case.  What the pvrusb2 driver does do however is to 
> communicate the chosen standard out to the various chip drivers; then it 
> is up to each chip driver to use that information to create the 
> appropriate local configuration in the hardware.

Do you know if there's a way I can force the cx25840 to use a particular standard?  Looking through cx25840-core.c, there aren't very many of them - it'd be worth trying them all if I knew how.

Also, one very specific question: In pvrusb2-hdw.c a comment mentions that:

// Enable PAL-N for PAL-capable devices.  One user in
// Argentina has encountered this.

Assuming that this is *your* comment - does this mean that someone else has broken this ground before?  Do you know if they were successful?

Once again, appreciate any help you can offer.

Regards

Dermot



More information about the pvrusb2 mailing list