Wednesday, August 03, 2005

Bought a second DVB-T card

I got a mail from Pascal who is working on DVB-S. He seems to have some issues with the media add-on that I wrote, but only when using more than one DVB-S card. I was still using the single DVB-T card that I got from Hauppauge in November 2004, and thus wasn't able to reproduce anything.

Obvious solution was to buy another one, and after work I drove to MediaMarkt, where I picked up a new Hauppauge WinTV NOVA-T PCI card for just 79 EUR. This seems to be more expensive than ordering one for 65 EUR by mail, but you don't have to pay 15 EUR for s&h, and also it's immediately available. Good deal I think. It's the exact same card that I'm already using, model 928. Nothing new here, and is recognized out of the box, at least on my system :-)

After modifying the TV application to support multiple cards, it only found one live DVB media node, and thus only one card. Very strange. The media add-on supports an unlimited number, and has no restriction here. Zeta Media preferences shows both interfaces.

Turns out that Media preferences uses BMediaRoster::GetDormantNodes() to create the interface list, and instantiates those nodes that are not active when you select them. They are destroyed when it quits. My TV app uses BMediaRoster::GetLiveNodes(), as a the first DVB card always seems to be instantiated by the media kit. Finding a dormant node and instantiating it for the first card is not possible, it's already live.

I did assume that all physical hardware interfaces would be automatically instantiated and go live. However, the exact behaviour is not documented and the current behaviour is inconsistent.

I made a screenshot which shows two active cards, pretty nifty, but right now useless, as the audio decoder crashes pretty easily. When looking at the screenshot you may notice that you don't hear the audio, as the decoder crashed.

I also researched other ways to get all cards go live automatically, and there is BMediaAddon::AutoStart(), which never gets called, so I can't use it. Must be a bug.

Right now I'm using Zeta neo for development, and thus I tried the Yellowtab website, looking for a developer relations contact, bugreport form or other help, but didn't find any. The website only says "Developers are very important to yellowTAB. In this section you will find a collection of articles dealing with developing for the ZETA operating system." There you can find one article about the locale kit, but nothing useful for me. Also trying IRC chat with other developers, including one Yellowtab employee, didn't give me a clean solution, except putting a workaround in the (or: every) TV application, which I don't intend to do.

Multiple card support seems to be possible, but requires some ugly workaround in the TV application to instantiate those nodes that are not live.

It would still be good to find out how it's really supposed to work. If you know, please leave a comment.

2 Comments:

At 03 August, 2005 17:34, Anonymous stargreeter said...

Hi Marcus,, i found you blog today and really like a develober to tell his works. but you sound so negatif. plies help yellowTAB to macke ZETA creat.

 
At 03 August, 2005 17:37, Anonymous gopher said...

Hey greeter, what kind of jerk are you? The guys at yT should follow the good example Marcus' gives. Or even better: Marcus' should focus entirely on haiku to get out of this nightmare.

 

Post a Comment

<< Home