Language: NL or EN
Mode: PC, Tablet, Mobile or TV
pcpret.nl: hiking, photography, audio and computer!
WelcomeSoftwareSend messageGuestbookWebsite BlogLinks RSS button
Bloem van watermuurKijk ook eens op www.natuurspoor.nlPaddestoel

Software Development

I2C op de PC, historie
Basicode historie
Webdesign, allerlei
Video file saving in Wmv
Save audio in Wma
Downloads
Matrox Marvel G200
Digital TV DVB-C/S
Media Center remote control
Analog TV and FM radio
Teletext on a PC
Digital TV DVB-T
DirectX and DirectShow
Amcap video capture
Introduction

Meest gelezen onderwerpen:
Website blog...
Mediastreaming van Windows P...
Pingen en een IP adres vinde...
Gastenboek lezen...
Geluidsapparatuur aansluiten...
UTP, straight en cross ...
Schrijf een bericht...
Windows 7, 8 en 10 in een th...
Gastenboek schrijven...
Een thuisnetwerk aanleggen...

OS=
Browser= Claudebot
IP adres= 3.238.161.165
Bezoekers= 1983285     Meer ...
(Vanaf 27-10-2010)

Country information of visitors, 22 mar 2024 till 28 mar 2024

Software development, Digital TV using Pinnacle PCTV 310i or 330e

Pinnacle 310i Digital TV specific subjects Introduction
Digital TV is booming. Common terms are DVB (Digital Video Broadcast), DVB-T (DVB Terrestrial), BDA (Broadcast Driver Architecture), DVB-S (DVB Satellite) ... On Wikipedia a lot of information can be found: DVB, Digital Video Broadcast. On internet some (DirectShow) coding examples can be found. First one is DTVViewer which can be found at Soureforge.net DirectShow .NET. This one looks most useful as start.
In an old DirectX SDK (2003 version) there is BDASample, unfortunately this example supports ATSC only. There are some big projects, such as Mediaportal and DBViewer and DSP-worx forum.
Recently I came across CodeTV, written by Regis Cosnier. This program can bedownloaded and is very usable for Digital TV. After all I found out that the program also works for Analog TV. CodeTV requires .Net 3.0 so I was not able to test it on Windows XP yet. It works fine on my Windows Media Center 2005 system. Interesting is that the source code is provided also.

Pinnacle PCTV 330e, the highlights
Pinnacle PCTV 330e BDA graph, Windows XP The Pinnacle PCTV Hybrid Tuner Kit for Windows Vista was choosen as start to learn more about BDA and digital TV. It is a USB TV-stick with an analog TV tuner (with Mono Sound) and a DVB-T tuner which can receive the free-to-air (FTA) broadcast stations (TV as well as Radio). A nice feature of this USB TV-stick is that it can also capture audio and/or video (composite and S-Video). This kit goes with a Media Center compatible IR transveiver and remote control. Both tuners can be used within Media Center (Windows Media Center or Vista) but these tuners can not be used at the same time. It is either analog TV or digital TV (and Radio). To use this Tuner Kit on Windows XP (or Windows 2000) the Windows XP drivers should be downloaded. On Windows 2000 the analog and digital TV can be used.
To use the MCE remote control, the original Microsoft version as well as the Pinnacle version, on Windows 2000 or Windows XP, Windows Media Center 2005 specific drivers/software should be installed. To get this done, a specific .inf file is needed, on my Media Center the file name was oem18.inf (Installation inf for IRBUS Driver).

Because I bought the Media Center version, there is no Pinnacle software (usually the TV 2000 software) provided to use this USB TV stick without Media Center software. The Pinnacle software is needed when the USB TV stick is used on older versions of Windows (such as Windows XP or Windows 2000). The Windows XP drivers and the drivers that goes with this USB TV stick shows up in DirectShow so it is quite easy to write your own TV program. The video device supports video (of course) and audio.

