BeTVOut 'group'

Welcome on BeTVOut at SourceForge!

(under construction)




Quick site navigation:


(open)BeOS NVIDIA BeOS driver page.

(open)BeOS MATROX MGA driver page.

VCD/MPEG1 video playback 'howto'.

DVD video playback 'howto'.

Technical background stuff.

Supported videocards.

Application and driver version history.

'Old news'.

Jump to downloads at the bottom of this page.


NEWS:

July 17, 2003: New (open)BeOS Nvidia driver coming... Indeed: you read that right! Let me explain:
While Bruno van Dooren started on a Nvidia driver some time ago, it turns out he does not actually have the time needed to get it on the road: He's quite busy with other parts of openBeOS. Therefore we decided I am taking over development of this driver, at least for now. Because his work was a bit outdated (it was based on a old version of the Matrox driver) and it did not actually do much yet anyway, I restarted development from scratch starting with the latest version of the Matrox driver.

And guess what: it's actually starting to work! At least on my GeForce2 MX400 card I also used for BeTVOut development in the past. Of course I'll add TVout support to that driver later on, based on BeTVOut knowledge. This means that finally we won't be needing BeTVOut much longer I hope...

Anyway: head over to the new page I recently setup for the (open)BeOS Nvidia driver for the latest news and developments. It's all costing a lot of time, but it's looking like we _are_ getting there!


December 23, 2002: I have two things I want to 'talk' to you about today. Also I want to wish everyone a merry christmas and a happy new year!

TVout for videopurposes is something I still find important. This is why I want to set this up for Matrox cards, in the same quality of output picture as we did for Nvidia cards. Quality is what brings me to the first point I wanted to mention. You all *do* use BeTVOut V0.120, right? If you still use V0.118, you definately want V0.120 because of the minor fixes that were done in that new one. It increases output quality on some cards...

The second thing I just have to do is letting you have access to the video consumer node Kevin Patterson wrote early this year. You'll find a collection of files in the download with an email message for each file describing each 'version' of the node included. Beware this is a first alpha 'release', and that there is no real support for it yet. Be also aware that you use it on your own risk: it's largely untested!
Anyway: It's added to the downloads below: Get it if you like experimenting with these things, or if you want to learn how you could create such a node yourself (for Matrox anyone? ;-)
BTW: You should be able to test and use it with MK-mediaplayer for instance (I think) that you can download below also... Have fun!

October 23, 2002: Well, high time to update the status of BeTVOut here I guess. Currently all my time is consumed by the Matrox driver. I can tell you that I've learned a lot already from it, and I am still gaining lots of knowledge :-). I will be working on it for some time more without looking at Nvidia-related code at the side.
I can tell you now that I won't be extending this 'trick' TVout solution a lot anymore. Instead I will be working on a full opensource nvidia driver at some point in time if all goes well. Hopefully this can be done in cooperation with Bruno van Dooren, as he already started work on such a driver. Info on his attempt can be found here (on bedrivers.com).
I would say, go for it Bruno! I think his effort should be supported as much as possible... ;-)

Kevin is currently also occupied with other (real life) activities I'm afraid. He did work more on the node stuff and he still wants to work on that in the future. Would be nice if we could use that on both Matrox and Nvidia cards later on. Hey, maybe we will even get TVout on ATI cards.. If only each day had at least 48 hours ;-)

June 28, 2002: If you have a MATROX G100, G200, G400, G450 or G550, you probably want the youngest (open)BeOS driver for it. Hardware overlay is supported on G200-G550! Anyway, have a look at the dedicated page I have setup. Make sure to send feedback you might have to me (Rudolf), so I can do something constructive with it ;-)
Goto the (open)BeOS MATROX MGA driver page.

June 12, 2002: Status update: After the release of BeTVOut V0.120 development has slowed down (temporary!) for Nvidia cards as you already suspected I guess. Kevin is real busy with other duties at the moment, and I am working hard on a Matrox G400 videocard (yes, it did happen at last..) to setup hardware overlay in the opensource driver that exists (FoFt). Also openBeOS is working on that driver: it is said to already work well on G200 (FoFt had trouble on that) and even on the Millenium line of cards. And, I am happy to report that overlay is working also now on G200-G550, though I am still busy completing it. After this Matrox 'detour', I'll resume duties on the Nvidia cards: probably starting a port of the Linux 'nv' driver first with the knowledge I am gaining now...

