hVCPlus 1.00 README

Contents:

License
Preface
What's hVCPlus?
The Authors
What's new?
Starting hVCPlus
The starting dialogs
Program options reference
Options for the command line
Settings for other, not BT compatible TV cards
Adding other BT compatible TV cards
Performance Monitor
Frequently asked questions (FAQ)
Known Bugs
Preview
Links
Credits
 

Most of this readme was translated in a hurry within three days. So it may not be guiding in gramatically exactness and spelling. :)


License.

1. General
YOU MAY ONLY USE THIS SOFTWARE FOR SCIENTIFIC PURPOSES.
WE ADVISE YOU TO USE THIS SOFTWARE ONLY FOR THE UNDERSTANDING OF THE BASIC PRINCIPLES OF THE ALGORITHMIC PROCESSES.
IT MAY BE ILLEGAL TO USE THIS SOFTWARE TO DECODE CHANNELS WITHOUT A REGULAR SUBSCRIPTION.
WE ARE NOT RESPONSIBLE FOR THE CORRECT FUNCTIONALITY OF THE PROGRAM AND THE RESULTING DIRECT OR INDIRECT CONSEQUENCES.

2. Use
This program is freeware. Using the program is free of charge.

3. Distribution
You may not sell the program or the source code, especially by auction. For selling on an disk or CD you may demand a fee for material and work. Before selling it, you have to point out that the fee is only for material and work. Auctions are not a fee for material or work. You may freely distribute the program at no charge, as long as no part of the program package is altered or removed. You may publicate the readme files in its unaltered form. The following files are part of the program package:

hVCPlus.exe
hVCPlus.ini
readme.htm
readme_en.htm
hVCPDX5E.dll
Hwio95.vxd
Hwiodrv.dll
HwioNT.sys
4. Source code.
You may use the source code freely. Programs, that are created by using the source code may be freely distributed, as long as they differ in some essential functionality from the original program and as long as there's a note in the program package, which describes, which parts are originally by hVCPlus. The publication of the source code is desirable but not mandatory.
 

Preface

Over two years are gone since the first beta release of hVCPlus. Two years with many highlights and lowlights. The basic ideas of Videocrypt decoding are even older.

In summer 1999, due to the switching of the Sky decoding cards, there was a short time where the Sky programs were vulnerable to key attacks, because the actual decryption was repeated quite often. hVCPlus was the first program that was able to use this vulnerability quite good. Until august 1999, with the excellent help of many programs and helpers, a quite good decoding quality was possible. But after the card switching was done, this attack did not work any more.

We had a phase of resignation after that. Decoding quality was a lot worse again, the chances to improve that were bad. But some projects continued development anyway. We had to use every little bit of information the encryption was willing to give us. A race started between several projects, like I Want It All, XCrypt and hVCPlus. In Summer 2000, we finally reached a quite acceptable quality again.

The next breakthrough was in autumn 2000: We were able to find the last missing informations about how the decoder, especially the random numer generators, the PRNG's, work: Theoretically, we were able to build a complete decoder using a PC and an official decoding card. But that didnt help for software decoding, at least not for now.
The final breakthrough was at the beginning of 2001, where we found a method to break through these random number generators. By that, the error-free decoding of a small part of the picture in several frames gave us enough information to decode a small film sequence completely error-free. The remaining time until now was used to optimize this as good as possible. The result of these efforts is hVCPlus 1.0

Now the end of this long process is reached, and its a highlight and a lowlight together. For the first time, the image quality is good enough so that one cant see the difference between encrypted and unencrypted channels most time. But unfortunately, the time of Videocrypt encoded analogue TV is at its end, at least in europe. Only a few channels are left, and even these few will shut down in a few months. An old statement seems to turn into a prophecy: Even if we break through Videocrypt one day before shutdown, we still won.

By this, I think its time to give hVCPlus the version number 1.0. This also matches an old wish of Viper_jk, he wanted to spare the 1.0 version number for the first version with perfect picture quality. Back then I did not believe that this would be possible one day...
 

What's hVCPlus?

hVCPlus stands for "Heuristic Videocrypt Decoder" and is a program for decoding Videocrypt I & II encrypted TV channels. To do this, the program analyzes the encrypted image information and trys to re-create the correct key to decode the picture.

System requirements:


The Authors

hVCPlus is based on the source code to MoreTV 2.83 by Feuerstein. Without this (not to underestimate) basic work, hVCPlus probably would not have been possible.

Until "Beta 4" (Aug. 99), hVCPlus was developed by viper_jk. After that, there were some modifications by no_operation. At the same time, viper_jk retired for a while.

Currently, the development of hVCPlus is done by no_operation.
 

What's new?