Pinnacle PCTV 330e DVB-T graph, Windows 2000 Analog TV requires quite a lot USB bandwith and CPU time (60-80% on AMD 2400XP system, about 40% on AMD64 3000 system). Digital TV requires less USB bandwith and CPU time (about 40% on AMD 2400XP system).

Pinnacle PCTV 330e, using Digital TV (DVB-T)
For testing I used the DTVViewer code example which can be downloaded as part of DirectShowLib code example package at sourceforge.net: Soureforge.net DirectShow .NET. DTVViewer did not work without code changes on Windows 2000. The problems I encountered seems to be related to the audio decoder, video decoder and the video renderer. Ensure that audio and video decoders are used which do not cause errors. On Windows XP I got bad audio caused by the default audio decoder that is used. Via graphedit I replaced this with the Cyberlink Audio decoder and audio seems to be okay.
When VMR9 is used, the program gives an exception, and when continued, the program window will show a red cross and a new video window pops up. I added an option to DTVViewer so the VideoRenderer (a non VMR9 video renderer) can be chosen. This works okay in Windows 2000. In Windows XP the video decoder will connect to VMR9 only, strange, in Windows 2000 it seems to be the other way around.

One of the first questions that came up was what information should be put in the tune request. The DTVViewer code example did not provide any information on that. Also on internet I did not find useful information. As start Windows Media Center 2005 was used to get the tuning information via the EPG. Wikipedia (DVB-T-frequenties) showed frequency information that was useful as start. I found out that when a valid frequency was filled in, that the first one in the (yet unknown) list, is chosen. As result audio and video is played. The nice thing is that the other parameters ONID, TSID and SID are filled in automaticly. A little later I found a site that gave me most of the answers: Frequenties digitale ethertelevisie (DVB-T) in Nederland. On this site I could find the broadcast information I was looking for, except then from the ONID, TSID and SID parameters. For the FTA TV broadcast stations this was not a problem, the SID was within the range 1101 till 1104. For the FTA Radio broadcast stations this was also not a problem, the SID was within the range 1112 till 1119.

There is simple way to find the frequencies that can be used for tune requests, just search them! I added a frequency scan to DTVViewer. If after 5 seconds the tune request parameters ONID, TSID and SID were filled in, then the frequency is a valid frequency for the current area. Via this scan two frequencies could be found, 514 and 618 MHz. Frequencies might differ per new area so per new area a new frequency scan is needed
It was not possible to just change the tuning frequency. For the moment an initial tune request should be done using a valid tuning frequency only, the ONID, TSID and SID values should be set to -1 (minus one). The next tune request with the full new tune request information will be succesful.

Teletext test sample with PCTV 330e Pinnacle PCTV 330e, using Teletext (DVB-T)
I did some investigations on Teletext and digital TV. I dumped the TS data and analysed it, but it is a lot of data, including audio, video and other data of all TV/Radio channels packed in the same stream. When checking the DirectShow filters, I noticed there was one filter named 'Pinnacle TS Vbi Slicer'. If it was what I thought it was, it was interesting to try out. In the picture, you can see I got some visible Teletext using the 'WST Decoder'. The text in the picture is bad, probably due to a bad signal or the mixup of the Teletext specific data of the TV channels. But okay, the Teletext data is in here, it is a first step!
January 2009 I was able to see real Teletext data! The reason I could not see it, is that it is somehow encoded and I could not recognize the data as Teletext data. I could tell something more about the encoding but I will not do that (yet). To make the data more useful, I need to decode the TIF information first. That information tells me everything about the TV broadcast and the other TV/radio channels.

Pinnacle PCTV 330e, using Analog TV
For testing I used the SampleGrabber code example which can be download at the codeproject.com: DirectShow - TV Finetuning Using the IKsPropertySet in C#.
The TV tuning looks okay, but it takes some more time compared with the PCI TV cards I am using. In specific cases the USB might even lost control. I did not find a solution for catching this error scenario. A clean catch is needed else the TV software crashes and the software stays running (usually a PC restart is needed).

