[mythtv-users] How to enable HW MPEG Encoder in Mythtv

Tony Sauri hoiho.nz at gmail.com
Fri Mar 23 10:02:04 UTC 2012


I am running a mythbuntu 11.10 distribution with the following version of 
mythtv:
	mythbackend version: fixes/0.24 [v0.24.1-80-g1de0431] www.mythtv.org

I have a Hauppauge HVR1300 capture card which has 3 logical capture devices:

a) A frame grabber at /dev/video0 	Driver: cx8800
b) An MPEG HW encoder at /dev/video1	Driver:	cx88_blackbird
c) A DVB-T capture device at /dev/dvb/adapter0/frontend0
					Driver:	cx88_bvb

AN extract of Dnesg showing the initialisation of the card follows:

[    8.877663] cx88/0: cx2388x v4l2 driver version 0.0.8 loaded
[    8.877772] cx8800 0000:00:0d.0: enabling device (0014 -> 0016)
[    8.877819] cx8800 0000:00:0d.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    8.917050] cx88[0]: subsystem: 0070:9600, board: Hauppauge WinTV-HVR1300 
DVB-T/Hybrid MPEG Encoder [card=56,autodetected], frontend(s): 1
[    8.917061] cx88[0]: TV tuner type 63, Radio tuner type -1
[    8.981378] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.8 loaded
[    9.039271] cx88[0]: i2c init: enabling analog demod on HVR1300/3000/4000 
tuner
[    9.844156] cx88[0]: hauppauge eeprom: model=96559
[    9.918354] cx88[0]/0: found at 0000:00:0d.0, rev: 5, irq: 16, latency: 32, 
mmio: 0xf5000000
[   10.108518] wm8775 1-001b: chip found @ 0x36 (cx88[0])
[   10.124046] cx88[0]/0: registered device video0 [v4l2]
[   10.124264] cx88[0]/0: registered device vbi0
[   10.124440] cx88[0]/0: registered device radio0
[   10.124604] cx88[0]/2: cx2388x 8802 Driver Manager
[   10.124630] cx88-mpeg driver manager 0000:00:0d.2: enabling device (0014 -> 
0016)
[   10.124647] cx88-mpeg driver manager 0000:00:0d.2: PCI INT A -> GSI 16 
(level, low) -> IRQ 16
[   10.124659] cx88[0]/2: found at 0000:00:0d.2, rev: 5, irq: 16, latency: 32, 
mmio: 0xf3000000
[   10.124915] cx88_audio 0000:00:0d.1: enabling device (0014 -> 0016)
[   10.124924] cx88_audio 0000:00:0d.1: PCI INT A -> GSI 16 (level, low) -> 
IRQ 16
[   10.124975] cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
[   10.654488] cx88/2: cx2388x dvb driver version 0.0.8 loaded
[   10.654498] cx88/2: registering cx8802 driver, type: dvb access: shared
[   10.654506] cx88[0]/2: subsystem: 0070:9600, board: Hauppauge WinTV-HVR1300 
DVB-T/Hybrid MPEG Encoder [card=56]
[   10.654514] cx88[0]/2: cx2388x based DVB/ATSC card
[   10.654518] cx8802_alloc_frontends() allocating 1 frontend(s)
[   10.859527] DVB: registering new adapter (cx88[0])
[   10.912343] cx88/2: registering cx8802 driver, type: blackbird access: 
shared
[   10.912351] cx88[0]/2: subsystem: 0070:9600, board: Hauppauge WinTV-HVR1300 
DVB-T/Hybrid MPEG Encoder [card=56]
[   10.912361] cx88[0]/2: cx23416 based mpeg encoder (blackbird reference 
design)
[   10.912584] cx88[0]/2-bb: Firmware and/or mailbox pointer not initialized 
or corrupted
[   13.294976] cx88[0]/2-bb: Firmware upload successful.
[   13.301564] cx88[0]/2-bb: Firmware version is 0x02060039
[   13.316110] cx88[0]/2: registered device video1 [mpeg]


I have tested the hardware on this system outside of the mythtv environment 
and each of the components works flawlessly except for 1 cosmetic(?) bug:

The cx88_blackbird driver or the v4l2-ctl userspace utility fails to return 
the correct result when querying the input source for /dev/video1:

tartarus at locarno:~$ v4l2-ctl -d /dev/video1 -I
Video input : 0 (Television)
tartarus at locarno:~$ v4l2-ctl -d /dev/video1 -i 1
Video input set to 1 (Composite1)
tartarus at locarno:~$ v4l2-ctl -d /dev/video1 -I
Video input : 0 (Television)
tartarus at locarno:~$ v4l2-ctl -d /dev/video1 -i 2
Video input set to 2 (S-Video)
tartarus at locarno:~$ v4l2-ctl -d /dev/video1 -I
Video input : 0 (Television)
tartarus at locarno:~$

ie  It doesnt matter what the input device is set to it always reports 
Televisin when queried.

I say this is possibly cosmetic because the driver sets up the correct input 
device and the correct or expected stream is outpit on /dev/video1. 

However when I try to configure the card in myth-setup the /dev/video0 and 
the /dev/dvb/adapter0 devices are set up correctly but when I try and 
configure the /dev/video1 device I am prevented from choosing a hardware MHEG 
encoder device because this is not an IVTV device.  I can only take the V4L 
analogue device option and everything becomes very broken when I try and 
record a programme on the device.

In essence the system tries to setup the NVR module to record a frame grabbibg 
operation but then falls apart when presented with an MPEG encoded stream.

Is there some fundamental part of this puzzle I am overlooking that can make 
the MPEG encoder work in my environment or am I facing a point of time 
incompatability caused by feature misalignment in the V4L, V4L2, IVTV, Mythtv 
projects?

Any thoughts would be appreciated

Regards

Tony Sauri   


More information about the mythtv-users mailing list