Welcome to FreeTV!

Introduction
============
This program is a technology demonstration. Its purpose is to demonstrate the power of
new hardware and software technologies like MMX and DirectX. Only the combination of these
technologies enables FreeTV to achieve its breakthru performance. FreeTV descrambles and
displays a nagravision encoded video signal in realtime on todays entry level PCs.
Even an AMD K6-233 can easily reach full frame rate in color 386*576 scaled to fullscreen 
using standard video acceleration hardware. 

Disclaimer
==========
This program is not intended to be used as a tv viewer. The author takes now responsibilty
for anyone using this program in any way. Also, this program comes with no warranties,
neither expressed or implied. It is not guarrantied that this program fits a certain purpose
or does cause some damage. You use it at your own risk and are the only one reponsible!

System Requierements
====================
Anyway minimum system requierements are

- MMX Processor
  FreeTV is optimized for AMD K6 processors.
- 64 MB RAM
  Less may cause constant swapping.
- PCI Graphics Card with 800*600 in 256 color and 16 Bit HiColor
  The availability of an streched YUY2 overlay significantly imroves performance
- a Video for Vindows compatible video capture card than can capture 576 lines at a width
  of 360,384,720 or 768 in RGB16 or YUY2 at full frame rate

Suggested is:
- AMD K6-266 or better processor
- 64 MB RAM
- Fast Graphics Card with scaled YUY2 overlay
- a Video for Vindows compatible video capture card than can capture 576 lines at a width
  of 360,384,720 or 768 in YUY2 at full frame rate with low overhead, like Bt848 cards
  like Hauppauge's WinTV or WinCast/TV and Miro's PCTV do

Installation
============
Just copy it to your harddisk and get the appropriate KEY.TXT for the stations you want to watch. 
FreeTV uses PCTV compatible key files. This means that a key file is a text file which has 255
lines with a number from 0..31 in each. The keyfile is not included since it may be illegal to
extract the proper keys. You ca get valid key files from the PCTV home page at www.eurosat.com and
various other sources. Just copy it to the program directory.

Bindings
========
FreeTV uses "Binding Files" that tell it at what position the capture board actually digitizes
a given source line. The file names follow a special naming sheme. For different input formats
different bindings are used.
NOTE: The binding files for different input widths are usually identical.
The naming convention is:

FreeTV <Width>x<Height>[ flipped][ second].bnd

where [] indicates an optional part. Valid examples are:

FreeTV 360x576.bnd
FreeTV 720x576 flipped.bnd
FreeTV 720x576 flipped second.bnd
FreeTV 720x576 second.bnd

invalid is

FreeTV 720x576 second flipped.bnd

The keyword flipped indicates an RGB16 input mode. Second indicates that the second field is used 
that is distributed on two frames. This happens when using the "be clever" decoding sheme.
So an input format of

384*576 RGB16 All Keys

has the binding file

FreeTV 384x576 flipped.bnd

while

384*576 YUY2 All Keys

uses

FreeTV 384x576.bnd

and

384*576 YUY2 Be Clever

uses

FreeTV 384x576 second.bnd

Note that the Bindings for other cards than the Hauppauge will be different. 
WARNING: Please use the enclosed driver dll for your Hauppauge card or this program WILL not work!

How to create the correct bindings for your board ?

Theoretical <Width>x<576>.bnd files look as follows:
509
511
..
571
573
0
2
..
506
508

Theoretical <Width>x<576> flipped.bnd files look as follows:
64
60
..
4
2
575
573
..
67
65

by adding 1 you get the second files. Try to tune card this way:
First try to make an "easy" mode working. Since "Be Clever" mode totally messes up if the setup is 
wrong use "check all keys" to start tuning. Build a theoretical .bnd file and run the program.
There should only be errors on top the top of the image. Try increasing/decreasing the block starts
in the .bnd file by 2 to find the correct binding. For lines your digitized seems to eat up insert
-1. Note that the program has problems to handle consecutive -1 lines.

Performance Tuning
==================
Best performance comes in 360x576 YUY2 -> YUY2 Overlay with a low number of couples and "Be Clever" turned on.
Or just Greyscale, if thats not too ugly;)

Quality Tuning
==================
- 768x576 YUY2 -> YUY2 Overlay with a nice video scaler, "Be clever" if it works and a high number of couples
  and Mutithreading of.

What means "Be Clever"
======================
This decode mode makes some assumptions about the encoded image. This does not always work. It is
reported to work with premiere for all movies and most other broadcasts, but is reported to fail
sometimes on their own productions.

Contact
=======
Watch the movie or use the english messageboard at www.eurosat.com

Known Bugs
==========
YUY2 Overlay may not work on some machines that should support it. Just use RGB16 output here.

Future Improvements
===================
- Easier Binding configuration.
- YUY2 blitter acceleration if available
- Double and Smooth for RGb16 Output
- Even more clever decoding