Pinnacle PCTV 310i, the highlights
The Pinnacle PCTV Hybrid Pro PCI was choosen because I wanted to replace my old Pinnacle PCTV card which had a disfunctional TV tuner in Uhf frequency. In addition I wanted to use analog TV and digital TV (BDA) and I wanted to listen to full stereo sound.. The USB TV-stick seems to be a little bit unstable, also the USB TV-stick gives Mono sound for analog TV. That makes a movie much less interesting ... It is a PCI TV-card with an analog FM-Radio and TV tuner (with Stereo Sound) and a DVB-T tuner which can receive the free-to-air (FTA) broadcast stations (TV as well as Radio). In addition this PCI TV-card can capture audio and/or video (composite and S-Video). Less nice is that the connectors are not handy to use (internal as well as external). This kit goes with its own remote control unit. Both tuners can be used within Media Center (Windows Media Center or Vista) but these tuners can not be used at the same time. It is either analog TV (and FM-Radio) or digital TV (and Radio). The TV-Card has interesting hardware such as a small TV-Tuner, a SAA7131 (full Mpeg1 video and audio decoder) and a TDA10048 (Dvb-T handling).
The Pinnacle PCTV Hybrid Pro PCI goes with the Pinnacle TVCenter software. After installing the software, the initialization seems to fail. Either due to a registration conflict or due to the software itself. Funny thing was that my RTVCapture software and the DTVViewer software could control the PCI TV-card. I downloaded the newest version and reinstalled the software. Now it recognized the PCI TV-card as well as the USB TV-stick. Nice thing of the software it can work also with the Media Center compatible IR transveiver and remote control! Less nice is that the order of Radio and TV channels can not be changed real easy.

Pinnacle PCTV 310i, using Digital TV (DVB-T)
For testing I used the DTVViewer code example which can be downloaded as part of DirectShowLib code example package at sourceforge.net: Soureforge.net DirectShow .NET. Pinnacle 310i input/output pins

Pinnacle PCTV 310i, using Analog TV
For testing I used the SampleGrabber code example which can be download at the codeproject.com: DirectShow - TV Finetuning Using the IKsPropertySet in C#. There is a problem to get audio stereo right away. For the rest, the card works very well and the stereo sound sounds great!

Getting the stereo sound, was more difficult then I thought. Finally I found out that it took about 1,5 second before the TVAudio driver returns stereo as a valid option.

Pinnacle PCTV 310i, Analog TV input/output pins
The manual of the Pinnacle PCTV 310i Is not really clear about the input/output pins. It explains the Audio output pins more or less, but the other pins are explained on the PCB only. For Audio there is L, G, R information. For Video and Wake Up the pin information is just missing.
ST5, ST4: Wake Up
ST7: Audio Out
ST12: Video In (Composite 2, S-Video 2)
ST14: Audio in

Probably the pin layout of ST12 is from down to top: Composite-in, GND, Luminance/Y, Chrominance/C. Luminance can also be used as Composite in.

PCTV 310i, Analog TV graph Pinnacle PCTV 310i, Analog TV and graphedt.exe
I use my own software for controlling and using this TV card for Analog TV. The graph I build is shown at the right (just click on it to see it). The graph shown here is just an example of a common Analog TV device. The graph shows the Analog TV tuner device, a crossbar device, a video capture device and an audio device. This graph may suggest that the audio device is independent from the video part. But this is not true, without a correctly initialized video graph there is a big chance for getting no audio. Getting audio seems to be a difficult job, to get audio, in general the following settings might effect: Video standard the TV tuner is using, the country setting, the crossbar setting, the correct rendering of the audio pin. If you have questions, let me know.

To be continued ... !

Back to the beginning? Click here.


WelcomeSoftwareSend messageGuestbookWebsite BlogLinks RSS button

Date: february 4, 2009