PRNG Reverse Decode, version 3:
Error tolerant multi bit fingerprint detection algorithms, special equation solving algorithms.
Results in an even higher key detection rate.
DelayLoop re-implemented:
Configurable loop length, thus better usage of key hits.
Audio-Loop now has three different modes, for higher compatibility.
Audio-Loop now configurable using dialogs.
Audio-Resynchronisation can be invoked manually by pressing R.
Automatic audio mixer switching on loop on/off.
Interlaced/50fps re-implemented:
Dynamic switching between 25fps and 50fps now in both modes.
Key detect in both modes starting with at least 25fps.
Lower CPU load in key modes.
PAL full frame decoding (720 Intl / Average) using an 800-900MHz CPU.
Replaced Key Offset with an more complete approach.
Volume control.
Dialogs/menus updated.
Performance-Monitoring:
Splitted frame rate output for decoding/output.
Enhanced key display
Enhanced statistics for Key Hit/Miss
BT-Settings: VDelay (vertical image alignment) configurable.


Starting hVCPlus

To install hVCPlus simply extract all files from the archive to a directory of your choice. After that choose one of these ways:

  1. Supported, BT compatible TV cards:
    Start hVCPlus. On the first dialog tab, you can choose a quality/speed profile. If you have more than one TV input card, choose the right video driver on the second tab. The WDM wrapper, "Microsoft WDM Image Capture", usally doesnt work.
    For sound support choose your TV card on the second tab. The audio signal should be routed through the line input of your sound card. For channel switching choose the right tuner type.
    You have to set the correct TV channel after starting. See below.
     
  2. Not supported, BT compatible TV cards:
    The only way to activate the TV sound is to start your original TV application (like WINTV32.EXE, or sth. like that). Then start hVCPlus. Select the correct video driver on the second tab, if you have more than one. Select the correct tuner type. Leave the card type on No Card, this will prevent hVCPlus from switching the audio channel.
    Alternatively: Add your card to hVCPlus.ini, see below.
     
  3. BT compatible card, problems finding the TV channel:
    If the channel switching doesnt work for some reason, you can choose your TV channel by a different program. Set the channel using your original TV application, then select the tuner type "No Tuner" on the second tab. After starting hVCPlus, the last selected tuner channel should be available as EXT0.
     
  4. Not BT compatible TV cards:
    Currently, there's only a profile for Erazor III cards. After loading the profile, make sure, the correct video driver is selected on the second tab. There's no way to control the tuner or to activate the sound of your card. See also the section about other cards.
You can pop up a onscreen menu by pressing M. You can leave the program by pressing F10.

After the start, you can switch the channel with left/right (see menu). If the TV signal doesnt match exactly to a channel, you can correct that by adjusting finetune. By pressing CTRL-0-9 (numeric block), you can save the current channel, by pressing 0-9 (numeric block) you can restore the channel. Upon program start, channel 0 is loaded.

For optimum decoding quality, adjust the ColorFix1 value in the onscreen menu.
 

The starting  dialogs

Currently, there are four dialog pages.

On the first page you can see some program information. You can also load and save program profiles from here. The following profiles currently exist:

- Default
The program defaults. Automatically loaded on program launch, except if you specified a different profile on program launch.
-Default / DelayLoop
Like Default, but with deactivated DelayLoop output.
- 360 / Optimize Speed
- 360 / Average Speed/Q.
- 360 Intl / Average Speed/Q.
- 360 Intl / Optimize Quality
- 720 / Optimize Speed
- 720 / Average Speed/Q.
- 720 Intl / Average Speed/Q.
- 720 Intl / Optimize Quality
Different profiles with different quality/speed/resolution. "Speed" is optimized for high frame rates, "Average" is a mid-way, and "Quality" is for people with too much CPU power. Intl. modes try to decode the second half frame, if enough time is left.
- CPU Challenge
- CPU Challenge Ultra
These profiles should push every CPU to its limits. The frame rates can go up to 50fps!
- Erazor III
This profile contains the necessary profiles for video input on Erazor III cards.
- Video tape
With this profile it is possible to get some usable decoding from a video tape
These default settings are only a suggestion. There's a lot of things to experiment with!

On the second page there are several options for video input
On the third page there are options for output and delay loop. For a description, see below.

On the fourth and fifth page there are options for the decoding process. You can change these options while the decoder is running by using the onscreen menu. For a description, see below.
 
 

Program options reference
 
Dialog option Onscreen-Menu Key Description
Load
Profile
    Loads a saved profile from the INI file. The profile is loaded as soon as a entry is selected.
Save As...     Stores all settings to the INI file for later reloading.
Video
Driver
    In this list, you can choose the TV card driver, in case that you have more than one. The WDM-wrapper "Microsoft WDM Image Capture" usally doesnt work.
