DVB2000 Recorder, v1.19b
========================


archive contents:
-----------------

"dvb2kscsi.dll" - DVB2000-interface
"remuxer.dll" - "on the fly" multiplexing and synchronization
"scsiakt.exe" - tool from Robin Schneider (see link below) for re scanning SCSI-bus on Win9x/ME systems
"DVB2000Recorder.exe" - front end for the DLLs
Sources for "dvb2kscsi.dll" and "remuxer.dll"

"readme.txt" - this file


system requirements:
--------------------
- 300MHz or faster CPU
- 32MB or more free RAM
- Windows 9X, Windows NT 4.0 (grabbing only), Windows2000, Windows XP
  (developed under Win ME and XP)
- properly installed DirectX
- PCI SCSI adapter connected to your Mediamaster (e.g.: adaptec 2904)
- 32-Bit ASPI-Layer (wnaspi32.dll)
  (Using version 4.7 results in a crash on XP! A working ASPI-Layer (4.56) already comes with XP!)
- DVB2000 Firmware, V1.82.6 or newer incl. V2.00.0 beta 6 
  (beta 8 is not officially supported because of massive SCSI problems on 9x/ME OS) <-- Uli, please help!!

additional requirements for MPEG2-Playback:
-------------------------------------------
- 700MHz MMX capable CPU or faster recommended
  (depends on the resolution and bitrate of the recorded streams)
- at least DirectX 3 installed
- hardware YUV2 overlay graphics card installed
  (overlay with WinNT4.0 doesn't work in most cases - sorry)


added features in v1.19b:
-------------------------

- none, this version only fixes a bug within the remuxer.dll


fixed bugs in v1.19b:
---------------------

- fixes an audio synchronisation bug within remuxer.dll:
  "throwing away 572 bytes of damaged audio data in frame buffer!
   throwing away 357 bytes of unwanted audio data before next frame
   new audio frame pts differs by 0:00:00.048 from old audio frame pts
   2 dropped audio frames detected - replaced with dummy frames at playtime 0:15:27.267"
  

known bugs in v1.19b:
---------------------

- see v1.17b



improvements in further versions:
---------------------------------

- all remained bugs above fixed of course - does anybody find a remained one? *g*

- adding multispeaker playback to the MPEG-player

- more player-functions like stop, pause, positioning, etc...

- avoiding "tearing" effects on video playback by adding background
  picture buffers and synchonisation to v-sync.
  
- more fluid video playback by adding threads computing pictures in advance

- real live playback window without the need to save the streams on disk

- more language support including log window and other messages

- replacing dropped video frames with null frames or previous frames to ensure
  synchone movies if you want to multiplex/demultiplex them manually

- more multiplexor options like SVCD, MPEG-2
  SVCD seems to make not so much sense but I noticed that some DVD-Players
  can handle non-standard SVCDs with 48kHz MP2 audio instead of 44.1kHz

- auto file split at format change (16:9<->4:3)

- EPG support

- When dreams become true:
  A real time on the fly cutting engine with frame exact cutting support!
  (Maybe this could become more than only a late April-fool joke)

- ...


annotation on further versions:
-------------------------------

Because I've not so much time to work on this project, it may last some month
until new versions will be released, so please be patient.

I can calm you: This DVB2000Recorder project is NOT dead at all! ;o)


some hints for offline multiplexing:
------------------------------------

1. If you want to multiplex the streams yourself, make sure you select
   m2v and mp2/ac3 in the DVBRecorder.

2. Then start your recording and write down all initial delays that
   will be shown at the beginning and after each file split.

3. While recording watch out for re syncs! If they occur a synchrony offline 
   multiplexing can not be granted after the re sync until the next file split.

4. Before multiplexing the file pairs, set the delay in your extern
   multiplexor to the corresponding value you wrote down:
   E.g.: If there is an initial VIDEO delay of 60ms, set/add this value in the VIDEO
   delay field in your multiplexor.
   
   In bbMPEG: 
   
   *** Startup delay (ms): ************************
   *                                              *
   *  Pack:      Video:     Audio 1:   Audio 2:   *
   *  *********  *********  *********  *********  *
   *  *   0   *  *  240  *  *  180  *  *  180  *  * <---- 240 = 180 + 60
   *  *********  *********  *********  *********  *
   *                                              *
   ************************************************
   
   
how to use the adjustable synchronization delay (Video delay):
--------------------------------------------------------------

- if video comes earlier than audio in your recording, just increase the
  video delay value

- in the other case, if audio comes before video, simply decrease that value

- allowed values are "-1000" to "1000" ms

