Version history
===============
Version 1.00  - 20050410    First release (SkyStar2 Revision V2.6C)
Version 1.01  - 20050417    Includes synchronization (FlexCop not always delivers
                            packets at zero offset)



For the last update or for more information visit the author at
   www.majority.nl
Author: 
  Marcel Majoor
E-mail:
  m.majoor@majority.nl



This is the README file for the SkyStar2 driver for WinSTB.

Contents of this package:
  Drivers\Install.bat      Run this file to install the driver
  FLEXCOP.DLL              Driver support for WinSTB
  README.TXT               This file

Feautures:
  . DiSEqC control (also supports positioner control but has not been fully tested)
  . Signal level quality indication (indication only)
  . Supports recording of the transport stream (.TS) (use PVAStrumento or ProjectX to
    convert it to an audio/video stream for further processing)
    Note: PVAStrumento only supports streams with both audio and video,
          so recordings from radio (with audio only) can not be converted with PVAStrumento!
  . Software common scrambling algorithm supported. Does not need an external handler (DLL)
    for this to work. Note: It is advised to use an EXTERNAL descrambler because of
    speed considerations (see .INI file)


Installation:
  To make WinSTB work with this card the following has to be done:
  1. Install the **device driver**.
     Run 'install.bat' to install it.
  2. Make sure the FLEXCOP.DLL file is located in the following
     directory:
     WinSTB_directory\DRIVERS\FLEXCOP\
  3. Change the driver selection of WinSTB by editing the 'settings.ini' file
     to
     [Hardware]
     DVBType=FLEXCOP
  4. Install DirectX 9 if it has not already been installed on your system.
  5. Make sure the WINSTB.GRF is 'operable'. 
     First make sure that the file 'usrc.ax' has been registered using 'register.bat'
     (this is typically already done by the installation of WinSTB).
     The default supplied WINSTB.GRF with WinSTB typically needs a decoder 
     attached to it to get a picture and sound.
     The two sample GRF files in this package can be used if either an InterVideo
     decoder is installed or a CyberLink decoder (see 'known issues' for using the
     CyberLink decoder). Copy them to the WinSTB directory with the name 
     'WINSTB.GRF' to have WinSTB use it.
     You can always make your own GRF file, but you need Microsofts GraphEdit to
     do this.
  6. Make sure the settings in FLEXCOP.INI correspond with the actual hardware
     you are using (see .INI file for details).
     


NOTE NOTE NOTE
The driver tries to locate a setting from it's local ini file first
(FLEXCOP.ini) and if no definition exists it tries to use the
applications ini file (WinSTB.ini).


The following rules apply to the local ini file (and not necessarily to the
applications ini file):
A parameter can be enclosed in either ' or " to indicate a string - this allows
the inclusion of spaces and such.
Each definition can be followed by a comment, which is inidcated by a ';'.
Examples
  [Debug]
  xxx= 'Yes'   ; This will translate into Yes without any quotes!
  xxx= '"Yes'  ; This will translate into "Yes
  xxx= Yes     ; This will translate into Yes
  xxx= "Yes "  ; This will translate into Yes  with a trailing space!

The driver uses settings which are not case sensitive. This means that 'Yes' and
'yes' are interpreted the same by the driver (this is not necessariliy the case
for the WinSTB application!).

  
    
    
Debug form:
  The driver has a debug screen which can be enabled by adding the following line:

  [Debug]
  FLEXCOPForm=Yes
  
  The debug screen of the driver can also be used to control DiSEqC devices. This
  is handy if one wants to setup the positions of satellites for a positioner or
  want to have some manual control.
  
  Notes on some of the information items:
  PIDs box:               These are the currently active PIDs (as set for the active channel)
  Packet buffers:         The number of buffers received. A single buffer consists of 1024
                          packets of 188 bytes each (about 200Kb).
  ms/buffer:              Time spacing in ms for each packet buffer arriving.
  Overtaken:              Indicates that data would have been lost if no additional buffering
                          was available. This value is incremented everytime the driver 
                          already has data available before previous data has been processed.
                          Buffering time currently is about 0.4 seconds.
  Filter calls:           Number of single packets send to the different filters.
  Filters defined:        Displays the number of filters and the PID identications for 
                          these filters. These are typically the same as the PIDs in
                          the PIDs box with some additions (eg. EPG).
  Estimated video rate:   Shows an approximation of the bitrate of the current video stream.
  Debug:                  Miscellaneous
    
    