Capture
Res
    In this list, you can choose the desired TV capture resolution. Not all resolutions are supported by all TV cards. The resolutions 360x288 and 720x288 are especially good for decoding Videocrypt. 
Line Mode     Sets the handling of half frames and full frames:

288 Lines - Compatibility: Captures only 288 lines. May be necessary for non-BT-cards up to 384x288 capture.

Force 576 Lines: Forces the driver to always capture full frames (576 lines), but only uses the first half frame for decoding. (Default)

Enable 50fps: Forces the driver to always capture 25 full frames /s, but decodes the second half frame only if there's enough time left. The half frames are displayed one after the other, with up to 50fps.

50fps Interlaced: Forces the driver to always capture 25 full frames/s, but decodes the second half frame only if there's enough time left. The half frames are displayed alternately in even/odd lines, with up to 50fps. (???x576, Interlaced)

Flip Picture
vertically
    Flips the picture vertically to solve problems with some TV cards / drivers.
Swap Fields Key/
Swap Fields
W Swaps both half frames. Nearly all BT card drivers deliver half frames in swapped order. (Needs Force 576 Lines or higher)
Brightness
Correction
  F12 Correct line brightness for viper_jk's old SAT receiver.
Odd Frame
key-only
Key/
Odd frame key
detect only
E On: Scan the second half frame for matching keys, but does not decode the picture completely otherwise. In key-mode the output rate is 50fps, without keys, the output rate is 25fps.

Off: The second half frame always gets decoded, if enough time is left.

Needs 50fps or Interlaced.

Optimize
for BT8xx
    Activates register-level optimizations for BT8xx based TV cards. This is necessary for best decoding quality.
TV card     For BT compatible cards, you can choose your TV card. This is needed to activate the sound output of your card. If you select a TV card, the correct tuner type gets automatically selected.

No Card: No special TV card. The sound input settings won't be accessed.

Miro PCTV/Hauppauge BT8x8: These card data is based on MoreTV 2.83.

Other Cards: These cards are, with friendly permission, imported from the BTW-Database. The sound access may not work in all cases completely.

Tuner type     Selects the tuner type for BT compatible cards, for channel switching on the antenna input. This option is automatically chosen by selecting a TV card.
If you select "No Tuner", you'll loose the capability to set a tuner channel. Instead of that you get an EXT0 input.
Output
mode
    Selects the output mode. You can choose windowed mode or the fullscreen resolution, and the color system (YUY2 Overlay or RGB Hi-Color).
Use vertical
sync
    Synchronizes the screen output with the screen refresh of the graphics card.
Output
Compatibility
    Uses a more simple way for screen output. May help solving problems with some non-BT-cards. Former "Erazor-Mode"
Show always
Statistics
    Permanently displays a status bar. In windowed mode, the status text appears in the title bar.
Enable
Audio+Video
Delay Loop
  L Activates the output of picture and sound delayed by 0.6s. By this, the PRNG decoder can work continuously.
For this mode, the TV sound has to be routed through a sound card input.
For this mode, a Full Duplex sound card is required.
Loop Length     Length of the delay loop in (full-) frames. 15 is needed for continuous decoding, higher values may increase the key hit quota. The highest value useable value is 64.
This function needs up to 50Mb RAM, depending on the output resolution.
Reverse Init
Order
    Off: Normal audio initialisation: First play, then record.
On: Reverse audio initialisation: First record, then play.
May solve problems with Full Duplex.
Audio Loop
Type
    Type of audio looping:

No Audio Loop: Does not delay the sound.

DirectX5 Audio Loop: Event driven DirectX delay.

WaveIO Audio Loop: Message driven WaveIO delay. Does not need DirectX5, thus compatible to NT4.

DirectX5 polling: Polling driven DirectX5 audio loop.

Sample Rate     Defines the sample rate for the audio loop.
Suggested: 11025, 22050, or 44100.
16 Bit     Switches bertween 8-bit and 16-bit.
Stereo     Switches between mono and stereo.
Tolerance Hi
Tolerance Lo
    Defines, how much the delay time of the audio loop can differ from the loop length.
The audio loop has a alowed length of  HiTolerance shorter and LoTolerance longer.
Control Audio
Mixer
    Takes control over the sound card mixer.
Activates the line output or the delayed sound output, depending on the current state of the Delay Loop. The original mixer state is restored on program end.
Volume Optimize BT/
Volume
  Controls the audio volume in a range of 0-100. * starts with the volume level upon program start. The original sound volume is restored at program end.