- In normal case you can left it on zero but if you want to record your video
  with AC3-sound, you may notice that there is a fixed sync-offset which can 
  vary on different channels.
  E.G.: For the German FTA channel "Pro7" you can left the delay to zero in AC3 mode
  but if you record a movie with AC3 on the German pay TV provider "PREMIERE" 
  (if you have an subscription of course) you will notice a light asynchronism
  if you left the value on zero. I noticed, that the correct delay value varies
  from time to time there.
  Just play with the delay to find the perfect synchronization.
  

how to record synchronized AC3 movies:
--------------------------------------

- Annotation: on this guide DVB2000 2.00.00 Beta is used!
  On older versions without AC3-support begin at step 2.

1. switch off AC3 in DVB2000 Audio Menu: Help-8-9-1

2. save your AC3 channels on seperate program places

3. switch off "Auto PMT" and "Auto PID" on that channels in PIDs Menu: Help-7 (9 & A)

4. still in PIDs Menu, set the Audio-PID (3) to the AC3-PID normally shown at point 4

5. now start your recording! You won't hear any sound while recording but if
   you playback your movie it should have perfectly synchronized AC3-sound!
  


annotations:
------------

The software is splitted into three parts, two DLLs and the front end
application.

"dvb2kscsi.dll" is a to C++ ported version of VF's DLLdemo-application.

"remuxer.dll" is bases on some parts and ideas of Peter Niemayer's 
LINUX-grabber "grab-1.0".

Because both parts are open source, I included my sources of the resulting
DLL-applications in this zip-file. So everyone can study/modify the
DLL's code and test it with my front end application or write an application
himself.


contact:
--------

You may send questions, bug reports, comments or improvement suggestions
to DVB2000Recorder@gmx.net in English or German.


credits:
--------

thanks to:

- Andr alias VF for publishing his dvb2kscsi.dll sources

- Peter Niemayer for his remuxer sources

- Uli alias "Dr. Overflow" for writing DVB2000, that great firmware for
  Nokia's Mediamaster! Without, all this software would be absolutely useless!

- all the testers of this software

- and of course to Micha_R for providing some little download web space on his HP


related links:
--------------

VF's "Streamreader":
http://go.to/streamreader/

Peter Niemayer's "grab" for Linux:
http://niemayer.freewebsites.com/

Dr. Overflow's "DVB2000" firmware:
http://www.dominance.net/

Micha's "NO-ACCESS.DE" home page for "DVB2000 resources and more":
http://www.no-access.de/

Robin Schneider's ScsiAkt
http://home.wtal.de/A_Sprenger/Commander/commander.html



Enjoy the soft!

Greetings,
R2-D2


=======================================================================


Version history:
----------------

added features in v1.18b:
-------------------------

- AC3 playback support for MPEG-Player added
  (stereo downmix only)


fixed bugs in v1.18b:
---------------------

- now plays program streams with more than one audio stream inside
  (the first found one will be played back)
  

known bugs in v1.18b:
---------------------

- see v1.17b


added features in v1.17b:
-------------------------

- audio playback support for MPEG-Player added (single audio stream only)

- MPEG1 program stream playback support added
  (audio stream must be mp1/mp2 or mp3)

- supported files:
  - m1v (elementary MPEG1 video stream),
  - m2v (elementary MPEG2 video stream)
  - mpeg, mpg, vob, dat (MPEG1/MPEG2 program streams with single audio stream)

- right mouse button context menu in MPEG-player:
  - enable/disable MMX-support
  - playback color settings (brightness, contrast, color saturation)    

- new splitting option added: split on "closed GOP"
  Some few channels use "closed GOPs" if a movie begins and ends,
  so you don't need to cut off the junk manually after recording.
  

fixed bugs in v1.17b:
---------------------

- polling management changed to reduce data loss


known bugs in v1.17b:
---------------------

- audio playback may sound a little crispy on some systems

- the audio part may terminate in a endless loop in some cases

- audio may not synchronize on all systems
  This is because synchronisation is done via frequency control and
  some soundcards/drivers/OSs don't support this feature on a already 
  running playback.
  
- audio playback may sound very funny (like a too slow or too fast playing record)
  while moving the window around.
  This is because the frequency control tries to synchronize audio to video playpack.
  If I include AC3 support I will synchonize via video, to avoid these side effects
  and because multispeaker playback doesn't seem to support frequency control at all.
  
- MPEG-player might crash
  - if you try to playback unsupported formats
  - on multi-audio-stream files

- MPEG-player:
  audio only streams are currently not supported (mp1, mp2, mp3, ac3, wav, etc.)


added features in v1.16b:
-------------------------

- "remove video padding" can be switched off now

- language support for german OS (dialogs and menus only at the moment)


fixed bugs in v1.16b:
---------------------

- fixed: black MPEG-player window if displaymode is set to 16 bit or lower


