https://www.linuxtv.org/wiki/api.php?action=feedcontributions&user=Rdeza&feedformat=atomLinuxTVWiki - User contributions [en]2018-12-19T07:46:00ZUser contributionsMediaWiki 1.22.15https://www.linuxtv.org/wiki/index.php/Anatomy_of_V4L-DVB_devicesAnatomy of V4L-DVB devices2004-09-30T23:28:03Z<p>Rdeza: Changes in DPRAM usage</p>
<hr />
<div>== Introduction ==<br />
<br />
Digital Video Broadcast Receivers exist in many different flavours. In order to give you an idea of what we all support with the linux-dvb drivers and why some things look quite complicated this page lists the common types:<br />
<br />
<br />
== Minimal Configuration ==<br />
<br />
A minimal device for [[DVB]] receiption at the PC consists of a [[DVB Frontend]] amd some [[Wikipedia:FIFO|FIFO Memory]]. This FIFO samples the [[MPEG2 Transport Stream]] delivered by the frontend and makes it accessible (e.g. by a port-interface, memory-mapped or a bus-interface like USB or [[IEEE1394]]) to the host processor.<br />
<br />
All modern peripheral DVB devices follow this approach: common [[PCI]] cards, nearly all [[USB]] adapters and [[IEEE1394]] DVB devices. Only they are supported directly by Microsoft's [[BDA]] architecture.<br />
<br />
<br />
== PCI Cards with onboard MPEG Decoder ==<br />
<br />
Here the [[DVB Frontend]] is connected to the [[AV711x]] hardware [[MPEG2 Decoder]]. This decoder<br />
shares a dualported RAM with the PCI bridge where the MPEG2 Decoder has it's<br />
[[Wikipedia:Framebuffer:Framebuffer|Video Framebuffer]]. '''(1)'''<br />
<br />
Examples:<br />
* [[DVB-S_cards#DVB-S_full-featured_Cards|full-featured DVB-S Cards]] <br />
* [[DVB-C_cards#DVB-C_full-featured_Cards|full-featured DVB-C Cards]] <br />
* [[DVB-T_cards#DVB-T_full-featured_Cards|full-featured DVB-T Cards]] <br />
<br />
The Onboard Decoder makes these cards somewhat expensive.<br />
<br />
<br />
'''(1)''' With more detail:&lt;br&gt;<br />
The AV711x have his own framebufers on the onboard '''SDRAM''', for MPEG '''I''' and '''P'''<br />
frames, which contens is sent to the OSD unit for overlay windows; the OSD unit output is then<br />
encoded on PAL or NTSC display formats and output in CVBS (Composite+Video+Blanking+Synchronism)<br />
or Y/C (Luminance+Chrominance) or RGB (Red+Green+Blue) modes; the OSD unit output is also sent<br />
in digital format to the PCI bridge, which after optional transformations (scaling, cliping,<br />
colour space conversion, etc), is sent by PCI Bus Mastering to the Video Framebuffer, normaly on<br />
a VGA card or in main memory for a V4L application. The dualported RAM ('''DPRAM'''), which is<br />
connected to the AV711x and to the PCI bridge, is used for all the communications between the<br />
DVB drivers and the AV711x: To send the firmware and comands, to send MPEG2 DVR streams (to be <br />
decoded and show as video/audio), to receive MPEG2 TS packets, PES data or sections <br />
(demultiplexed from the stream), etc.<br />
<br />
== Standalone STB ==<br />
<br />
In a [[SetTopBox]] the Frontend directly feeds the built-in hostprocessor (usually with onchip MPEG Decoder). These processors are mostly based on embedded ARM-, MIPS-, PowerPC-Cores with additional peripheral units like i2c-, IDE-, network-, Smartcardcontrollers, Demultiplexers, Decoders, Audio- and Videointerface.<br />
<br />
Modern STB processor chipsets move more and more decoder tasks into [[Firmware]] or software, this allows implementation of new codecs like DivX, MPEG4, WMV and even late updates of products in the field. We expect that this evolution continues.<br />
<br />
<br />
== [[STB]]s with interface to the PC ==<br />
<br />
Have an integrated embedded processor with MPEG2 Decoder and are able to work standalone. You can connect your PC, e.g. using the [[USB]] or [[Firewire]] port to record and play back DVB transmissions on your TV.<br />
<br />
* Technotrend/Hauppauge [[DEC2000-T_USB]]<br />
* Technotrend/Hauppauge [[DEC3000-S_USB]]</div>Rdezahttps://www.linuxtv.org/wiki/index.php/Anatomy_of_V4L-DVB_devicesAnatomy of V4L-DVB devices2004-09-30T20:49:47Z<p>Rdeza: More details of Video Framebufer and board inner workings</p>
<hr />
<div>== Introduction ==<br />
<br />
Digital Video Broadcast Receivers exist in many different flavours. In order to give you an idea of what we all support with the linux-dvb drivers and why some things look quite complicated this page lists the common types:<br />
<br />
<br />
== Minimal Configuration ==<br />
<br />
A minimal device for [[DVB]] receiption at the PC consists of a [[DVB Frontend]] amd some [[Wikipedia:FIFO|FIFO Memory]]. This FIFO samples the [[MPEG2 Transport Stream]] delivered by the frontend and makes it accessible (e.g. by a port-interface, memory-mapped or a bus-interface like USB or [[IEEE1394]]) to the host processor.<br />
<br />
All modern peripheral DVB devices follow this approach: common [[PCI]] cards, nearly all [[USB]] adapters and [[IEEE1394]] DVB devices. Only they are supported directly by Microsoft's [[BDA]] architecture.<br />
<br />
<br />
== PCI Cards with onboard MPEG Decoder ==<br />
<br />
Here the [[DVB Frontend]] is connected to the [[AV711x]] hardware [[MPEG2 Decoder]]. This decoder<br />
shares a dualported RAM with the PCI bridge where the MPEG2 Decoder has it's<br />
[[Wikipedia:Framebuffer:Framebuffer|Video Framebuffer]]. '''(1)'''<br />
<br />
Examples:<br />
* [[DVB-S_cards#DVB-S_full-featured_Cards|full-featured DVB-S Cards]] <br />
* [[DVB-C_cards#DVB-C_full-featured_Cards|full-featured DVB-C Cards]] <br />
* [[DVB-T_cards#DVB-T_full-featured_Cards|full-featured DVB-T Cards]] <br />
<br />
The Onboard Decoder makes these cards somewhat expensive.<br />
<br />
<br />
'''(1)''' With more detail:&lt;br&gt;<br />
The AV711x have his own framebufers on the onboard '''SDRAM''', for MPEG '''I''' and '''P'''<br />
frames, which contens is sent to the OSD unit for overlay windows; the OSD unit output is then<br />
encoded on PAL or NTSC display formats and output in CVBS (Composite+Video+Blanking+Synchronism)<br />
or Y/C (Luminance+Chrominance) or RGB (Red+Green+Blue) modes; the OSD unit output is also sent<br />
in digital format to the PCI bridge, which after optional transformations (scaling, cliping,<br />
colour space conversion, etc), is sent by PCI Bus Mastering to the Video Framebuffer, normaly on<br />
a VGA card or in main memory for a V4L application. The dualported RAM ('''DPRAM'''), which is<br />
connected to the AV711x and to the PCI bridge, is used to send the firmware and comands to the<br />
AV711x, to send MPEG2 ES data (to be decoded and show as video/audio) and to receive MPEG2 TS <br />
packets or sections (demultiplexed from the stream).<br />
<br />
== Standalone STB ==<br />
<br />
In a [[SetTopBox]] the Frontend directly feeds the built-in hostprocessor (usually with onchip MPEG Decoder). These processors are mostly based on embedded ARM-, MIPS-, PowerPC-Cores with additional peripheral units like i2c-, IDE-, network-, Smartcardcontrollers, Demultiplexers, Decoders, Audio- and Videointerface.<br />
<br />
Modern STB processor chipsets move more and more decoder tasks into [[Firmware]] or software, this allows implementation of new codecs like DivX, MPEG4, WMV and even late updates of products in the field. We expect that this evolution continues.<br />
<br />
<br />
== [[STB]]s with interface to the PC ==<br />
<br />
Have an integrated embedded processor with MPEG2 Decoder and are able to work standalone. You can connect your PC, e.g. using the [[USB]] or [[Firewire]] port to record and play back DVB transmissions on your TV.<br />
<br />
* Technotrend/Hauppauge [[DEC2000-T_USB]]<br />
* Technotrend/Hauppauge [[DEC3000-S_USB]]</div>Rdezahttps://www.linuxtv.org/wiki/index.php/DVB_TT_Budget_PatchDVB TT Budget Patch2004-09-30T19:13:04Z<p>Rdeza: Correct typos and stress</p>
<hr />
<div>== DVB-x Technotrend FF card Budget Patch ==<br />
<br />
<br />
This '''hardware modification''', allow to add the capability of get the full Transport Stream<br />
(TS), of the tuned transponder, to a Full Function (FF) DVB card, while the rest of the<br />
functions of the FF card remains unaltered.<br />
<br />
Basically, the MPEG2 Demodulator outputs in the tuner must be connected to the free Digital Video<br />
port '''D1B''' in the SAA7146, as is done on TT_budget cards. On this budget cards, two IC's are<br />
used to generate a pseudo '''VSYNC''' signal for the &quot;'''frame adquisition'''&quot; of the TS packets<br />
&quot;'''lines'''&quot;; but with the resources in the SAA7146, this IC's can be avoided, using the<br />
'''RPS1''' to generate '''VSYNC''' on the '''GPIO3''' line (also free on all cards that I know,<br />
but maybe not on old Siemens DVB-C with the Analog module), which then is connected to<br />
'''D1B_VSYNC''' input.<br />
<br />
To make the 12 connections need, a small PCB (26*5mm) can be inserted between the tuner and the<br />
SAA7146 pins, making the soldering much more easy that using discrete wires (the SAA7146 pins are<br />
at 0.65mm raster!).<br />
<br />
On the software side, the SAA7146 is setup to do the packet adquisition and the '''RPS1''' to<br />
generate the '''VSYNC''' signal; the DVB driver must read and demultiplex the packets, as done<br />
on budget cards.<br />
<br />
More details can be found on [http://perso.wanadoo.es/jesussolano/Ttf_tsc1.zip this file], which<br />
is the first (and unique for now) &quot;documentation&quot; of when this idea was developped; please note<br />
that this file is '''old''' (I patched the DVB drivers and now there is a '''budget-patch'''<br />
module in DVB_kernel) and that some Oops that I had now could be already solved.</div>Rdezahttps://www.linuxtv.org/wiki/index.php/DVB_TT_Budget_PatchDVB TT Budget Patch2004-09-30T18:56:40Z<p>Rdeza: Page creation</p>
<hr />
<div>== DVB-x Technotrend FF card Budget Patch ==<br />
<br />
<br />
This '''hardware modification''', allow to add the cappability of get the full Transport Stream<br />
(TS), of the tuned transponder, to a Full Function (FF) DVB card, while the rest of the<br />
functions of the FF card remains unaltered.<br />
<br />
Basically, the MPEG2 Demodulator outputs in the tuner must be connected to the free Digital Video<br />
port '''D1B''' in the SAA7146, as is done on TT_budget cards. On this budget cards, two IC's are<br />
used to generate a pseudo '''VSYNC''' signal for the &quot;'''frame adquisition'''&quot; of the TS packets<br />
&quot;'''lines'''&quot;; but with the resources in the SAA7146, this IC's can be avoided, using the<br />
'''RPS1''' to generate '''VSYNC''' on the '''GPIO3''' line (also free on all cards that I know,<br />
but maybe not on old Siemens DVB-C with the Analog module), which then is connected to<br />
'''D1B_VSYNC''' input.<br />
<br />
To make the 12 connections need, a small PCB (26*5mm) can be inserted between the tuner and the<br />
SAA7146 pins, making the soldering much more easy that using discrete wires (the SAA7146 pins are<br />
at 0.65mm raster!).<br />
<br />
On the software side, the SAA7146 is setup to do the packet adquisition and the '''RPS1''' to<br />
generate the '''VSYNC''' signal; the DVB driver must read and demultiplex the packets, as done<br />
on budget cards.<br />
<br />
More details can be found on [http://perso.wanadoo.es/jesussolano/Ttf_tsc1.zip this] file, which<br />
is the first (and unique for now) &quot;documentation&quot; of when this idea was developped; please note<br />
that this file is '''old''' (I patched the DVB drivers and now there is a budget-patch module in<br />
DVB_kernel) and that some Oops that I had now could be already solved.</div>Rdezahttps://www.linuxtv.org/wiki/index.php/Main_PageMain Page2004-09-30T18:54:05Z<p>Rdeza: Add Budget Patch page link</p>
<hr />
<div>__NOTOC__<br />
__NOEDITSECTION__<br />
<br />
&lt;div style=&quot;background-color:#6289AB; padding:0.3em; color:#ffffff; font-weight:bold; font-size:150%; text-align:center&quot;&gt;<br />
Welcome to the linuxtv.org Wiki!<br />
&lt;/div&gt;<br />
<br />
{|valign=top background=none<br />
|valign=top|<br />
&lt;div style=&quot;vertical-align:top; margin:0; border:1px solid #6289AB; padding:0.5em; background-color:#ffffff&quot;&gt;<br />
&lt;center&gt;<br />
This Wiki is intended to become the ultimate resource regarding all questions about Video, TV and DVB support on Linux, free DVB software and cool projects.<br />
<br />
Like every other Wiki it relies on the contributions of its users. Also this Wiki can only get as good as you and we mean: YOU!!! make it. <br />
<br />
Whatever you can contribute will be highly appreciated, no matter if it's a HOWTO, help and explanations how to write a driver, how to install some a driver or whether you can explain how that beast called DVB is working. <br />
<br />
have fun, enjoy -- ''The LinuxTV WikiTeam''<br />
<br />
<br />
''' ''The basic plan is to collect facts about available hardware, linux-dvb experiences, HOWTOs, encyclopedia-alike information and explanations how DVB, MPEG and MHP work, what is an EPG and so on, so that this will get a place useful for everybody who is doing anything related to analog or digital TV. Save and share knowledge.'' '''<br />
&lt;/center&gt;<br />
&lt;/div&gt;<br />
|}<br />
<br />
&lt;div style=&quot;margin:0; border:1px solid #6289AB; padding:0.5em; background-color:#F7F9FB;&quot;&gt;<br />
{|valign=top cellpadding=0 cellspacing=0 width=100%<br />
|valign=top bgcolor=#F7F9FB width=5%|<br />
|valign=top bgcolor=#F7F9FB width=45%|<br />
* '''Technical Background'''<br />
** [[DVB Standard]]<br />
** [[MPEG2 Standard]]<br />
** [[Analog TV]]<br />
** [[Digital TV]]<br />
** [[Modulation Scheme]]s used for Analog and Digital TV<br />
** [[PCI interface chipset]]s used for DVB cards<br />
** [[DVB at the USB bus]]<br />
** [[Hard- or Software Decoder?]]<br />
** [[i2c Protocol]]<br />
** [[DSM-CC ObjectCarousel Protocol]]<br />
<br />
* '''Developer Section'''<br />
**[[Supported DVB cards]]<br />
**[[DVB cards requiring definition]]<br />
**[[DVB API history and future]]<br />
**[[Anatomy of a DVB device]]<br />
**[[Anatomy of a LinuxTV driver]]<br />
**[[Bug Report|File a Bug Report]]<br />
**[[Code Review|Invitation for Code Review]]<br />
**[[Hints for Refactoring existing DVB drivers]]<br />
**[[Philosophy and holy Wars]]<br />
**[[The DVB Decoder Challenge]]<br />
<br />
* '''LinuxTV-based example Setups'''<br />
** [[VDR-based STBs]]<br />
** [[MythTV STBs]]<br />
** [[KaxTV on the Desktop]]<br />
** [[Enigma on the dbox2]]<br />
** [[Neutrino on the dbox2]]<br />
** [[Enigma on the Dreambox]]<br />
<br />
<br />
|valign=top bgcolor=#F7F9FB width=45%|<br />
* '''Supported Cards'''<br />
** [[DVB cards]]<br />
** [[DVB-S cards]]<br />
** [[DVB-T cards]]<br />
** [[DVB-C cards]]<br />
** [[DVB Card Vendors|Cards sorted by Vendor]]<br />
* '''Card modding'''<br />
** [[DVB 4MB Tuning]]<br />
** [[Cooling mods]]<br />
** [[DVB TT Budget Patch]]<br />
* '''Software'''<br />
** [[LinuxTV Drivers]]<br />
** [[LinuxTV dvb-apps]]<br />
** [[VDR]]<br />
** [[MythTV]]<br />
** [[KaxTV]]<br />
** [[dvbstream]]<br />
** [[dvbsnoop]]<br />
* '''Hardware solutions'''<br />
** [[Barebones and bundles]]<br />
** [[Commercial solutions]]<br />
** [[Examples of hardware]]<br />
** [[Streaming clients]]<br />
* '''Periphery for linuxtv-computers'''<br />
** [[Sat antenna]]<br />
** [[DVB-T antenna]]<br />
** [[DD receiver|Dolby Digital receiver]]<br />
<br />
* '''[[DVB Links]]'''<br />
|}<br />
&lt;/div&gt;<br />
<br />
Some existing links imported from the old website:<br />
[they all need to get cleaned up, please read the discussion texts, every help is highly appreciated!!!]</div>Rdeza