May 1, 2002: If you did not already do so, I'd advice you to check out VLC V0.31. Especially if you have a videocard that supports hardware overlay on BeOS. It's much more useable now than ever before, with or without BeTVOut. Jump to the downloads below to find out what's new, how to use it and even a subtitle fix for Nvidia hardware overlay video output.

April 8, 2002: The Conexant TVout chip modes have been stabilized and tuned now. Get app V0.118 and driver V0.23 below to use it, and please do not hesitate to inform us of any problems you might encounter... After all that is the way things get improved ;-)
Included in the downloads is MK-MediaPlayer, written by Kevin Patterson. It's the first alpha release, but it seems to work quite good already. Note that this app works via the video consumer node you pre-selected in the BeOS 'Media Preferences Panel'.

April 3, 2002: Update on development direction: After a lot of searching on the web, and a bit of mailing around here's what's going to happen now in the hardware 'region'. For the software region the higher functions are still under heavy development by Kevin. The last time he was 'spotted' he was implementing machine language optimized scaling and color space conversion routines for Intel and AMD for the consumer node. These will be used on cards that don't have hardware overlay support with BeOS. Sounds nice, don't you think?
Oh yes, the hardware region update follows here:

- For now the MATROX cards will not be used. It turns out that MATROX and ATI are willing to give out the 'full specs' to their products, exept for info about how to program their TV-out chips. Because these chips are not third-party ones, like the chips already supported by BeTVOut, it will be difficult (but not impossible though) to get these chips up and running decently. Because we already have a 'headstart' on the Nvidia chips, it suddenly sounds not so bad anymore to stay there for a while longer...

- For our medianode purpose we need a dualhead card as explained before. Dualhead here means two independent, in a straightforward fashion programmable outputs (VGA and TV) on one VGA card. MATROX, ATI and Nvidia all have such cards nowadays. Dualhead does however *not* mean that we need two VGA connectors, and once you realize that you start to look a bit different at Nvidia and their 'Twinview' option that exists on all GeForce2MX cards (MX/MX200/MX400). If you have such a card, with one VGA connector and a TVout, you have in fact a dualhead card. Note that as far as I know no other GeForce chips have this dualhead functionality. Also TNT cards do not have totally independent outputs, that's why you almost never see that working...

If you add it all up, it makes sense to keep working on the Nvidia cards for now. Nvidia cards are not too expensive while supporting dualhead, and a lot of people will have a GeForce2MX with TVout these days. TVout already works on Nvidia cards, even in DVD and VCD modes. Also dualhead setup on a Nvidia card has already been reported working in Linux.
So, I have aquired a GeForce2 MX400 card with TVout (ASUS V7100 pro, 32Mb, conexant CX25871 TVout chip: TV resolution upto 1024x768). I already tested a bit with BeTVOut and it works with this card. There are some issues though with the VCD and DVD modes I need to fix: the picture is not centered, flickers and/or color artifacts can be seen sometimes. The next version of BeTVOut will fix this if all goes right. After that I'll try to get dualhead functional. At last, the road ahead has just become a lot clearer for me... :-)

March 29, 2002: Kevin Patterson created the (currently basic) media player app that works via the media 'producer node'. This means that this app will output its video to the device that's selected for video output in the media preferences panel. (It plays back all video that the Be mediaplayer does also.) The code for this app has been added to CVS earlier already. A binary download link will be added here also soon. Kevin is still working on the consumer node. He said that it would change considerably, so this is the reason it still has not been placed in CVS.
Meanwhile it looks like we will get no further with the Nvidia cards in a 'prudent' way. That is: supporting coldboot for dual VGA card use, or independent TV output on a single card. At least not without considerable efforts because of the lack of documentation. So, we are 'changing course' now:

NOTIFICATION: Change of development direction.
Because we think that independent TV output is 'vital' for comfortable video(out) use, Kevin and I have decided to switch to dualhead cards to get that done. This should in theory be possible with Nvidia dualhead cards with (considerable) less effort than would be needed on a non-dualhead Nvidia card (Dirk Thierbach (linux: nv-tv) already reported some success on this). Chances are however, that we will switch to the MATROX line of cards (probably a G550 for testing). The reasons being that an opensource driver already exists for this line of cards including dualhead setup support (see the FoFt site), and also (very important we think) the fact that proper documentation will be obtained from Matrox (hopefully complete enough, there's still an important part missing..).
This does not mean per se that we won't try to get a dualhead Nvidia card working also, it just means that this will (probably) get delayed. Normal TVout support is more or less complete anyway (apart from a GUI and Workspace switch tracking), so for now there will only be small changes in BeTVOut and riva_iic for the next versions.
We will keep you informed on our progress..

March 3, 2002: Although it may look as if nothing is happening over here anymore, that certainly is not the case. Kevin Patterson succeeded in creating the video-out consumer node. He is cleaning up the code somewhat I believe. Also he is hard at work at a producer node for a mediaplayer app to use, to display video through the video-out consumer node. A screenshot is right below that shows the node in the 'media preferences' panel.
The node works only if you have a 'BeOS-driver coldstart capable' videocard as 'BIOS secondary' card while you have a RIVA 'BIOS primary' videocard also in your system which displays the normal PC startup screens (this card gets started by the computers BIOS this way). Currently the only driver-coldstart capable cards we know of are the MATROX cards. It's driver gets loaded during BeOS boot doing a card 'switch' so you will see the booticons screen on the RIVA while the desktop gets displayed on the MATROX card. Kevin uses the original nvidia driver to actually set modes on the node. Nice Work on all this, Kevin! He expects to be able to do a alpha release soon...

Oh yes, I (Rudolf) am also still doing something: I am (still) busy trying to coldstart the RIVA so we can use the node on a lot of other combinations of videocards also. It remains to be seen if this will work though as it seems that such a coldstart is very card-type specific (normally the cards VGA BIOS inits this specific part). After trying this coldstart has been done, I'll try to get the RIVA to do more independent output on it's TV output so we might (slight chance though) be able to use the node on just one VGA card: the RIVA. Because of all of these developments, I would say: 'stay tuned'...


Kevin's 'video Consumer Node' in the 'media settings' panel.


Januari 25, 2002: BeTVOut now has support for Conexant chips CX25870 and CX25871. Also the chip detection process has improved: If BT/CX detection fails halfway the process, CH chip detection is started before aborting BeTVOut. This fixes the 'IIC error 3' exit on for instance ASUS V7700 DeLuxe VIVO cards... Both these improvements to BeTVOut were only possible thanks to the feedback and many tests two users performed for us. Thanks guys!

Other important news is that Kevin Patterson succeeded in getting TVout capable framebuffer access on secondary RIVA cards using a mix of software parts: BeTVOut, the soft_overlay driver, the original BeOS nvidia driver and a key piece of extra software that he wrote. This brings a real video-out node a big step closer to getting completed. Next to this, Kevin is also spending time on a screen preferences replacement app with special display_server daemon that includes the TVout modes. Have a look at the screenshot below. Stay tuned, eventually more news is bound to come...


Kevin's 'Screen Prefs' replacement (may still change).


December 31, 2001: A bit off-topic maybe, but a new tweaked VLC testversion has been added with the downloads below. This one uses a new PCI driver (called soft_overlay) which takes care of the retrace sync. It also takes care of soft_overlay which only works in fullscreen mode: it toggles screen output between two framebuffers so no bitmap copy has to be done anymore to refresh the screen. If you try this one, you should notice a CPU load drop of about 20-30%.

Because it uses no real overlay, there is no YUV to RGB translation or hardware scaling. The internal VLC scaling is not used because it's way to slow, and the bitmap copy scaling cannot be used either now (which was very fast if you compare it to VLC's internal scaling). The screen output is shown centered in the screen in it's original resolution, no matter what screen resolution you choose. While this is no problem for DVD use with BeTVOut (which sets the screen resolution to the DVD resolution), it's a shame for VCD/MPEG1 use because these formats are normally shown in about 200%. In order to be able to fully enjoy these formats, a fast scaling algorithm would have to be implemented in VLC (comparable to the scaling BBitmap does).

