Brooktree Bt878

From LinuxTVWiki
Revision as of 12:24, 21 September 2004 by FyKnight (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Started off life as a good old analogue audio+video chip in the BT848 days, used by stacks of different cards (just look at video4linux). When DVB came along, I guess the manufacturers of the TV cards were used to working with this chip so the digital audio input interface was co-opted to take the MPEG2 transport stream.

It has a pretty nice programmable DMA engine. You basically build a very simple RISC program (very RISC - has like 8 instructions) that copies data between the BT848 and your RAM somewhere. It is still based on lines and frames (e.g. 500 lines of 752 bytes each), although for DVB usages they're arbitrary so it's just a pain. The original idea behind it was that when you had a window obscured on your display, or you wanted to crop a bit of the input image, you could build a RISC program that just copied the parts of the video lines you wanted, and thus not waste any PCI bandwidth.

It declares more than one function onto the PCI bus, one each for video and audio. The two functions have different memory mappings although they have many similar registers - e.g. the i2c bus is only available via the video function and the DVB stream is only available via the audio function. ('function' is a PCI term ... most PCI devices have only one of them...)

Not sure what the difference between this and the Conexant Fusion 878 is