added features in v1.15b:
-------------------------

- YES, it comes true!!! The Mini-TV is working now:
  Live MPEG2 playback support through built in MPEG decoder (video only)
  supported chroma formats: 4:2:0 and 4:2:2
  supported MPEG formats: MPEG2 program- and elementary streams
                          MPEG1 elementary streams

- automatic "Poll interval" calculation to avoid buffer overruns in our Mediamaster

- performance optimized "remuxer.dll"


fixed bugs in v1.15b:
---------------------

- fixed a problem with 44.1kHz mp2 audio

- channel check switched of while recording to avoid sudden recording abortions
  (some Mediamaster revisions react a little strange because of different SCSI
  chips and stuff)
  
- channels are read out in a different, saver way (some MMs made trouble)
  
- fixed wrong file extension "mp2" on AC3-recordings


added features in v1.14b:
-------------------------

- the first beta version of DVB2000Recorder! ;o)

- replaced the useless Video Info "Video Format"
  with "Picture Format" (interlaced/progessive)
  
- you can change your timer-settings while recording with timer

- the "Audio Info" gets refreshed if the audio mode changes

- audio  and video infos can now be included in log too

- recording facilities for audio only channels added
  (works OK with enabled AUTO PID, else please set VIDEO PID to 1FFF)


fixed bugs in v1.14b:
---------------------

- recording bug with 32kHz MP2 audio fixed (used on SBS6, NET5)

- overwrite-timer-recording-bug on daily/weekly repeated recordings fixed

- log-time-stamped bug fixed

- timer.db bug fixed  


added features in v1.13a:
-------------------------

- daily and weekly timer options added

- removing of useless HD-space-killing zero padding in the video stream

- time stamped log-file


fixed bugs in v1.13a:
---------------------

- fixed the suspect SCSI-device detection message bug if there's no 
  ASPI Layer present
  
- fixed a little bug where some inactive menu items weren't grayed out
  in Windows XP

- I found out, why XP may freeze if you minimize or close the recorder:
  There's a bug in Windows XP: If you minimize or close any real-time
  application with activated XP style Windows may completely freeze!
  You can avoid this if you don't use "real time" within the recorder 
  or if you switch back to the good old "Windows classic" style!
  
known bugs in v1.13a:
---------------------

- daily/weekly repeated recordings get overwritten
  because the same file name is used
  
- oops, the log-file isn't time-stamped - only the log-window

- bug while reading old timer.db files


added features in v1.12a:
-------------------------

- SCSI-rescan feature for NT based systems

- SCSI-rescan feature for Win9x/ME systems 
  (runs the external application "scsiakt.exe")
  
- System-shut-down-feature after manual recording

- dropped audio frames will be detected and replaced by previous frames
  (up to 10 in a sequence)
  
- fewer resyncs through dropped audio frame detection and replacement

- more colors added *g*


added features in v1.11a:
-------------------------

- audio and video infos

- panic mode: if enabled, the streams are saved with generated file names
  to prevent unwanted overwriting
  
- the frame rate is now read out from the video stream, so it should be possible
  to record videos with frame rates other than 25Hz like NTSC based channels
  
- The time code in the video GOP header isn't set properly on some channels; this courses
  problems with some tools. The recorder now generates a new time code in the video header.
  Warning: raw streams aren't changed!

  

fixed bugs in v1.11a:
---------------------

- dropped time stamps are synthesized now by the recorder, so these packets aren't
  thrown away anymore
  