Decode
Mode
Menu right TAB, F2 Decode mode. You can choose between unencrypted, Videocrypt and Soft-Videocrypt. Currently, Channel 5 and TNT/Cartoon Network are Soft-Videocrypt encoded.
Render Mode Decoding/
F6
F6 Chooses an output mode:

Color output: Shows the picture without the left border and with color reconstruction. The color is reconstructed from the cutpoints.

Color+Border output: Shows the picture with border and color.

MixColor output: Same as Color output, but mixes the color information of two lines to improve the color quality.

MixColor+Border output: Guess, what...

Black and White output: Shows the picture in Black&White and without border.

BW+Border output: Shows the picture in Black&White and with border.

Color+BlockDebug output: Shows the picture with color and uses the left border to show informations about the decoding quality and the block splitting:
Red: Possibly bad decoded line.
Green: Line, where the ADL correction was used.
White: A block of good decoded lines.

Auto Decoding/
Auto detect
decode mode
D Automatic detection of the current encryption method. In this mode, hVCPlus tries to detect the current encryption method and sets the appropriate decode mode by itself. The detection routines are optimized for low CPU utilization.
Softcrypt detection may not work on low frame rates.
    ESC Stop capturing
    F1 Restart capturing
By that, the capture-process is restarted. If the decoding suddenly gets slower or stops completely, it often helps to presss ESC,F1. The reason is usally bad reception or cable problems.
    F10 End program.
    M,
Shift-M
Show menu / status
Shows a menu with status information and key mappings, or the status line.
    Up/
Down
Choose menu option
Chooses the active menu component in the left half of the menu and changes the menu card.
    CTRL-
Left/
Right
Quick jump menu pages
Jumps directly to the previous/next menu card.
    Left/
Right
Change menu option
Changes the menu option choosen by up/down.
  Optimize BT/
Channel
  Choose current channel.
Selects a video input or chooses a TV channel at the tuner input.
Needs "Optimize for BT8xx" and the correct selection of the tuner type.
  Optimize BT/
Finetune
  Fine tune the TV channel.
Lets you fine tune the tuner channel frequency. The usual range is +/-50. Needs "Optimize for BT8xx" and the correct selection of the tuner type.
    0-9
numeric
block
Select saved channel
Selects a previously saved channel. Needs "Optimize for BT8xx" and the correct selection of the tuner type.
    CTRL 0-9
numeric
block
Select saved channel
Selects a previously saved channel. Needs "Optimize for BT8xx" and the correct selection of the tuner type.
  Optimize BT/
HScale
  Fine tune the screen width to the cutpoints. The default value upon program launch can be set in the INI file for the resolutions 360x288 and 720x288. -2 keeps the value at startup. Needs "Optimize for BT8xx".
  Optimize BT/
HDelay
  Fine tune the horizontal screen shift, if the unencrypted border gets into the decoding area. The default value upon program launch can be set in the INI file for the resolutions 360x288 and 720x288. -2 keeps the value at startup. Needs "Optimize for BT8xx".
  Optimize BT/
VDelay
  Fine tune the vertical screen shift. At program launch, a value of 34 is used. Default value can be set in the INI file. -2 keeps the value at startup. Needs "Optimize for BT8xx".
  Optimize BT/
Brightness
  Sets the screen brightness for the TV card. "Needs Optimize for BT8xx"
  Optimize BT/
Contrast
  Sets the screen contrast for the TV card. "Needs Optimize for BT8xx"
  Optimize BT/
Saturation
  Sets the color saturation for the TV card. "Needs Optimize for BT8xx"
Line range Decoding/
First Line,
Last Line
  Limits the decoding area. A smaller area can speed up decoding.
    Shift-F5 Choose format 20:9
    Shift-F6 Choose format 16:9
    Shift-F7 Choose format 4:3
Dec. Width Decoding/
Decode Width
  Sets the width of the decoding area. The default value of 986 means, that the decoding width is 98.6% of the capture width. For 720x288, this is 710 pixel (10 pixel border), for 360x288, this is 355 pixel (5 pixel border).
ColorFix1 Decoding/
ColorFix1
  Fine adjustment of the color constants. Some color constants seem to be hardware/TV channel dependant.

If the picture is jumping left-rigtht and gets 'blue' (means 180 degree color rotation), this value must be adjusted. This effect can be forced by setting the BC-value to 80:20. Usally, the rule is: Jumps to the left: decrease value, jumps to the rigtht: increase value.

The value in the brackets measures the correct value, but is only correct if the picture is decoded error-free for several seconds.

For experimens try using a Softcrypt-encoded TV channel, because the measure function is very good while decoding Softcrypt.

ColorFix2 Decoding/
ColorFix2
  Fine adjusts another color constant. In this case the measure function is not dependant of the decoding quality, so you just have to set the measured value.