Be aware that after starting this version of VLC, you'll get a output window which is not filled with screen output. This looks real ugly, but it's done on purpose so you can have a look at the CPU load (all output is done using soft_overlay, it's buffers are just not selected yet). Just resize the window to fullscreen, and you'll get the soft_overlayed video. For now this only works with BeTVOut supported videocards. Keep in mind please that this is just a 'technology preview'...

'older news'...


Rudolf.


WARNING: You use this software at your own risk.
If not used correctly (hints are in the program), you might destroy your VGA monitor because undefined signals may be sent to it.
Also be sure that your monitor supports a refreshrate of 50Hz when using PAL dualhead clone mode. Otherwise, don't use this option!

This application and the accompaning driver provide TVOut functionality for BeOS with NVIDIA RIVA TNT and later videocards.

This program will not work with RIVA128(ZX) cards.
If you are testing with a GeForce1 or 3 card, please let me know! (In theory these cards should be able to work with BeTVOut...)


PAL DVD 16:9 TV screenshot from 'the Sopranos'...


Current version:

BeTVOut application V0.120 - 27 april 2002
- Autodetect connection status updated: Did not work properly on CX chips;
- Minor 'bugfix' release (V0.119).

riva_iic driver V0.23 - 8 april 2002
- Added experimental FIELD signal returned from the WaitForRetrace function; (does not work..)
- Added 'set/schedule outbound framebuffer switch' command for fullscreen simulated hardware overlay: currently three buffers supported: two for simulated overlay, one for the window manager;
- Added check for 'outbound framebuffer switch done' for fullscreen simulated hardware overlay use;
- Added experimental 'setDisplayMode' command: currently hardcoded to set the RIVA to 800x600@60Hz VESA VGA mode. Used for dualVGA card setup for now...
- Added experimental TNT coldstart routine including RAM size/width test. (does not work yet...)

Known issues:
(These issues are chipset/mode specific and cannot be overcome...)
- VGA picture is a bit truncated on the left and right side with dualhead clone NTSC 800x600 mode with systems that use a Brooktree or Conexant chip (so does not apply for Chrontel systems).
- VGA picture is a bit truncated on the left and right side with dualhead clone NTSC 720x480 mode with systems that use a Chrontel chip (so does not apply for Brooktree or Conexant systems).
- (Horizontal) overscan ratios are not (exactly) right for DVD modes with Chrontel chips: PAL overscans too little while NTSC overscans too much. This does not apply for Brooktree or Conexant chips.

For the best TVout experience in non-standard Desktop modes you would best use a videocard with Brooktree or Conexant TVout chip.
Also note please that picture quality on VGA and TV may be less than optimal if you use a 'no-name' VGA card. This is due to the specific circuit board design of such a card.

Application and driver version history.



Normal Desktop (4:3) TV screenshot with Riker (First Contact).



Available downloads:

Download executables BeTVOut V0.120, riva_iic V0.23 and MK-MediaPlayer (75kB).
Download sources BeTVOut V0.120, riva_iic V0.23, riva_iic V0.13, GDW and MK-MediaPlayer (175kB).
Download Kevin's video consumer node for Nvidia including sources (alpha 1) (832kB).


Download the precompiled files for VCD/MPEG1/DVD videoplayback using BeTVOut: Tweaked VLC (source: vlc-0.2.91) (1021kB).
Download the soft_overlay precompiled files for DVD playback with or without BeTVOut including sources: soft_overlay VLC (source: vlc-0.2.91) (1.1MB).

NOTE:
VLC V0.31 has real hardware overlay in it that also works on GeForce cards. You should use it: CPU load drops a lot! This version can handle disable aspect ratio scaling and has a much better subtitle palette. Retrace sync works fast enough with hardware overlay also and audio sync can be manually set. If you have a TNT card and want to use VLC on TV, the above (old) downloads are still the best ones to use for now.
A little readme file on how to use VLC V0.31 is here (4kB).


Access sources using CVS web interface.

You can also extract the sources from CVS yourself (You need to have SSH1 and CVS installed on your system). On the command line use:
cvs -d :pserver:anonymous@cvs.betvout.sourceforge.net:/cvsroot/betvout -z3 checkout betvout

This site is hosted on SourceForge Logo .
Email adresses:

Rudolf Cornelissen is working on the BT stuff and the (open)BeOS Matrox MGA driver,
Kevin Patterson is working on the video out node and screen prefs replacement,
Michael Pfeiffer did the CH stuff and is working on the GDW (Graphics Display driver Wrapper).
If there are errors in this page please let me know. Thanks.

Rudolf.

(Page last updated on July 1, 2016)