- NTSC should work now (please tell me if not; I can't test this here with ASTRA)

- strange path error fixed

- timer preview fixed

- some minor bugs fixed


added features in v1.10a:
-------------------------

- file split at every xx:xx minutes

- OTR (One Touch Recording): you will be able to set the stop time after the recording starts

- buttons changed to some colored ones

- prompt to prevent unwanted overwriting of your recordings


known bugs in v1.10a and earlier versions:
------------------------------------------

- sometimes the recorder may crash if you start the recording
  this depends on corrupt data streamed from the box when the streaming starts
  
- some channels sometimes drop time stamps in the audio stream, so the recorder throws these packets away
  and re-syncs
  
- on re-syncs the mpeg may get async if you multiplex or convert it manually
  A solution would be the inserting of "null-Frames" or repeating of earlier frames 
  instead of dropping faulty frames
  
- strange invalid path error if you want to save all three streams

- possible crash under Win XP if you press the X (can't test it under ME...)
  (simply don't click the X, it's a feature that shows how buggy XP is) *lol*
  
- if timer settings exist, the timer preview isn't always shown in the status window

- if you begin the recording the picture on TV may freeze and the recording doesn't start;
  this seems to be a stream initializing problem of the DVB2000 firmware
  I may only include a "watch dog" function that checks if the recording hangs and restarts
  the recording
  
- if some data has been dropped and the recorder re-syncs the movie gets asynchone if you
  multiplex it manually
  could be fixed by inserting dummy-frames or repeating previous frames
  

added features in v1.092a:
--------------------------

- record-time display (of the multiplexed data), doesn't work on pure raw recordings

- each timer entry can be enabled separately now

- choice able system shut down after timer recording
  The only thing I don't know at the moment is how to switch on/off the Mediamaster over SCSI!
  If anyone knows that, please mail me!

- info message for the next timer event


fixed bugs in v1.092a:
----------------------

- all "poll delayed" messages are now displayed

- pressing "stop" while timer recording doesn't restart anymore

- the "X" is grayed now while recording


added features in v1.09a:
-------------------------
- timer added (you can add an theoretical unlimited count of entries)


fixed bugs in v1.09a:
---------------------

- two stop bugs fixed (I hope they are gone now forever)

- minor bugs fixed


known bugs in v1.09a:
---------------------

- if you press "Stop" while a timer recording, the recording stops and restarts immediately and overwrites
  the previous recording
  
- some the "poll delayed" messages aren't displayed


added features (and new bugs *g*) in v1.08a
-------------------------------------------

- all settings are saved in the registry now

- 4GB boarder removed (seems to work on NTFS) - OK it makes sense.... *gg*
  recording will stop (I hope not crash - no time for testing *g*) if 4GB is reached under FAT32
  
- a channel browser added

- some more status outputs

- a "stop bug" added/found *g*
  well, sometimes a very strange bug occurs after stopping the recording... don't know why yet:
  after you press "stop" all buttons become gray and the OS hangs...
  please mail me the log if this happens, thx
  
- "pause" and "stop" buttons added

- recording stops now if you change the channel during recording (bad boy/girl)! ;o)

- short keys for mouse less usage (for those with IR-keyboard *g*)

- initial video delays are out putted in DVD2AVI and bbMPEG style now


known bugs in v1.08a:
---------------------

- stop bug - oh no!

- some trouble with the channel browser: sometimes it doesn't show the right channel

- bug in external multiplex-documentation below (corrected): on initial video delay,
  in bbMPEG set this value in the video delay field, not in the audio delay field! 
 

fixed bug in v1.07a:
---------------------

- recording should now really work with all channels (I hope so)


added features and changes in v1.07a:
-------------------------------------

- OSD disabled ;o)

- menu "Priority" added to set the priority class of the recorder process,
  the default is changed from "normal" to "real time" to reduce poll delays and memory use
  

fixed bugs in v1.06a:
---------------------

- MPEG-2 stream should now work with most software players

- recording should work now with all channels

- doesn't crash anymore if HD is full etc.

- doesn't makes a re sync if the channel only resets or changes
  its time stamps
  
- some other minor bugs fixed


known bugs in v1.06a:
---------------------

- sometimes it shows "AC3 audio" although there's MPEG audio
  but this only affects the file extensions generated for saving the
  elementary streams (e.g.: a file *.ac3 maybe a mp2 file)

- 4GB limit: It makes no sense to support files bigger than 4GB
  because you can't handle them properly with most tools.
  Why? Well you have only 32-bits, so how addressing a byte
  position in a file above 4GB?
  

changes in v1.06a:
------------------

- the most significant changes are the new multiplexor and synchronization
  routines in the "remuxer.dll"

- multiplexor: Now it generates DVD-like files that most players can handle.
  The only player I know that makes some problems is the media player from Microsoft:
  It doesn't show the correct playtime and doesn't play very fluid...
  
- synchronizer: Audio and video are synchronized now exactly. You will notice that 
  there are almost no re syncs anymore!
  

fixed bugs in v1.03 alpha:
--------------------------

- files can be up to 4GB big now

- file splitting problems fixed, so you don't have to save the MPEG-2 file


added features in v1.03 alpha:
------------------------------

- menu for setting the SCSI mode manually

- menu for disabling the remote while recording

- user adjustable synchronization delay


(quick) fixed bug in v1.02 alpha:
---------------------------------

- audio streams with id 0xc1 should work now


known bugs in v1.01 alpha:
--------------------------

- because of a Microsoft-bug in an used MFC-class, files can not
  become bigger than 2GB

- file splitting only works, if "Multiplex" is not set to "don't save"
  else the program will crash at the 2GB border

- because the "on the fly" multiplexing is still experimental, some mpg-players
  don't play the video correctly but you can multiplex the streams
  offline if you want

- "on the fly" multiplexing and synchronization doesn't work
  on some channels

- audio problems if audio stream id = 0xc1

- crashes if HD is full etc.

- makes a re-sync if the channel changes or resets its time stamps