ColorFix3 Decoding/
ColorFix3
  The third color constant. The color correlation (CC) depends on it. Usally you dont have to set this.
    Q Quick Color Fix. Automatically uses the detected values for color fixing. Only use on really good pictures!
PRNG 
reverse 
decoding
Key/
PRNG reverse 
decode mode
P Experimental, Pseudo-Random-Number-Generator based decoder. Tries to reconstruct the internal decoder state. If this mode works, the picture should be error-free, and there will be a key number shown in the status line.
Link half
frame keys
Key/
Link half 
frame keys
H On: If a key is detected in one half frame, it is used for the other half frame too, without re-checking.

Off: Every frame is decoded independently, no key gets re-used without re-checking. Higher CPU load.

Needs 50fps or Interlaced mode.

VC Couples Key/
VC Couples
  Adjusts, how many lines are used for identifying the correct key for key decoding. Even small values result in good decoding. Higher values keep the decoding stable even in difficult situations, but need more CPU power for that.
Key Offset Key/
Key Offset E/O
  Vertical alignment of the Softcrypt keys. For Non-BT-Cards, this value has to be adjusted to the TV card.

E: Shifts the first (even) half frame, the main frame.
O: Shifts the second (odd) half frame, only needed for 50fps / Interlaced mode.

L2 Range Correlation/
L2 Search
Range
  Second of the three B&W decoding steps: Search range of the L2 decoder. The L1 decoder generates a result with a precision of +/- 16 pixels. L2 Range is the search range around that point.
L2 Stepwid. Correlation/
L2 Stepwidth
  Second of the three B&W decoding steps: Stepwidth of the L2 decoder. 1 results in a precise, but slow search. 5 is a fast search. Values bigger than 5 get slow again, because, as a result, the L3 decoder needs more time.
Color
Correlation
Correlation/
(F9)
F9 With this option you can activate the color correlation decoder.

No CC: Normal, classic decoding.

CC: Just color correlation. By that, the even and odd lines run apart, resulting in a double picture (comb-like errors).

CC+ADL: Color correlation + ADL correction. (Alternating Differences List)
Searches for comb-like errors and trys to remove them.

CC+ADL+ReCC: Like CC+ADL, but does an additional line correlation after the border detection, to remove remaining errors.

Color Correl./
Color Boost
Correlation/
Color Boost
  Adjusts the mixing ratio for color correlation. 100:0 only uses color information, 0:100 only uses B&W information.
Color Correl./
Search Range
Correlation/
Color Correct
Range
  Determines the maximum search range for the color correlation.
Color Border
Detect
Border/
Border Detect
with Color
B Activates the color supported border detection.

Distribution / Off: Border detection by the distribution of the cutpoints

Color Match / On: Border detection with addititional color checks and Frame Correlation

Border
Boost
Border/
Border Boost
  Adjusts the mixing ratio for color border detection. 
100:0:0 searches the border only by color information.
0:100:0 searches the border only by cutpoint distribution statistics.
x:x:100 trys to set the border simillar to the last frame. (Frame Correlation)
Lines/
Block
Border/
Max. Lines/Blk
  Maximum number of lines for sampling the color information for the color border detection. (per block)
Block
Decoding
type
Block Mode/
Block Split
S Block splitting mode.

Single Block: No block splitting, the whole picture is one block, except for "Split Blocks By ADL".

Quality Block Split: Search for bad decodable lines. Does the border detection in blocks of good decoded lines separately.

Extended Block Split: On scenes with big bad blocks, this mode tries to recover some of these blocks, using low block limit.

Split Blocks
by ADL
Color Correl./
Split Blocks
by ADL
A Marks all changes done by the ADL correction filter as bad lines and does some additional block splits. On good decoding conditions, it can reduce decoding errors like distortions. On bad decoding conditions, it can also reduce the quality, because it creates too many blocks.
Block Limit Block Mode/
Block Limit
  Adjusts the sensitivity of the decoding error detection.
Determines, up to which quality value a line is considered as bad.
(Mainly detects errors that result in left-right jumps of parts of the image, like horizontal lines or text blocks.)
See also "Mark ADL Errors" and "Block Decoding"
Low Block Limit Block Mode/
Low Block
Limit
  Defines a second quality limit. If too many lines are below the Block Limit, this second limit is used to recover some blocks.
Block Lazy Block Mode/
Block Lazy
  Adds a lazieness to the error detection system: Lines, that are assumed to be very bad decoded, keep being bad for several frames, getting slowly better. 0 for off.
Min. Block
Size
Block Mode/
Min. Block Size
  Minimum block size. Determines, how many lines of good decoding are necessary to build a 'good' block.
    C Capture BMP