DiSEqC:
  The driver itself also supports DiSEqC 1.2, meaning that it can control a positioner
  using satellite positions (instead of using DiSEqC 1.0 which only supports
  a positioner with 4 positions).
  For this the [DiSEqC] section is used.
  
  [DiSEqC]
  DiSEqCType=1.2         Set this to 1.2 for positioner control
  LNB?Source=?           The driver uses the number in LNB?Source for the
                         satellite selection.
  Example:
  LNB56Source=E19.2S Astra 1B,1C,1E,1F,1G,1H    will send position '56' to the positioner.
  
  Note: Although the driver supports this, the application may not allow for it.
        This is an untested feature.
        For the type of LNB (LOF1/LOF2) the settings for LNB1 are used.
  
  When using DiSEqC devices which are cascaded, the DiSEqC commands need to be repeated,
  so the commands are passed on properly. If two DiSEqC devices are cascaded the
  repeat is typically set to '1'. For three cascaded devices the repeats should be set
  to '2', etc. The following setting makes the number of repeats variable:
  [DiSEqC]  
  RepeatCommand=1        Sets repeats to '1' (default)
    
    
    
Additional settings used by the driver:
  [Hardware]
  ThreadPriority=        Default is 'Default'.
                         The priority used for processing the data.
                         Valid values are: 'Lowest', 'Low', 'Normal', 'Default', 'High',
                         'Highest, 'Realtime'.
                         The default setting used is 'High' (same as 'Default')
                         Note: For time critical operations set this to 'Realtime'
                         The low priority settings can be used to test the buffering
                         capability of the system (you should see an increase of the
                         'Overtaken' counter if the debug screen of the driver is shown.

  [Recording]
  IncludeInTSRecording=  Default is 'Video, Audio, PMT, PCR'.
                         The stream types to be included in the recording are given here.
                         The indicated streams are only recorded if they are 'activated'
                         by the application!
                         Example:
                           IncludeInTSRecording=audio,video,pmt,pcr
                         This, by the way, is the default; all the major streams belonging 
                         to the current program are recorded.
                         The streams which can be included are:
                           audio, video, pmt, pcr, ecm, sid, ac3, teletext
                         Note: You typically need at least 'audio,video,pmt' if you use
                               PvaStrumento to convert the stream. 
                         Note: Some plugins can remove certain streams from being processed.
                               If this is the case then these are not recorded!

  [Debug]                               
  LogLevel=              Default is '0'.
                         The number (0-5) indicates what needs to be logged. The higher the number the
                         more is logged.
                         If this setting is not present (or 0) then no log file is used.
                         Note: Only supported for the local ini file. Placing this in the application
                               ini file has no impact.

  [Debug]                               
  LogClear=              Default is 'Yes'.
                         If set to Yes then the log file is always cleared, otherwise log data is appended.
                         Note: Only supported for the local ini file. Placing this in the application
                               ini file has no impact.


  [Interface]
  DisplayOff=            Default is 'No'.
                         Switches video/audio output off. Can be used for 'silent' recordings.
                         You will still have an OSD display but no actual video/audio.
                         This decreases the 'load' on a 2.4GHz system by about 30% (typical load
                         of the system is about 60%; without video/audio about 30%). Especially
                         suited when simultaneous recordings are being made from different programs
                         on the same transponder.
                         Note: Don't be fooled to think that just minimizing the WinSTB display screen
                               switches off the output (and thereby reducing the load on the system).
                               When minimized, all data is still being processed/send to the
                               video/output processoring parts (ActiveX) and therefore the load on
                               the system keeps the same.
                               On a typical 2.4GHz system two running instances of WinSTB can not
                               produce an uninterrupted visual display of both channels.

  [Interface]
  HandleMdApi=           Default is 'No'.
                         When set to 'Yes' the driver will handle some additional MDAPI calls
                         which are otherwise handled by the application:
                         . MDAPI_START_FILTER
                         . MDAPI_STOP_FILTER

                         By default the driver handles only one MDAPI command:
                         . DVB_COMMAND (when 'Cmd_laenge' is 7)

  [Interface]
  CSA=                   Default is ''.
                         Sets the external file for the common scrambling algorithm.
                         Example:
                           CSA=csa.dll
                         This file typically resides in the same directory as the WinSTB executable.
                         By default the internal mechanism is used.
                         

    
The following is a summary of all settings in <settings.ini> or <flexcop.ini>
which are used by the driver:
  [DiSEqC]
  DiSEqCType=
  LNB?Source=
  RepeatCommand=

  [LNB]
  LNB?Type=
  LNB?LOF1=9750
  LNB?LOF2=10600

  [Hardware]
  DVBType=FLEXCOP          *** REQUIRED IN THE APPLICATION INI FILE
  ThreadPriority=

  [Debug]
  FLEXCOPForm=
  LogLevel=
  LogClear=

  [Interface]
  DisplayDuringRecording=
  DisplayOff=
  HandleMdApi=
  CSA=

  [Recording]
  RecordDirectory=
  IncludeInTSRecording=
