After spending some time searching here and there, only one product was available in the market and thanks tux that it works on linux (I haven't yet tested it on FreeBSD, NetBSD, OpenBSD ).
It is a hybrid TV pci card with the ability to play DVB-T, analog SECAM-B TV and FM radio.
My current Slackware 13.0 detected it as follows :
lspci -vvv
01:01.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
Subsystem: Giga-byte Technology Device 9004
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32 (21000ns min, 8000ns max)
Interrupt: pin A routed to IRQ 21
Region 0: Memory at f8000000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
Kernel driver in use: saa7134
Kernel modules: saa7134
lspci -vvn
01:01.0 0480: 1131:7133 (rev d1)
Subsystem: 1458:9004
dmseg
Linux video capture interface: v2.00
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7134 0000:01:01.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
saa7133[0]: found at 0000:01:01.0, rev: 209, irq: 21, latency: 32, mmio: 0xf8000000
saa7133[0]: subsystem: 1458:9004, board: AOPEN VA1000 POWER [card=17,insmod option]
saa7133[0]: board init: gpio is 40000
IRQ 21/saa7133[0]: IRQF_DISABLED is not guaranteed on shared IRQs
intel8x0_measure_ac97_clock: measured 68661 usecs
intel8x0: clocking to 48000
saa7133[0]: i2c eeprom 00: 58 14 04 90 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 03 08 ff 00 b3 ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: 50 35 00 c0 96 10 05 32 d5 15 0e 00 ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
i2c_core: exports duplicate symbol i2c_smbus_xfer (owned by kernel)
tuner' 0-004b: chip found @ 0x96 (saa7133[0])
tda829x 0-004b: setting tuner address to 60
i2c_core: exports duplicate symbol i2c_smbus_xfer (owned by kernel)
tda18271 0-0060: creating new instance
TDA18271HD/C1 detected @ 0-0060
tda829x 0-004b: type set to tda8290+18271
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
(Note: the i2c_core printk message come from the module i2c_i810 is loaded so the symbols are already owned by the module i2c_i810.
With some custom kernel [2.6.24, 2.6.29.6, 2.6.30.5,2.6.31.6, 2.6.32.3] compiled for my system, there are no such messages)
My modprobe.conf has the following lines to be able to load the proper tuner and card options:
options saa7134 tuner=54 card=17 gbuffers=4.
----++++----++++----++++----++++----++++----++++----++++----++++
My problem is that both mplayer and xine does not display anything thought mplayer found the correct card and options:
root@Omkara:~# mplayer tv://
MPlayer r29390-4.3.3 (C) 2000-2009 MPlayer Team
Playing tv://.
TV file format detected.
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <olschewski@zpr.uni-koeln.de>
comment: first try, more to come ;-)
Selected device: AOPEN VA1000 POWER
Tuner cap: STEREO LANG1 LANG2
Tuner rxs: MONO
Capabilites: video capture video overlay VBI capture device tuner read/write streaming
supported norms: 0 = NTSC; 1 = NTSC-M; 2 = NTSC-M-JP; 3 = NTSC-M-KR; 4 = PAL; 5 = PAL-BG; 6 = PAL-H; 7 = PAL-I; 8 = PAL-DK; 9 = PAL-M; 10 = PAL-N; 11 = PAL-Nc; 12 = PAL-60; 13 = SECAM; 14 = SECAM-B; 15 = SECAM-G; 16 = SECAM-H; 17 = SECAM-DK; 18 = SECAM-L; 19 = SECAM-Lc;
inputs: 0 = S-Video; 1 = Composite1; 2 = Television;
Current input: 0
Current format: BGR24
v4l2: current audio mode is : MONO
and xine detected as:
xine --verbose=5 v4l://
gui_xine_open_and_play():
mrl: 'v4l://',
sub 'NONE',
start_pos 0, start_time 0, av_offset 0, spu_offset 0.
input_v4l: Not setting video source. No source given
xine: found input plugin : v4l tv input plugin
input_v4l: No frequency given. Expected syntax: v4l:/tuner/frequency
input_v4l: Using currently tuned settings
xine: found demuxer plugin: YUV frames dummy demux plugin
video discontinuity #1, type is 0, disc_off 0
waiting for audio discontinuity #1
audio discontinuity #1, type is 0, disc_off 0
waiting for in_discontinuity update #1
vpts adjusted with prebuffer to 108645
load_plugins: plugin pcm will be used for audio streamtype 03.
load_plugins: plugin yuv will be used for video streamtype 40.
audio_alsa_out: audio rate : 44100 requested, 48000 provided by device/sec
audio_alsa_out
pen pause_resume=0
output sample rate 48000
will resample audio from 44100 to 48000
av_offset=0 pts
spu_offset=0 pts
xine_play
input_v4l: Buffer empty, pausing playback (used: 0, num_free: 15)
set_speed 0
audio_alsa_out: Drain call failed. (err=-11:Resource temporarily unavailable)
video discontinuity #2, type is 3, disc_off 759141307
waiting for audio discontinuity #2
audio discontinuity #2, type is 3, disc_off 759141307
waiting for in_discontinuity update #2
vpts adjusted with prebuffer to 110779
audio jump, diff=-11859
input_v4l: Resuming from paused (used: 6, free: 9)
set_speed 1000000
audio_out: inserting 12489 0-frames to fill a gap of 23423 pts
video_out_sdl: change frame format
video_out: throwing away image with pts 112057 because it's too old (diff : 16919).
play_internal ...done
input_v4l: scr tuning = -1 (used: 1, free: 14)
set_speed 0
video_out: throwing away image with pts 155947 because it's too old (diff : 4349).
audio_alsa_out: Drain call failed. (err=-11:Resource temporarily unavailable)
input_v4l: Resuming from paused (used: 6, free: 9)
set_speed 1000000
audio_out: inserting 9331 0-frames to fill a gap of 17501 pts
input_v4l: scr tuning = -1 (used: 1, free: 14)
input_v4l: Buffer empty, pausing playback (used: 0, num_free: 15)
set_speed 0
audio_alsa_out: Drain call failed. (err=-11:Resource temporarily unavailable)
input_v4l: PCM buffer Overrun (lost some samples)
audio discontinuity #3, type is 2, disc_off 759279094
waiting for in_discontinuity update #3
input_v4l: Resuming from paused (used: 7, free: 8)
set_speed 1000000
audio_out: inserting 10453 0-frames to fill a gap of 19606 pts
video discontinuity #3, type is 2, disc_off 759279094
video discontinuity #4, type is 2, disc_off 759307830
waiting for audio discontinuity #4
audio discontinuity #4, type is 2, disc_off 759307830
waiting for in_discontinuity update #4
input_v4l: scr tuning = -1 (used: 4, free: 11)
----++++----++++----++++----++++----++++----++++----++++----++++
Is there anything I missed?
PS: Also, I'm testing on Mandriva 2010's tv-time, it seems to be able to scan for analog tv channels and find them but because of no existing X-Video extension it refuses to display anything (I'm currently working on a better xorg.conf file for the moment)