Saves the current picture as CAPTnnnn.BMP in the current directory.
    Shift-C Capture YUY2
Saves the current undecoded frame to the file pic.yuy2.
    F Freeze mode.
Decodes in a endless loop the same picture.
By that, you can observe, how the picture changes if you change some of the decoding parameters.
    Shift-F Load Freeze from pic.yuy2
Loads a frame from the file pic.yuy2 to the freeze buffer and activates the freeze buffer.
    O Performance Monitoring.
Displays additional performance monitoring information in the menu. (3 pages!) See below.

Options for the command line

The universal hVCPlus call convention:

hvcplus [profile_name] [-S] [-Txx] [-TSxx]
Meaning:


Settings for other, not BT compatible TV cards

Since hVCplus is based on MoreTV 2.83, and by that on Video for Windows, it can use every TV input. But for perfect Videocrypt decoding, some special hardware adjustments are necessary. Because of that, the quality on non-BT-cards is quite bad. However, here are some tips:
 

Elsa Erazor / Elsa Erazor III Pro ViVo

Capture resolution has to be 704x288 or 768x288. The option "Output Compatibility" has to be checked. Output works for all RGB modes. YUY2 may work. Dec. Width has to be 994. For key decoding, KeyOffset has to be set to 1. Swap Fields sould be off.
These settings are stored as the profile "Erazor III".

With "Force 576 Lines" deactivated, you can capture at 352x288 and 384x288 too, but the captured part of the picture is too small: The Videocrypt area ends outside the screen on the left and on the right.

Other TV-In's

If the TV card supports capturing at 7xx*576, try using 7xx*288 and "[x] Force 576 Lines". If the card supports capturing at 3xx*288, try using 3xx*288 and "[  ] Force 576 Lines". Using RGB output with "Compatibility Mode" causes the least trouble. After that, try if other options are possible. You probably have to adjust the decoding width, but you can do that while the decoder is running.
 

Adding other BT compatible TV cards

All TV card informations are stored in the INI file. Because of that, its easy to add new card information to hVCPlus.

The lazy way: Take a look at the BTW database, there's a list of other TV cards. There's also a hVCPlus export function.

The fast way: Add the following to the INI file:

[CRD_My TV card]
default_tuner=0
audio_mux0=FC33F2
audio_mute=FC33F8
The card name can be freely choosen.
default_tuner should be 0 for Temic-Tuners and 2 for Philips-Tuners.
The value of audio_mux0 is often referred as GPIO_TUNER. The value of audio_mute is often referred as GPIO_MUTE.

Precise: This is an universal entry:

[CRD_Card name]
mux_order=x,x,x,x
default_tuner=x
audio_mask=x
audio_mute=x
audio_mux0=x
audio_mux1=x
audio_mux2=x
audio_mux3=x
hVCPlus accepts all entries starting with CRD_ as TV card.

mux_order: Ordering of the TV chip inputs Tuner,EXT1,EXT2,EXT3, as in bit 5-6 of GPIO_IFORM. Missing entries are automatically completed. Default 2,3,1,0.

default_tuner: Automatically suggested tuner type. 0=Temic Pal B/G, 2=Philips Pal B/G. Default: No tuner.

audio_mask: (Hex) Bit mask for accessing GPIO_DATA. 0-Bit stays untouched. Default FFFFFF

audio_mute: (Hex) Bit mask for GPIO_DATA, activating sound mute.
audio_mux0: same, activating tuner sound output. Default to mute.
audio_mux1-3: same, activating EXT1-3 sound. Default to mute.
 
 

Performance Monitor

The performance monitor is a diagnostic tool to measure the CPU load of different parts of the decoder. The monitor has two pages shown in the onscreen menu. The information is the running time in milliseconds / the number of calls for decoding one half frame.
Some values are not available in the release build of hVCPlus due to their performance impact. If needed, I can provide a special build with full performance monitoring.
The values in detail:
 
