Hauppauge 950Q USB TV tuner is not functioning correctly with Gstreamer on iMX6

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Hauppauge 950Q USB TV tuner is not functioning correctly with Gstreamer on iMX6

Jump to solution
1,885 Views
frodolai
Contributor IV

Hi,

 

I'm working on an iMX6 project that inputs HDTV via USB or mini PCIe TV tuner card. The first TV tuner I got is Hauppauge 950Q. I followed the instruction from our Freescale FAE.

 

==

The instructions on how he enabled the device are below for your reference but wanted to share a couple other comments…

  • used the I.MX6 Quad version only because that is what comes on the Freescale Sabre board
  • the CPU load was high when starting up the device and loading the firmware but very low once the device was up and running, playing back TV.  I also asked him if he thinks there would be any performance concern with using an MX6 Dual and he had no concern.
  • performance using the tuner tied to the I.MX6 Sabre board seemed the same as when plugged into his linux PC.  He was pulling in TV with over the air antenna

 

Here are the implementation details.

I had to enable 3 drivers: Xceive XC5000, Auvitek AU8522, Auvitek AU0828.

 

I used a barebones Linux: no need for a full Ubuntu distribution.

 

Here are the steps:

1)      Build latest LTIB Linux BSP (L3.0.35_4.1.0) with all of gstreamer packages and support

2)      Force LTIB to Configure the Kernel

3)      Within the Kernel Sub-Menu, select:

  1.       Device Drivers à Multimedia support à <*> DVB for Linux
  2.       Device Drivers à Multimedia support à Video capture adapters à <*> Auvitek AU0828 support
  3.       Device Drivers à Multimedia support à Video capture adapters à V4L USB devices à<*> Hauppauge WinTV-PVR USB2 support
  4.       Device Drivers à Multimedia support à Video capture adapters à V4L USB devices à<*> Hauppauge HD PVR support
  5.       Device Drivers à Multimedia support à DVB/ATSC adapters à Customise DVB Frontends à<*> Auvitek AU8522 based

 

This is the gstreamer pipeline I used to play the TV stream on my MX6Q SDP:

 

gst-launch -v dvbsrc frequency=551000000 modulation=7 ! mpegtsdemux program-number=3 ! mpegvideoparse ! queue ! vpudec ! mfw_v4lsink sync=false

 

==

 

I could build new kernel with DVB support and load the 950Q driver/firmware dvb-fe-xc5000-1.6.114.fw without any problem. However, I couldn't get any channel information when I ran w-scan. Nor could I run the gst-launch above to get any output on display.

 

I moved the TV tuner to my Ubuntu box and found it's a newer version which only works with dvb-fe-xc5000c-4.1.30.7.fw. Unfortunately, the 3.0.35_4.1.0 kernel doesn't support this firmware. I tried to port the driver from LinuxTV back to 3.0.35 but the videobuf-core is not compatible. Then, I moved to kernel 3.10.17_1.0.0_beta. I could load the driver/firmware dvb-fe-xc5000c-4.1.30.7.fw and finish channel scan via w-scan but the gst-launch didn't output anything. I attached the w-scan output and the gst-launch messages. Does anyone know how to resolve this issue? Thanks.

 

Below are the gst-inspect results.

 

root@debian-imx6:~# gst-inspect | grep mfw

  1. audiopeq.imx: mfw_audio_pp: audio post equalizer
  2. ipucsc.imx:  mfw_ipucsc: IPU-based video converter

v4lsink.imx: mfw_v4lsink: v4l2 video sink

  1. isink.imx:  mfw_isink: IPU-based video sink

v4lsrc.imx:  mfw_v4lsrc: v4l2 based camera src

 

root@debian-imx6:~# grep mfw_mpeg2decoder /usr/lib/* -nr

Binary file /usr/lib/gstreamer-0.10/libmfw_gst_mpeg2dec.so matches

Binary file /usr/lib/gstreamer-0.10/libmfw_gst_mpeg2dec.a matches

 

root@debian-imx6:/mnt# grep mpeg2dec.imx /usr/lib/* -nR

grep: /usr/lib/arm-linux-gnueabihf/libGLESv2.so: No such file or directory

Binary file /usr/lib/gstreamer-0.10/libmfw_gst_mpeg2dec.so matches

Binary file /usr/lib/gstreamer-0.10/libmfw_gst_mpeg2dec.a matches

 

root@debian-imx6:~# gst-inspect | grep mpeg2

mpeg2dec:  mpeg2dec: mpeg1 and mpeg2 video decoder

 

Frood

Original Attachment has been moved to: 950Q.txt.zip

Original Attachment has been moved to: 950Q_Error_msg.txt.zip

Original Attachment has been moved to: channels.conf.zip

Labels (4)
0 Kudos
1 Solution
986 Views
adrian_alonso
NXP Employee
NXP Employee

Hi Frodo,

Can you try to build and Rootfs based on YoctoProject Dora version,

As you are mixing different kernel version with Gstreamer Freescale plugins and

multimedia codec libs; fslcodec libs have dependencies on the kernel version

so I will suggest to build a root file system based on YoctoProject dora release.

Follow the instructions from Freescale/fsl-community-bsp-platform · GitHub

to build a Yocto based rootfs; and build fsl-image-gui which will include all FSL

test app and demos.

Regards

Adrian

View solution in original post

0 Kudos
1 Reply
987 Views
adrian_alonso
NXP Employee
NXP Employee

Hi Frodo,

Can you try to build and Rootfs based on YoctoProject Dora version,

As you are mixing different kernel version with Gstreamer Freescale plugins and

multimedia codec libs; fslcodec libs have dependencies on the kernel version

so I will suggest to build a root file system based on YoctoProject dora release.

Follow the instructions from Freescale/fsl-community-bsp-platform · GitHub

to build a Yocto based rootfs; and build fsl-image-gui which will include all FSL

test app and demos.

Regards

Adrian

0 Kudos