CPU Clock Current CPU clock.
Idle+Capt Idle-time of the decoder: Time between two half frames.
50Dly Idle-time between half frames for 50fps/Interlaced mode.
Decode Overall time for decoding
Output Overall time for output
Autodetect Time to detect the encryption method.
Zoom (L1) Dec Time/Number of calls for the L1 decoder: Zoom decoder.
Ln Comp (BW) Time/Number of calls for the BW line compare.
Not available in release build.
Ln Comp (Color) Time/Number of calls for the color line compare.
Not available in release build.
LCCache Access statistics for line compare cache: Cache hits / Cache hit, but need to recalculate / Cache miss.
Not available in release build.
Convert Time to convert thne frame buffer: YUY2 to BW / BW to Zoom / YUY2 to Phi+Chroma
Not available in release build.
Zoom Dec (L1) Overall time for L1 decoder: Zoom decoder.
BW Dec (L2) Overall time for L2 decoder: rough search.
BW Dec (L3) Overall time for L3 decoder: fine search.
Simp. Border Simple border detection using distribution.
Color Correl. Color Correlation (CC) + ADL-correction
Adv. Border Border detection using color and Frame Correlation
ReCC Dec. ReCC decoder
PRNG Decode Time for the search of the PRNG key. (may be of an older frame)
Key Search Time for comparing the key pattern with the current frame.
Frame Clock Decode Continuous frame number since program start, currently decoded frame.
Frame Clock Output Continuous frame number since program start, currently visible frame.
Key Hit/Miss Overall count of frames with succesfull / unsuccessfull key identification.
Key Hit Quota Total percentage of key hits
Key B/W/A/L Different type of key hits, number of occurences in output. (also in key counter)
B: Key match before PRNG algorithm is running. Needs Delay Loop.
W: Key match while PRNG algorithm is running. Needs (almost) Delay Loop.
A: Key match after PRNG algorithm was running.
L: Key found by Frame Link.
S: Softcrypt key found.
Audio async level Difference between needed and actual length of the audio delay loop. Se Hi Tolerance/Lo Tolerance.

 

Frequently asked questions (FAQ)
 

Where can I get the latest version?

The latest version is availabe on the hVCPlus web page and on the decoder panges listed in the link-section.
 

hVCPlus does not work. Who can help?

The best help is availabe on the discussion boards in the web. (see link section)
These boards are german, but most of these peoples can speak english quite good, so try.
Try to use the search function. Your problem might be already answered before.

No_operation can be contacted on no_operation@gmx.de
Viper_jk (currently retired) can be contacted on hVCPlus@gmx.net

If you're asking, provide the following information:
-The hVCPlus version
-Your Windows version
-Name of your TV card
-Name of your graphics card
-Which CPU do you have?
-Do you use the antenna input or the video input of your TV card?
-Try to describe the problem as exactly as possible.
 

Can I get the source code?

Of course, the source codes for hVCPlus are still free to use for everyone who's interested. The up-to-date source codes will always be accessible (with a short delay, I hope you excuse) on no_operation's hVCPlus-Seite for download.
 

I only see a blue screen / colorful stripes.

Your TV card currently does not recieve a TV signal. Normally, hVCPlus uses the signal of the video input. You can choose a channel in the onscreen manu (M). To do this, you have to select the correct TV card (or tuner type) before starting hVCPlus. There are some more tips in the Starting hVCPlus section.
 

The picture is jumping. Is there a way to improve the picture?

Videocrypt decoders try to reconstruct the picture as good as possible. But this isnt always possible without errors. Especially dark scenes and horizontal lines result in distortions. But at least sometimes, the picture should be nearly error free, as ex. on scenes showing faces. There are some examples on the web page: Beispielbilder von hVCPlus
If the complete picture is shifted left or right, and many colors are blue, you maybe can adjust that by setting ColorFix1.
 

Where can I get key files / how do I use key files?

In summer 1999, Sky was quite good decodable by using key files, because Sky was changing all chip cards. Since the change phase ended, key attacks are not working any more.
 

I cant decode Premiere.

hVCPlus is a decoder for Videocrypt, like its used in europe by the Sky group on the Astra satelites. Premiere (Nagravision/Syster) can be decoded with other programs. Other decoders are available on the decoder pages (see link section).
 

How about recording an AVI video?
How about decoding from an AVI video?

Videocrypt decoding produces a high CPU load. That leaves not much room for an AVI codec to compress the resulting video at the same time. An AVI writer wouldnt be that much help. Beside that, such an function is planned for ExoTV (see link section).

Decoding an previously recorded AVI video also has drawbacks: Every lossy video compression method assumes that the picture has usual image structures. Videocrypt does not! As a consequence, every good AVI codec destroys the encryption, a later decoding wont work.
That leaves lossless video encryption (HuffYUV) or uncompressed video. At 720x288, a movie of 120 minutes produces 70 Gbytes uncompressed video, with compression around 30 Gbytes. Also your hard disk must handle 10Mbytes/sec constantly. Not a good alternative.

A good way is the use of an graphics card with TV output. Simply connect your video recorder and record the decoded picture.
 

I cant activate Optimize BT, but I have a BT card.

Possibly, you're using Windows 2000. Sometimes, there are problems using the direct hardware access on Windws 2000. Maybe newer versions of the HWIO files (HWIO95.VXD, NTHWIO.SYS, HWIODRV.DLL), as used for ex. by older hVCPlus- and MoreTV-releases, will work.
 

hVCPlus hangs after a while.

These are often problems with the IRQ's. If hVCPlus hangs after a while of normal decoding, the reason may be the activity of a PCI card. (SCSI controller doing a bus scan, network adapters searching for other computers...)
To check this, you can simply disable this card by deactivaing it in the device manager.

Make sure no other device is using the same IRQ as your TV card. (except for IRQ holders)
To change the IRQ it may be necessary to put the TV card into a different PCI slot.
 

In DelayLoop modue the sound is jittering.
Message: Audio Loop: Buffer resynchronisation.
Message: Audio Loop: Hang detected. Skipping frame.

Due to the high CPU load while decoding, the audio management gets stalled, even with a higher priority level. For continuous sound, the decoder should reach 25fps even in critical situations, to keep some CPU power free for the audio process.
Some tips:
-Try a different Audio Loop Type.
-Use a different resolution / quality profile.
-If your TV card only provides mono sound, switch Stereo off.
-Reduce the sample rate or switch to 8 bit sound.
-If resynchronisations occur very often, try increasing the values of AudioHiTolerance and AudioLoTolerance.
 

In DelayLoop mode, I can hear everything twice.
In DelayLoop mode, I cant hear anything.
In DelayLoop mode, sound is too early.

Rules for sound:
-The audio signal should be connected to the line input of your sound card, direectly from the receiver or from the TV card.
-The TV card only produces sound if the correct TV card is picked from the TV card list on the second dialog tab.
-In the sound card mixer, select the line input for recording.
-In DelayLoop mode, hVCPlus disables the line output to the speaker, the audio signal is recorded as wave, and played as wave.
-Without DelayLoop mode, hVCPlus routes the line input directly to the speaker output.
-For synchronous audio, you'll need at least 25fps.

The Key mode does not work, no keys get counted in status line.
Softcrypt does not work.
The Key Hit Quota stays at 0%.

The following things are necessary for key decoding to work:
-At least 25fps (not Softcrypt)
-Swap Fields must be set correctly.
-Key Offset E must be set correctly. (usally in range -5..+5)
-Key Offset O only necessary at 50fps/Interlaced modes.
-Acceptable classic decoding quality.

The default settings should be ok for al BT compatible cards on Win9x/NT and on most cards using Windows 2000. If not, try experimenting with Key Offset and Swap Fields.
 

Error message: Audio Error: DirectSoundCapture ... An invalid parameter ...

Your sound card doesnt support Full Duplex mode, meaning it cant play and record at the same time. For some sound cards you can switch Full Duplex capabilities in the device manager.
Maybe it helps to set AudioReverseInit=1 in the INI file.
 

Error message: CreateSurface... Overlay...

Your graphics card could not activate a YUY2 overlay window. Try installing the newest graphics card driver. You can also use a RGB mode instead of YUY2.
 

Error message: No frames have been captured.

This is a message from the TV card driver. The TV hardware was activated, but the driver never recieved a signal that a frame was captured. Usally, this is a driver or IRQ problem.

Make sure no other device is using the same IRQ as your TV card. (except for IRQ holders)
To change the IRQ it may be necessary to put the TV card into a different PCI slot.
 

Error message: Could not find capture device.

The driver of the TV card wasnt found or couldnt be started. Did you select the correct driver in the start dialog? Is the TV card driver properly installed? Does the original TV software work?
Note: The wrapper driver "Microsoft WDM Image Capture" usally doesnt work. Try a real Video-for-Windows driver instead.
hVCPlus is one of the last decoder programs that are using the Video For Windows driver.
 

Known Bugs

Preview

After 6/30/2001 probably only four european Videocrypt channels will be left:
-Sky One
-Sky Premier
-Sky Sports 2
-Channel 5
The Sky channels will probably sut down at 8/31, Channel 5 will at 12/31/2001.
Because of that this hVCPlus version is probably the last 'major' update.There may be smaller enhancements, even after that dates, for example for the New Zealand TV system, or finally some adaptions to the australian Newscrypt system.

Maybe I'll write my memoirs. : )
 

Links

Links have a short life time. There may be a more up to date link list on
no_operation's hVCPlus-Seite (redirector) (Mirror) (Mirror).

Web pages related to software decoding:

Other useful web sites:

Die offizielle SatPCTV hVCPlus Helpme-Seite
covering version 0.60.

Lyngemark Satellite Chart: Astra 1A/1B/1C/1E/1F/1G/1H at 19,2°E
All ASTRA programs with channel, frequency, encryption, broadcast times and web adress.

BTW-Database (Mirror) (Latest release available at FreeTV)
A Database for settings of TV cards. A hVCPlus extension is in development.

The current discussion forums: (Try using the search engine!)


Credits


 
 
 
 

no_operation, 11.6.2001